Files
lavitz/modules/audio.nix
2026-02-24 21:10:12 -07:00

70 lines
1.8 KiB
Nix

{ pkgs, ... }:
{
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
wireplumber.enable = true;
};
# Elgato makes shit products and they should feel bad :c
services.pipewire.wireplumber.extraConfig."51-wave3" = {
"monitor.alsa.rules" = [
{
matches = [
{
"node.name" = "~alsa_input.usb-Elgato_Systems_Elgato_Wave_3.*";
}
];
actions = {
update-props = {
"session.suspend-timeout-seconds" = 0;
"node.pause-on-idle" = false;
};
};
}
];
};
# DeepFilterNet noise reduction filter chain
services.pipewire.extraConfig.pipewire."99-deepfilter-source" = {
"context.modules" = [
{
name = "libpipewire-module-filter-chain";
args = {
"node.description" = "DeepFilter Noise Canceling Source";
"media.name" = "DeepFilter Noise Canceling Source";
"filter.graph" = {
nodes = [
{
type = "ladspa";
name = "deepfilter";
plugin = "${pkgs.deepfilternet}/lib/ladspa/libdeep_filter_ladspa.so";
label = "deep_filter_mono";
control = {
"Attenuation Limit (dB)" = 100;
};
}
];
};
"audio.rate" = 48000;
"audio.position" = [ "MONO" ];
"capture.props" = {
"node.name" = "effect_input.deepfilter";
"node.passive" = false;
};
"playback.props" = {
"node.name" = "effect_output.deepfilter";
"media.class" = "Audio/Source";
};
};
}
];
};
}