diff --git a/machines/laptop.nix b/machines/laptop.nix index cc3016c..15b2085 100644 --- a/machines/laptop.nix +++ b/machines/laptop.nix @@ -23,6 +23,25 @@ printing.enable = true; }; + # Pipewire roc sink + services.pipewire.extraConfig.pipewire."60-roc-sink" = { + context.modules = [ + { + name = "libpipewire-module-roc-source"; + args = { + fec.code = "rs8m"; + remote.ip = "10.20.60.251"; + remote.source.port = 10001; + remote.repair.port = 10002; + source.name = "Roc Sink"; + source.props = { + node.name = "roc-sink"; + }; + }; + } + ]; + }; + # Hardware configuration hardware.enableRedistributableFirmware = true; boot.initrd.availableKernelModules = [ diff --git a/machines/vm-audio.nix b/machines/vm-audio.nix index fa8c9b3..f99aefb 100644 --- a/machines/vm-audio.nix +++ b/machines/vm-audio.nix @@ -42,6 +42,40 @@ ] )}"; + # Pipewire roc source + services.pipewire.extraConfig.pipewire."60-roc-source" = { + context.modules = [ + { + name = "libpipewire-module-roc-source"; + args = { + local.ip = "0.0.0.0"; + resampler.profile = "medium"; + fec.code = "rs8m"; + sess.latency.msec = 10; + local.source.port = 10001; + local.repair.port = 10002; + source.name = "Roc Source"; + source.props = { + node.name = "roc-source"; + }; + }; + } + ]; + }; + + # Set firewall ports + networking.firewall = { + enable = true; + allowedTCPPorts = [ + 10001 + 10002 + ]; + allowedUDPPorts = [ + 10001 + 10002 + ]; + }; + # User for audio mixing users.users.mixer = { isNormalUser = true;