47 lines
1.4 KiB
Nix
47 lines
1.4 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
let
|
|
snd-usb-audio-module = pkgs.callPackage ./snd-usb-audio.nix {
|
|
kernel = config.boot.kernelPackages.kernel;
|
|
};
|
|
patched = snd-usb-audio-module.overrideAttrs (prev: {
|
|
patches = [ ./0001-Update-device-ID-for-PreSonus-1824c.patch ];
|
|
});
|
|
upmixConfig = ''
|
|
stream.properties = {
|
|
channelmix.upmix = true
|
|
channelmix.upmix-method = psd
|
|
}
|
|
'';
|
|
in {
|
|
boot.extraModulePackages = [
|
|
(lib.hiPrio patched)
|
|
];
|
|
|
|
environment.etc = {
|
|
"pipewire/pipewire.conf.d/surround.conf".text = ''
|
|
context.modules = [
|
|
{
|
|
name = libpipewire-module-loopback
|
|
args = {
|
|
node.description = "Genelec 4.1 Surround"
|
|
capture.props = {
|
|
node.name = "Genelec_Speakers"
|
|
media.class = "Audio/Sink"
|
|
audio.position = [ FL FR SL SR LFE ]
|
|
}
|
|
playback.props = {
|
|
node.name = "playback.Genelec_Speakers"
|
|
audio.position = [ AUX0 AUX1 AUX3 AUX4 AUX5 ]
|
|
target.object = "alsa_output.usb-PreSonus_Studio_1824c_SC4E21110775-00.multichannel-output"
|
|
stream.dont-remix = true
|
|
node.passive = true
|
|
}
|
|
}
|
|
}
|
|
]
|
|
'';
|
|
"pipewire/pipewire-pulse.conf.d/40-upmix.conf".text = upmixConfig;
|
|
"pipewire/client-rt.conf.d/40-upmix.conf".text = upmixConfig;
|
|
};
|
|
}
|