308 lines
		
	
	
	
		
			9.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			308 lines
		
	
	
	
		
			9.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   flake.modules = {
 | |
|     nixos.audio =
 | |
|       { pkgs, ... }:
 | |
|       {
 | |
|         environment.systemPackages = with pkgs; [
 | |
|           pavucontrol
 | |
|           easyeffects
 | |
|         ];
 | |
| 
 | |
|         services.pulseaudio.enable = false;
 | |
|         security.rtkit.enable = true;
 | |
| 
 | |
|         services.pipewire = {
 | |
|           enable = true;
 | |
|           alsa.enable = true;
 | |
|           alsa.support32Bit = true;
 | |
|           pulse.enable = true;
 | |
| 
 | |
|           # TODO: make sure that `wpctl settings --save bluetooth.autoswitch-to-headset-profile false` is set since the things below are not working
 | |
|           wireplumber.configPackages = [
 | |
|             (pkgs.writeTextDir "share/wireplumber/wireplumber.conf.d/11-bluetooth-policy.conf" ''
 | |
|               wireplumber.settings = {
 | |
|                 bluetooth.autoswitch-to-headset-profile = false
 | |
|               }
 | |
|             '')
 | |
|             (pkgs.writeTextDir "share/wireplumber/policy.lua.d/11-bluetooth-policy.conf" ''
 | |
|               bluetooth_policy.policy["media-role.use-headset-profile"] = false
 | |
|             '')
 | |
|           ];
 | |
|         };
 | |
|       };
 | |
| 
 | |
|     homeManager.cholli =
 | |
|       { lib, osConfig, ... }:
 | |
|       {
 | |
|         services.easyeffects = lib.mkIf osConfig.services.pipewire.enable {
 | |
|           enable = true;
 | |
|           preset = "jtrv-preset";
 | |
|           extraPresets = {
 | |
|             jtrv-preset = {
 | |
|               input = {
 | |
|                 blocklist = [
 | |
| 
 | |
|                 ];
 | |
|                 "compressor#0" = {
 | |
|                   attack = 5;
 | |
|                   boost-amount = 6;
 | |
|                   boost-threshold = -72;
 | |
|                   bypass = false;
 | |
|                   dry = -100;
 | |
|                   hpf-frequency = 10;
 | |
|                   hpf-mode = "off";
 | |
|                   input-gain = 0;
 | |
|                   knee = -6;
 | |
|                   lpf-frequency = 20000;
 | |
|                   lpf-mode = "off";
 | |
|                   makeup = 0;
 | |
|                   mode = "Downward";
 | |
|                   output-gain = 0;
 | |
|                   ratio = 4;
 | |
|                   release = 75;
 | |
|                   release-threshold = -40;
 | |
|                   sidechain = {
 | |
|                     lookahead = 0;
 | |
|                     mode = "RMS";
 | |
|                     preamp = 0;
 | |
|                     reactivity = 10;
 | |
|                     source = "Middle";
 | |
|                     stereo-split-source = "Left/Right";
 | |
|                     type = "Feed-forward";
 | |
|                   };
 | |
|                   stereo-split = false;
 | |
|                   threshold = -20;
 | |
|                   wet = 0;
 | |
|                 };
 | |
|                 "deesser#0" = {
 | |
|                   bypass = false;
 | |
|                   detection = "RMS";
 | |
|                   f1-freq = 3000.0;
 | |
|                   f1-level = -6.0;
 | |
|                   f2-freq = 5000.0;
 | |
|                   f2-level = -6.0;
 | |
|                   f2-q = 1.5000000000000004;
 | |
|                   input-gain = 0.0;
 | |
|                   laxity = 15;
 | |
|                   makeup = 0;
 | |
|                   mode = "Wide";
 | |
|                   output-gain = 0;
 | |
|                   ratio = 5;
 | |
|                   sc-listen = false;
 | |
|                   threshold = -20;
 | |
|                 };
 | |
|                 "equalizer#0" = {
 | |
|                   balance = 0;
 | |
|                   bypass = false;
 | |
|                   input-gain = 0;
 | |
|                   left = {
 | |
|                     band0 = {
 | |
|                       frequency = 50;
 | |
|                       gain = 3;
 | |
|                       mode = "RLC (BT)";
 | |
|                       mute = false;
 | |
|                       q = 0.7;
 | |
|                       slope = "x1";
 | |
|                       solo = false;
 | |
|                       type = "Hi-pass";
 | |
|                       width = 4;
 | |
|                     };
 | |
|                     band1 = {
 | |
|                       frequency = 90;
 | |
|                       gain = 3;
 | |
|                       mode = "RLC (MT)";
 | |
|                       mute = false;
 | |
|                       q = 0.7;
 | |
|                       slope = "x1";
 | |
|                       solo = false;
 | |
|                       type = "Lo-shelf";
 | |
|                       width = 4;
 | |
|                     };
 | |
|                     band2 = {
 | |
|                       frequency = 425;
 | |
|                       gain = -2;
 | |
|                       mode = "BWC (MT)";
 | |
|                       mute = false;
 | |
|                       q = 0.9999999999999998;
 | |
|                       slope = "x2";
 | |
|                       solo = false;
 | |
|                       type = "Bell";
 | |
|                       width = 4;
 | |
|                     };
 | |
|                     band3 = {
 | |
|                       frequency = 3500;
 | |
|                       gain = 3;
 | |
|                       mode = "BWC (BT)";
 | |
|                       mute = false;
 | |
|                       q = 0.7;
 | |
|                       slope = "x2";
 | |
|                       solo = false;
 | |
|                       type = "Bell";
 | |
|                       width = 4;
 | |
|                     };
 | |
|                     band4 = {
 | |
|                       frequency = 9000;
 | |
|                       gain = 2;
 | |
|                       mode = "LRX (MT)";
 | |
|                       mute = false;
 | |
|                       q = 0.7;
 | |
|                       slope = "x1";
 | |
|                       solo = false;
 | |
|                       type = "Hi-shelf";
 | |
|                       width = 4;
 | |
|                     };
 | |
|                   };
 | |
|                   mode = "IIR";
 | |
|                   num-bands = 5;
 | |
|                   output-gain = 0;
 | |
|                   pitch-left = 0;
 | |
|                   pitch-right = 0;
 | |
|                   right = {
 | |
|                     band0 = {
 | |
|                       frequency = 50;
 | |
|                       gain = 3;
 | |
|                       mode = "RLC (BT)";
 | |
|                       mute = false;
 | |
|                       q = 0.7;
 | |
|                       slope = "x1";
 | |
|                       solo = false;
 | |
|                       type = "Hi-pass";
 | |
|                       width = 4;
 | |
|                     };
 | |
|                     band1 = {
 | |
|                       frequency = 90;
 | |
|                       gain = 3;
 | |
|                       mode = "RLC (MT)";
 | |
|                       mute = false;
 | |
|                       q = 0.9999999999999998;
 | |
|                       slope = "x1";
 | |
|                       solo = false;
 | |
|                       type = "Lo-shelf";
 | |
|                       width = 4;
 | |
|                     };
 | |
|                     band2 = {
 | |
|                       frequency = 425;
 | |
|                       gain = -2;
 | |
|                       mode = "BWC (MT)";
 | |
|                       mute = false;
 | |
|                       q = 0.7;
 | |
|                       slope = "x2";
 | |
|                       solo = false;
 | |
|                       type = "Bell";
 | |
|                       width = 4;
 | |
|                     };
 | |
|                     band3 = {
 | |
|                       frequency = 3500;
 | |
|                       gain = 3;
 | |
|                       mode = "BWC (BT)";
 | |
|                       mute = false;
 | |
|                       q = 0.7;
 | |
|                       slope = "x2";
 | |
|                       solo = false;
 | |
|                       type = "Bell";
 | |
|                       width = 4;
 | |
|                     };
 | |
|                     band4 = {
 | |
|                       frequency = 9000;
 | |
|                       gain = 2;
 | |
|                       mode = "LRX (MT)";
 | |
|                       mute = false;
 | |
|                       q = 0.7;
 | |
|                       slope = "x1";
 | |
|                       solo = false;
 | |
|                       type = "Hi-shelf";
 | |
|                       width = 4;
 | |
|                     };
 | |
|                   };
 | |
|                   split-channels = false;
 | |
|                 };
 | |
|                 "gate#0" = {
 | |
|                   attack = 1;
 | |
|                   bypass = false;
 | |
|                   curve-threshold = -50;
 | |
|                   curve-zone = -2;
 | |
|                   dry = -100;
 | |
|                   hpf-frequency = 10;
 | |
|                   hpf-mode = "off";
 | |
|                   hysteresis = true;
 | |
|                   hysteresis-threshold = -3;
 | |
|                   hysteresis-zone = -1;
 | |
|                   input-gain = 0;
 | |
|                   lpf-frequency = 20000;
 | |
|                   lpf-mode = "off";
 | |
|                   makeup = 1;
 | |
|                   output-gain = 0;
 | |
|                   reduction = -15;
 | |
|                   release = 200;
 | |
|                   sidechain = {
 | |
|                     input = "Internal";
 | |
|                     lookahead = 0;
 | |
|                     mode = "RMS";
 | |
|                     preamp = 0;
 | |
|                     reactivity = 10;
 | |
|                     source = "Middle";
 | |
|                     stereo-split-source = "Left/Right";
 | |
|                   };
 | |
|                   stereo-split = false;
 | |
|                   wet = -1;
 | |
|                 };
 | |
|                 "limiter#0" = {
 | |
|                   alr = false;
 | |
|                   alr-attack = 5;
 | |
|                   alr-knee = 0;
 | |
|                   alr-release = 50;
 | |
|                   attack = 1;
 | |
|                   bypass = false;
 | |
|                   dithering = "16bit";
 | |
|                   external-sidechain = false;
 | |
|                   gain-boost = true;
 | |
|                   input-gain = 0;
 | |
|                   lookahead = 5;
 | |
|                   mode = "Herm Wide";
 | |
|                   output-gain = 0;
 | |
|                   oversampling = "Half x2(2L)";
 | |
|                   release = 5;
 | |
|                   sidechain-preamp = 0;
 | |
|                   stereo-link = 100;
 | |
|                   threshold = -1;
 | |
|                 };
 | |
|                 plugins_order = [
 | |
|                   "rnnoise#0"
 | |
|                   "gate#0"
 | |
|                   "deesser#0"
 | |
|                   "compressor#0"
 | |
|                   "equalizer#0"
 | |
|                   "speex#0"
 | |
|                   "limiter#0"
 | |
|                 ];
 | |
|                 "rnnoise#0" = {
 | |
|                   bypass = false;
 | |
|                   enable-vad = false;
 | |
|                   input-gain = 0;
 | |
|                   model-path = "";
 | |
|                   output-gain = 0;
 | |
|                   release = 20;
 | |
|                   vad-thres = 50;
 | |
|                   wet = 0;
 | |
|                 };
 | |
|                 "speex#0" = {
 | |
|                   bypass = false;
 | |
|                   enable-agc = false;
 | |
|                   enable-denoise = false;
 | |
|                   enable-dereverb = false;
 | |
|                   input-gain = 0;
 | |
|                   noise-suppression = -70;
 | |
|                   output-gain = 0;
 | |
|                   vad = {
 | |
|                     enable = true;
 | |
|                     probability-continue = 90;
 | |
|                     probability-start = 95;
 | |
|                   };
 | |
|                 };
 | |
|               };
 | |
|             };
 | |
|           };
 | |
|         };
 | |
|       };
 | |
|   };
 | |
| }
 |