Hi! I started looking into this because I wanted to use SuperCollider (or Overtone and Sonic-Pi to be more precise) on Nix. My previous setup on Arch was a bit of a PITA and I was hoping to simplify it greatly in my current NixOS setup.
I came across Pipewire and it sounds too good to be true. It seems like the programs I want to use will mostly work without a babashka of different interwoven audio services. That’s my first question – does it even do what I think it does? Can I simply start the pipewire service at boot and forget about managing a jackd instance?
Now, when trying to set it up, I came across this gist which was posted here in a thread about professional audio. I’d like to use the service from unstable. I set up the unstable channel and changed my configuration.nix
, the relevant parts look like this:
{ config, lib, pkgs, ... }:
{
imports =
[
<nixos-hardware/lenovo/thinkpad/t460s>
<nixos-unstable/nixos/modules/services/desktops/pipewire/pipewire.nix>
# Include the results of the hardware scan.
./hardware-configuration.nix
];
disabledModules = [
"services/desktops/pipewire.nix"
];
# Enable sound.
sound.enable = true;
hardware.pulseaudio.enable = false; # explicitly set to false for pipewire
services.pipewire = {
enable = true;
alsa = {
enable = true;
support32Bit = true;
};
pulse.enable = true;
};
# ...
}
Trying to build it however fails. I’m trying to understand why. Why is cfg.package.pulse
undefined? And how can I provide it? Do I need some other package from unstable?