Pipewire equalizer

I couldn’t find a lightweight, simple equalizer for Pipewrite, so I decided to build one in Python with the help of AI. Lightweight, simple, effective.

10 bands, pre-amp, compressor, presets, option to set fixed parameters in the system.

As my PC is currently being repaired, I’ve only tested it on the Orange Pi 5 Max running Armbian/Xfce, but in theory it should work on any architecture with any Linux distribution.

Bilingual (Spanish/English), automatically detects the language; however, there are three options in case one fails:

  • Automatic detection
  • Command-line option (--lang en).
  • Toggle switch in the interface.

Yes, it’s not very pretty, but it works.

If anyone would like to test it , I’d appreciate any feedback and/or bug reports.

:people_hugging: :argentina:

3 Likes

One thing I didn’t mention: it doesn’t run in the background like EasyEffects, so it doesn’t use up system resources. If you click ‘Save’ to set the values, close the script and the settings will be saved; if you don’t click that button, the settings will remain until you restart (or reset them).

Requirements

  • PipeWire 0.3.50+ (con filter-chain)
  • calf-plugins
  • python3-tk (GUI, Tkinter)
  • pactl
  • pw-cli / pw-dump
  • lilv-utils (opcional, para inspeccionar otros plugins LV2)

Python modules:

  • import json
  • import math
  • import datetime
  • import locale
  • import os
  • import re
  • import subprocess
  • import sys
  • import tkinter as tk
  • from tkinter import ttk, simpledialog, messagebox
1 Like

I’ve got my desktop PC back now:

When testing it on Mabox, we had to change a few things because Arch uses different names to Armbian:

Fix language + multi-distro docs (Arch/Mabox) + MIT licence

  • Fix: language detection did not recognise LANG=es_* (it only checked LC_ALL/LC_MESSAGES/LANGUAGE, never LANG itself with the ‘es’ prefix)
  • Add Mabox Linux (Arch, PipeWire 1.6.8) as a tested platform, alongside the Orange Pi (Armbian)
  • Document that the Calf package is renamed depending on the distro:
    calf-plugins (Debian/Armbian) vs calf (Arch)
  • New precaution: compare the .conf files on disk against those in the repository before assuming a new bug (the actual cause of a failure on Mabox was having a eq.conf/compressor.conf file with invalid syntax, not from the repository)
  • Requirements without a table (easier to read in the script’s built-in viewer)
  • Document the “Save as boot values” and “View README” buttons
  • MIT licence
1 Like