Better EQ for Librem 14 speakers

Yeah this has to be a user service. you should be able to enable it (start when you login) with systemctl --user enable --now pulseeffects

1 Like

hmm. Neither enable nor reenable do the trick. Must be something else. Any clue what else it could be?

You said that systemctl --user start pulseeffects worked so I’m not sure what’s going on. I’m not on same distro, but that should not cause any issue. Your issue is that you can start it manually, but you can’t get it started automatically?

Yeah, exactly. It’s a weird bug. It starts fine once the desktop is loaded. Very little on the web regarding how to fix the issue.

Added Restart=always at the end of the [Service] section and it worked like a charm.

1 Like

Hum you may have a ordering problem. What if you ad After=pulseaudio in the Unit section? (Provided the pulseaudio service is named pulseaudio. I’m not sure I don’t use it)

Has anybody got something like this working with Qubes? dom0 runs fedora-25 which does not have the pulseeffects package available.

As a bass player that is just wrong :rofl:

And I may want to PM you about all this after I get my L14 and see what’s what, if that’s ok?

Lol, no worries. In v2 of the audio treatment, I added a very very slight limiter so that I wouldn’t need to turn down the bass, but it still would not typically distort. But yeah message me any time.

1 Like

You can see the audio frequencies, their parameteic Q value and their decibel adjustments in the actual json code.

If you do find a parametric eq for your system, and wanted to get down and dirty, you can definitely recreate it.

Audio frequencies and hardware are agnostic of distro, so values will be the same.

I’m looking into how to apply this (or a similar) EQ at the firmware level, but unfortunately Realtek hides all this stuff behind undocumented registers. Going to take a bit of work to figure it out

12 Likes

PulseEffects has been replaced by EasyEffects (at least when you use pipewire) I didn’t read the whole story, but easyeffects is what you get on Arch when using pipewire at least.

It works almost the same, but they’ve fixed stuff that breaks the preset (in the JSON, types makes more sense now) which broke the world.

In any case, here’s the modified preset (the maximizer seems broken and does not output any sound when active, so I removed it)

{
    "output": {
        "plugins_order": [
            "equalizer",
            "limiter"
        ],
        "equalizer": {
            "state": true,
            "mode": "IIR",
            "num-bands": 30,
            "input-gain": 0,
            "output-gain": 9.5999999999999996,
            "split-channels": false,
            "left": {
                "band0": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -31.111111111111111,
                    "frequency": 22.59,
                    "q": 4.3600000000000003
                },
                "band1": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -26.868686868686872,
                    "frequency": 28.440000000000001,
                    "q": 4.3600000000000003
                },
                "band2": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -21.91919191919192,
                    "frequency": 35.799999999999997,
                    "q": 4.3600000000000003
                },
                "band3": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -16.262626262626267,
                    "frequency": 45.07,
                    "q": 4.3600000000000003
                },
                "band4": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -3.5353535353535364,
                    "frequency": 56.740000000000002,
                    "q": 4.3600000000000003
                },
                "band5": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": 4.6484375,
                    "frequency": 71.430000000000007,
                    "q": 4.3600000000000003
                },
                "band6": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": 3.8888888888888928,
                    "frequency": 89.930000000000007,
                    "q": 4.3600000000000003
                },
                "band7": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": 1.0606060606060623,
                    "frequency": 113.20999999999999,
                    "q": 4.3600000000000003
                },
                "band8": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": 1.4141414141414188,
                    "frequency": 142.53,
                    "q": 4.3600000000000003
                },
                "band9": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": 1.4141414141414188,
                    "frequency": 179.43000000000001,
                    "q": 4.3600000000000003
                },
                "band10": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -2.8282828282828305,
                    "frequency": 225.88999999999999,
                    "q": 4.3600000000000003
                },
                "band11": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": 1.5494791666666714,
                    "frequency": 284.38,
                    "q": 4.3600000000000003
                },
                "band12": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": 0.35353535353534937,
                    "frequency": 358.01999999999998,
                    "q": 4.3600000000000003
                },
                "band13": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -3.5353535353535364,
                    "frequency": 450.72000000000003,
                    "q": 4.3600000000000003
                },
                "band14": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -12.727272727272723,
                    "frequency": 567.41999999999996,
                    "q": 4.3600000000000003
                },
                "band15": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -7.7777777777777821,
                    "frequency": 714.34000000000003,
                    "q": 4.3600000000000003
                },
                "band16": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -14.494949494949495,
                    "frequency": 899.28999999999996,
                    "q": 4.3600000000000003
                },
                "band17": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -15.202020202020201,
                    "frequency": 1132.1500000000001,
                    "q": 4.3600000000000003
                },
                "band18": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -12.020202020202021,
                    "frequency": 1425.29,
                    "q": 4.3600000000000003
                },
                "band19": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -10.959595959595958,
                    "frequency": 1794.3299999999999,
                    "q": 4.3600000000000003
                },
                "band20": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -4.9494949494949516,
                    "frequency": 2258.9299999999998,
                    "q": 4.3600000000000003
                },
                "band21": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -7.4242424242424256,
                    "frequency": 2843.8200000000002,
                    "q": 4.3600000000000003
                },
                "band22": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -12.020202020202021,
                    "frequency": 3580.1599999999999,
                    "q": 4.3600000000000003
                },
                "band23": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -10.252525252525256,
                    "frequency": 4507.1499999999996,
                    "q": 4.3600000000000003
                },
                "band24": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -3.1818181818181799,
                    "frequency": 5674.1599999999999,
                    "q": 4.3600000000000003
                },
                "band25": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": 0.70707070707071296,
                    "frequency": 7143.3500000000004,
                    "q": 4.3600000000000003
                },
                "band26": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": 1.7676767676767682,
                    "frequency": 8992.9400000000005,
                    "q": 4.3600000000000003
                },
                "band27": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -2.474747474747474,
                    "frequency": 11321.450000000001,
                    "q": 4.3600000000000003
                },
                "band28": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -10.606060606060606,
                    "frequency": 14252.860000000001,
                    "q": 4.3600000000000003
                },
                "band29": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -8.1313131313131279,
                    "frequency": 17943.279999999999,
                    "q": 4.3600000000000003
                }
            },
            "right": {
                "band0": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -31.111111111111111,
                    "frequency": 22.59,
                    "q": 4.3600000000000003
                },
                "band1": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -26.868686868686872,
                    "frequency": 28.440000000000001,
                    "q": 4.3600000000000003
                },
                "band2": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -21.91919191919192,
                    "frequency": 35.799999999999997,
                    "q": 4.3600000000000003
                },
                "band3": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -16.262626262626267,
                    "frequency": 45.07,
                    "q": 4.3600000000000003
                },
                "band4": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -3.5353535353535364,
                    "frequency": 56.740000000000002,
                    "q": 4.3600000000000003
                },
                "band5": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": 4.6484375,
                    "frequency": 71.430000000000007,
                    "q": 4.3600000000000003
                },
                "band6": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": 3.8888888888888928,
                    "frequency": 89.930000000000007,
                    "q": 4.3600000000000003
                },
                "band7": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": 1.0606060606060623,
                    "frequency": 113.20999999999999,
                    "q": 4.3600000000000003
                },
                "band8": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": 1.4141414141414188,
                    "frequency": 142.53,
                    "q": 4.3600000000000003
                },
                "band9": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": 1.4141414141414188,
                    "frequency": 179.43000000000001,
                    "q": 4.3600000000000003
                },
                "band10": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -2.8282828282828305,
                    "frequency": 225.88999999999999,
                    "q": 4.3600000000000003
                },
                "band11": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": 1.5494791666666714,
                    "frequency": 284.38,
                    "q": 4.3600000000000003
                },
                "band12": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": 0.35353535353534937,
                    "frequency": 358.01999999999998,
                    "q": 4.3600000000000003
                },
                "band13": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -3.5353535353535364,
                    "frequency": 450.72000000000003,
                    "q": 4.3600000000000003
                },
                "band14": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -12.727272727272723,
                    "frequency": 567.41999999999996,
                    "q": 4.3600000000000003
                },
                "band15": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -7.7777777777777821,
                    "frequency": 714.34000000000003,
                    "q": 4.3600000000000003
                },
                "band16": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -14.494949494949495,
                    "frequency": 899.28999999999996,
                    "q": 4.3600000000000003
                },
                "band17": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -15.202020202020201,
                    "frequency": 1132.1500000000001,
                    "q": 4.3600000000000003
                },
                "band18": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -12.020202020202021,
                    "frequency": 1425.29,
                    "q": 4.3600000000000003
                },
                "band19": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -10.959595959595958,
                    "frequency": 1794.3299999999999,
                    "q": 4.3600000000000003
                },
                "band20": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -4.9494949494949516,
                    "frequency": 2258.9299999999998,
                    "q": 4.3600000000000003
                },
                "band21": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -7.4242424242424256,
                    "frequency": 2843.8200000000002,
                    "q": 4.3600000000000003
                },
                "band22": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -12.020202020202021,
                    "frequency": 3580.1599999999999,
                    "q": 4.3600000000000003
                },
                "band23": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -10.252525252525256,
                    "frequency": 4507.1499999999996,
                    "q": 4.3600000000000003
                },
                "band24": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -3.1818181818181799,
                    "frequency": 5674.1599999999999,
                    "q": 4.3600000000000003
                },
                "band25": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": 0.70707070707071296,
                    "frequency": 7143.3500000000004,
                    "q": 4.3600000000000003
                },
                "band26": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": 1.7676767676767682,
                    "frequency": 8992.9400000000005,
                    "q": 4.3600000000000003
                },
                "band27": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -2.474747474747474,
                    "frequency": 11321.450000000001,
                    "q": 4.3600000000000003
                },
                "band28": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -10.606060606060606,
                    "frequency": 14252.860000000001,
                    "q": 4.3600000000000003
                },
                "band29": {
                    "type": "Bell",
                    "mode": "RLC (BT)",
                    "slope": "x1",
                    "solo": false,
                    "mute": false,
                    "gain": -8.1313131313131279,
                    "frequency": 17943.279999999999,
                    "q": 4.3600000000000003
                }
            }
        },
        "limiter": {
            "state": true,
            "input-gain": 0.29999999999999999,
            "limit": -0.20000000000000004,
            "lookahead": 5,
            "release": 27,
            "auto-level": false,
            "asc": false,
            "asc-level": 0.71000000000000019,
            "oversampling": 1,
            "output-gain": 0
        }
    }
}

