music nix for desktops
This commit is contained in:
parent
6cef1ebf5e
commit
1ac3a9b210
69
profiles/desktop/music.nix
Normal file
69
profiles/desktop/music.nix
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
{ pkgs, ...}:
|
||||||
|
|
||||||
|
{
|
||||||
|
environment.systemPackages = [
|
||||||
|
tidal
|
||||||
|
vcv-rack
|
||||||
|
supercollider
|
||||||
|
orca-c
|
||||||
|
carla
|
||||||
|
helm
|
||||||
|
sunvox
|
||||||
|
];
|
||||||
|
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
pulse.enable = false;
|
||||||
|
jack.enable = true;
|
||||||
|
# Low latency pipewire
|
||||||
|
# The best way to get everything working is to keep increasing the quant value until you get no crackles (underruns) or until you get audio again (in case there wasn't any). This won't guarantee the lowest possible latency, but will provide a decent one paired with stable audio.
|
||||||
|
config.pipewire = {
|
||||||
|
"context.properties" = {
|
||||||
|
"link.max-buffers" = 16;
|
||||||
|
"log.level" = 2;
|
||||||
|
"default.clock.rate" = 48000;
|
||||||
|
"default.clock.quantum" = 32;
|
||||||
|
"default.clock.min-quantum" = 32;
|
||||||
|
"default.clock.max-quantum" = 32;
|
||||||
|
"core.daemon" = true;
|
||||||
|
"core.name" = "pipewire-0";
|
||||||
|
};
|
||||||
|
"context.modules" = [
|
||||||
|
{
|
||||||
|
name = "libpipewire-module-rtkit";
|
||||||
|
args = {
|
||||||
|
"nice.level" = -15;
|
||||||
|
"rt.prio" = 88;
|
||||||
|
"rt.time.soft" = 200000;
|
||||||
|
"rt.time.hard" = 200000;
|
||||||
|
};
|
||||||
|
flags = [ "ifexists" "nofail" ];
|
||||||
|
}
|
||||||
|
|
||||||
|
{ name = "libpipewire-module-protocol-native"; }
|
||||||
|
{ name = "libpipewire-module-profiler"; }
|
||||||
|
{ name = "libpipewire-module-metadata"; }
|
||||||
|
{ name = "libpipewire-module-spa-device-factory"; }
|
||||||
|
{ name = "libpipewire-module-spa-node-factory"; }
|
||||||
|
{ name = "libpipewire-module-client-node"; }
|
||||||
|
{ name = "libpipewire-module-client-device"; }
|
||||||
|
|
||||||
|
{
|
||||||
|
name = "libpipewire-module-portal";
|
||||||
|
flags = [ "ifexists" "nofail" ];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libpipewire-module-access";
|
||||||
|
args = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
{ name = "libpipewire-module-adapter"; }
|
||||||
|
{ name = "libpipewire-module-link-factory"; }
|
||||||
|
{ name = "libpipewire-module-session-manager"; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue