From 35ca8b27be70bbabf07030a9ded0982f3856f67e Mon Sep 17 00:00:00 2001 From: Simon Gardling Date: Tue, 8 Jul 2025 10:33:39 -0700 Subject: [PATCH] add back easyeffects --- home-manager/home-mreow.nix | 2 + .../progs/framework-13-easyeffects.nix | 121 ++++++++++++++++++ 2 files changed, 123 insertions(+) create mode 100644 home-manager/progs/framework-13-easyeffects.nix diff --git a/home-manager/home-mreow.nix b/home-manager/home-mreow.nix index 67a7a0b..a2068cb 100644 --- a/home-manager/home-mreow.nix +++ b/home-manager/home-mreow.nix @@ -21,6 +21,8 @@ ./progs/dunst.nix ./progs/borg.nix + + ./progs/framework-13-easyeffects.nix ]; home.packages = with pkgs; [ 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"; + }; +}