mirror of
https://codeberg.org/jopejoe1/nix-conf.git
synced 2025-01-04 09:16:35 +01:00
62 lines
1.7 KiB
Nix
62 lines
1.7 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
let cfg = config.jopejoe1.audio;
|
|
in {
|
|
options.jopejoe1.audio = {
|
|
enable = lib.mkEnableOption "Enable Audio";
|
|
sennheiser-hd-660s = lib.mkEnableOption "Equalizer for Sennheiser HD 660S";
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
security.rtkit.enable = true;
|
|
|
|
services.pipewire = {
|
|
enable = true;
|
|
systemWide = false;
|
|
alsa = {
|
|
enable = true;
|
|
support32Bit = true;
|
|
};
|
|
pulse.enable = true;
|
|
jack.enable = true;
|
|
|
|
wireplumber.enable = true;
|
|
|
|
extraConfig.pipewire."30-noise-filter" = {
|
|
"context.modules" = [{
|
|
name = "libpipewire-module-filter-chain";
|
|
args = {
|
|
"node.description" = "Noise Canceling source";
|
|
"media.name" = "Noise Canceling source";
|
|
"filter.graph" = {
|
|
nodes = [{
|
|
type = "ladspa";
|
|
name = "rnnoise";
|
|
plugin =
|
|
"${pkgs.rnnoise-plugin}/lib/ladspa/librnnoise_ladspa.so";
|
|
label = "noise_suppressor_mono";
|
|
control = {
|
|
"VAD Threshold (%)" = 50.0;
|
|
#"VAD Grace Period (ms)" = 0;
|
|
"Retroactive VAD Grace (ms)" = 50;
|
|
};
|
|
}];
|
|
};
|
|
"capture.props" = {
|
|
"node.name" = "capture.rnnoise_source";
|
|
"node.passive" = true;
|
|
"audio.rate" = 48000;
|
|
};
|
|
"playback.props" = {
|
|
"node.name" = "rnnoise_source";
|
|
"media.class" = "Audio/Source";
|
|
"audio.rate" = 48000;
|
|
};
|
|
};
|
|
}];
|
|
};
|
|
};
|
|
};
|
|
|
|
imports = [ ./sennheiser-hd660s.nix ];
|
|
}
|