Edit: maximizer works for me once I’ve installed zam-plugins.

3 Likes

Latecomer here. I couldn’t work out what you meant exactly by disabling all effects (insomuch as that did not mean disabling the profile I had just loaded), nor did I know what to do with the enormous list of information the pactl list command gave me. Is it just a matter of unchecking the two effects boxes? And how to get the default profile into the autoload folder? Is this a text file or a command string to copy into terminal?

Is there an easier way? In the meantime, the EQ in my Jabra bluetooth buds can be altered from my phone even while playing from my Librem 14. But I would like an easier way to do what you wrote here.

What I meant by disabling all effects is to simply remove them from the left hand list, if there are any before importing the settings. But since then, PulseEffects became easyeffects and the autoloading config can be done directly from the UI, in the preferences. I also think there is no effect by default now.

So it’s better to remove pulseeffects and install easyeffects (not from flatpack) then? I am running PureOS Byzantium?

I’m not sure what’s packaged on Byzantium. But if you have both, yeah. I also don’t see any issue going the flatpak route

1 Like

I have for now ended up going back to PulseEffects as the version of pipewire in my Librem 14 is 3.19 which will not work with EasyEffects, so it won’t load. The error message said it required 3.40. Despite installing from GitHub, it would not update to the later version and I couldn’t find a way to update it.

I found a way to make autostart work. (cut and pasted here):

"But when I toggle it on with the flatpak version, it creates the autostart file in
~/.var/app/com.github.wwmm.pulseeffects/config/autostart
instead of
~/.config/autostart

Flatpak should have access to the real autostart directory to create the file there instead of in ~/.var.

Also within the autostart file,
Exec=pulseeffects --gapplication-service
has to be replaced with
Exec=com.github.wwmm.pulseeffects --gapplication-service"

That seems to work. But my original question about not applying the settings to all output is still a mystery to me, since I cannot use EasyEffects. I wonder if that is because I am using X11 (which I need in order to share my zoom screen, which doesn’t play with Wayland on PureOS), because there were some different dependencies required for X11 when installing pipewire.

I still didn’t get how to get the default profile into the autoload folder - is what you wrote a text file I save and drop in there or a command string?

Sorry to keep bothering you

I’m usually not a fan of putting desktop files in autostart, probably because I much more trust systemd service files, but if it works for you it works for you :slight_smile:

As far as I remember the autosettings, they are text files they need to be in ~/.config/PulseEffects/autoload, named as [pulse-audio-sink-name].json and contain the bit of json telling which profile you want to load. If you use flatpak, it should be in ~/.var/app/com.github.wwmm.pulseeffects/config/autostart/

I am going to have to show all this to a programmer friend I know, as there is too much jargon there that I don’t understand. But thanks for putting it all down - it should be straightforward for him.