diff --git a/desktop/daw.nix b/desktop/daw.nix new file mode 100644 index 0000000..56bcf6f --- /dev/null +++ b/desktop/daw.nix @@ -0,0 +1,35 @@ +{ config, pkgs, ... }: + +{ + # Enable PipeWire (with JACK support for low-latency audio) + services.pipewire = { + enable = true; + audio.enable = true; + pulse.enable = true; + jack.enable = true; + alsa.enable = true; + }; + + # Real-time permissions for better audio performance + security.pam.loginLimits = [ + { domain = "@audio"; type = "soft"; item = "rtprio"; value = "95"; } + { domain = "@audio"; type = "hard"; item = "rtprio"; value = "95"; } + { domain = "@audio"; type = "soft"; item = "memlock"; value = "unlimited"; } + { domain = "@audio"; type = "hard"; item = "memlock"; value = "unlimited"; } + ]; + + users.groups.audio = {}; + + environment.systemPackages = with pkgs; [ + bitwig-studio + helvum # easy audio patchbay + carla # host extra plugins, VST bridge + lsp-plugins # free high-quality effects + dragonfly-reverb + surge-xt # free wavetable synth + vital # free version if you want + ]; + + # Optional: low-latency kernel (for extreme cases) + # boot.kernelPackages = pkgs.linuxPackages_lowlatency; +}