The Complete Computer

NixOS Audio

LifeTechEmacsArcology

I use PipeWire because it implements JACK Audio Connection Kit and roam:Pulseaudio interfaces and supports bluetooth devices. this means that I can run TidalCycles straight to bluetooth without resorting to terrible loopback/monitor hacks.

nix source: :tangle ~/arroyo-nix/nixos/audio.nix
{ pkgs, ... }: with pkgs; { environment.systemPackages = [ qjackctl easyeffects pulsemixer ]; hardware.bluetooth = { enable = true; package = bluez5; settings = { General = { Enable = "Source,Sink,Media,Socket"; }; }; }; security.rtkit.enable = true; # https://nixos.wiki/wiki/PipeWire#Bluetooth_Configuration this is cool. services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; jack.enable = true; }; }
nix source: :tangle ~/arroyo-nix/hm/audio.nix
{ ... }: { services.easyeffects.enable = false; # programs.dconf.enable = true; }