diff --git a/home-manager/progs/framework-13-easyeffects.nix b/home-manager/progs/framework-13-easyeffects.nix new file mode 100644 index 0000000..1dca4e1 --- /dev/null +++ b/home-manager/progs/framework-13-easyeffects.nix @@ -0,0 +1,121 @@ +{ + pkgs, + config, + lib, + ... +}: +{ + + # https://community.frame.work/t/speakers-sound-quality/1078/83 + # Filter: ON HPQ Fc 100.0 Hz Gain 0.0 dB Q 1.0 + # Filter: ON PK Fc 150.0 Hz Gain 4.02 dB Q 3.0 + # Filter: ON PK Fc 600.0 Hz Gain -5.07 dB Q 4.000000000000008 + # Filter: ON PK Fc 1200.0 Hz Gain -3.49 dB Q 4.17 + # Filter: ON PK Fc 2000.0 Hz Gain 1.43 dB Q 4.0 + # Filter: ON PK Fc 5300.0 Hz Gain 3.84 dB Q 2.64 + # Filter: ON HSC Fc 6000.0 Hz Gain 4.02 dB Q 4.36 + # Filter: ON PK Fc 7500.0 Hz Gain -2.09 dB Q 3.0 + # Filter: ON PK Fc 8000.0 Hz Gain 2.01 dB Q 4.36 + # Filter: ON PK Fc 900.0 Hz Gain -4.12 dB Q 5.909999999999967 + home.file.".config/easyeffects/output/${config.services.easyeffects.preset}.json".text = + let + baseBand = { + mode = "RLC (BT)"; + mute = false; + solo = false; + slope = "1x"; + type = "Bell"; + }; + + bandList = [ + { + frequency = 100.0; + gain = 0.0; + q = 1.0; + slope = "x4"; + type = "Hi-pass"; + } + { + frequency = 150.0; + gain = 4.02; + q = 3.0; + } + { + frequency = 600.0; + gain = -5.07; + q = 4.000000000000008; + } + { + frequency = 1200.0; + gain = -3.49; + q = 4.17; + } + { + frequency = 2000.0; + gain = 1.43; + q = 4.0; + } + { + frequency = 5300.0; + gain = 3.84; + q = 2.64; + } + { + frequency = 6000.0; + gain = 4.02; + q = 4.36; + type = "Hi-shelf"; + } + { + frequency = 7500.0; + gain = -2.09; + q = 3.0; + } + { + frequency = 8000.0; + gain = 2.01; + q = 4.36; + } + { + frequency = 900.0; + gain = -4.12; + q = 5.909999999999967; + } + ]; + + bands = builtins.listToAttrs ( + map (f: { + name = "band${toString f.snd}"; + value = baseBand // f.fst; + }) (lib.lists.zipLists bandList (lib.range 0 (lib.length (bandList)))) + ); + + in + builtins.toJSON { + output = { + blocklist = [ ]; + equalizer = { + balance = 0.0; + bypass = false; + input-gain = 0.0; + left = bands; + right = bands; + mode = "IIR"; + num-bands = 10; + output-gain = -1.5; + pitch-left = 0.0; + pitch-right = 0.0; + split-channels = false; + }; + plugins_order = [ + "equalizer" + ]; + }; + }; + + services.easyeffects = { + enable = true; + package = pkgs.easyeffects; + preset = "framework"; + }; +} diff --git a/home-manager/system-mreow.nix b/home-manager/system-mreow.nix index d83ef97..778fd90 100644 --- a/home-manager/system-mreow.nix +++ b/home-manager/system-mreow.nix @@ -16,6 +16,8 @@ ./progs/waybar.nix ./progs/swaylock.nix + + ./progs/framework-13-easyeffects.nix ]; home.packages = with pkgs; [ @@ -73,116 +75,4 @@ import ./progs/borg.nix { inherit homeDirectory borgPasswordFile; }; }; - # https://community.frame.work/t/speakers-sound-quality/1078/83 - # Filter: ON HPQ Fc 100.0 Hz Gain 0.0 dB Q 1.0 - # Filter: ON PK Fc 150.0 Hz Gain 4.02 dB Q 3.0 - # Filter: ON PK Fc 600.0 Hz Gain -5.07 dB Q 4.000000000000008 - # Filter: ON PK Fc 1200.0 Hz Gain -3.49 dB Q 4.17 - # Filter: ON PK Fc 2000.0 Hz Gain 1.43 dB Q 4.0 - # Filter: ON PK Fc 5300.0 Hz Gain 3.84 dB Q 2.64 - # Filter: ON HSC Fc 6000.0 Hz Gain 4.02 dB Q 4.36 - # Filter: ON PK Fc 7500.0 Hz Gain -2.09 dB Q 3.0 - # Filter: ON PK Fc 8000.0 Hz Gain 2.01 dB Q 4.36 - # Filter: ON PK Fc 900.0 Hz Gain -4.12 dB Q 5.909999999999967 - home.file.".config/easyeffects/output/${config.services.easyeffects.preset}.json".text = - let - baseBand = { - mode = "RLC (BT)"; - mute = false; - solo = false; - slope = "1x"; - type = "Bell"; - }; - - bandList = [ - { - frequency = 100.0; - gain = 0.0; - q = 1.0; - slope = "x4"; - type = "Hi-pass"; - } - { - frequency = 150.0; - gain = 4.02; - q = 3.0; - } - { - frequency = 600.0; - gain = -5.07; - q = 4.000000000000008; - } - { - frequency = 1200.0; - gain = -3.49; - q = 4.17; - } - { - frequency = 2000.0; - gain = 1.43; - q = 4.0; - } - { - frequency = 5300.0; - gain = 3.84; - q = 2.64; - } - { - frequency = 6000.0; - gain = 4.02; - q = 4.36; - type = "Hi-shelf"; - } - { - frequency = 7500.0; - gain = -2.09; - q = 3.0; - } - { - frequency = 8000.0; - gain = 2.01; - q = 4.36; - } - { - frequency = 900.0; - gain = -4.12; - q = 5.909999999999967; - } - ]; - - bands = builtins.listToAttrs ( - map (f: { - name = "band${toString f.snd}"; - value = baseBand // f.fst; - }) (lib.lists.zipLists bandList (lib.range 0 (lib.length (bandList)))) - ); - - in - builtins.toJSON { - output = { - blocklist = [ ]; - equalizer = { - balance = 0.0; - bypass = false; - input-gain = 0.0; - left = bands; - right = bands; - mode = "IIR"; - num-bands = 10; - output-gain = -1.5; - pitch-left = 0.0; - pitch-right = 0.0; - split-channels = false; - }; - plugins_order = [ - "equalizer" - ]; - }; - }; - - services.easyeffects = { - enable = true; - package = pkgs.easyeffects; - preset = "framework"; - }; }