96 lines
2.4 KiB
Nix
96 lines
2.4 KiB
Nix
{ config, pkgs, lib, ... }: {
|
|
# Pipewire
|
|
security.rtkit.enable = true;
|
|
services.pipewire = {
|
|
enable = true;
|
|
alsa.enable = true;
|
|
alsa.support32Bit = true;
|
|
pulse.enable = true;
|
|
};
|
|
|
|
programs.noisetorch.enable = true;
|
|
|
|
systemd.user.services."noisetorch" = {
|
|
description =
|
|
"Virtual microphone device with noise supression for PulseAudio";
|
|
|
|
after = [ "graphical-session-pre.target" ];
|
|
partOf = [ "graphical-session.target" "pipewire.service" ];
|
|
wantedBy = [ "graphical-session.target" ];
|
|
|
|
serviceConfig = {
|
|
ExecStart = "${pkgs.noisetorch}/bin/noisetorch -i -s ${
|
|
if config.networking.hostName == "tears" then
|
|
"US-4x4HR_ch0"
|
|
else
|
|
"alsa_input.pci-0000_00_1f.3.analog-stereo"
|
|
}";
|
|
ExecStop = "${pkgs.noisetorch}/bin/noisetorch -u";
|
|
Restart = "on-failure";
|
|
RestartSec = 5;
|
|
RemainAfterExit = true;
|
|
};
|
|
};
|
|
|
|
# User packages
|
|
users.users.agatha.packages = with pkgs; [ pamixer pavucontrol playerctl ];
|
|
|
|
home-manager.users.agatha = {
|
|
services.easyeffects = {
|
|
enable = false;
|
|
preset = "DT-770-flat-eq";
|
|
};
|
|
|
|
xdg.configFile."easyeffects/output/DT-770-flat-eq.json".text = let
|
|
band = num: freq: gain: ''
|
|
"band${toString num}": {
|
|
"frequency": ${toString freq},
|
|
"gain": ${toString gain},
|
|
"mode": "RLC (BT)",
|
|
"mute": false,
|
|
"q": 1.41,
|
|
"slope": "x1",
|
|
"solo": false,
|
|
"type": "Bell"
|
|
}
|
|
'';
|
|
bands = lib.concatStringsSep ''
|
|
,
|
|
'' [
|
|
(band 0 31.0 5.8)
|
|
(band 1 62.0 8.0)
|
|
(band 2 125.0 (-8.03))
|
|
(band 3 250.0 (-2.42))
|
|
(band 4 500.0 0.71)
|
|
(band 5 1000.0 1.67)
|
|
(band 6 2000.0 (-2.42))
|
|
(band 7 4000.0 7.12)
|
|
(band 8 8000.0 (-0.61))
|
|
(band 9 16000.0 (-2.58))
|
|
];
|
|
in ''
|
|
{
|
|
"output": {
|
|
"blocklist": [],
|
|
"equalizer": {
|
|
"input-gain": 0.0,
|
|
"left": {
|
|
${bands}
|
|
},
|
|
"mode": "IIR",
|
|
"num-bands": 10,
|
|
"output-gain": 0.0,
|
|
"right": {
|
|
${bands}
|
|
},
|
|
"split-channels": false
|
|
},
|
|
"plugins_order": [
|
|
"equalizer"
|
|
]
|
|
}
|
|
}
|
|
'';
|
|
};
|
|
}
|