This guide walks you through running SurroundMix 7.1, exporting presets compatible with the LADSPA mbeq_1197 plugin, and registering a virtual audio sink visible in pavucontrol on openSUSE Tumbleweed.
The app runs in any modern browser. Visit the published URL or run locally:
npm install && npm run devTo install as a standalone desktop app (PWA), click the "Install Desktop App" prompt in the bottom-right corner. This works on Linux/Gnome desktops.
Step 1 — Install the LADSPA modules:
sudo zypper install pulseaudio-modules-bad ladspaStep 2 — Load the EQ sink (copy this into your terminal). Adjust EQ in the app, then use the live command in the preset sidebar for real values:
pactl load-module module-ladspa-sink plugin=mbeq_1197 label=ladspa_eq eq_0=1.000000 eq_1=1.000000 eq_2=1.000000 eq_3=1.000000 eq_4=1.000000 eq_5=1.000000 eq_6=1.000000 eq_7=1.000000 eq_8=1.000000 eq_9=1.000000Step 3 — Place exported preset files in the presets directory:
sudo cp my_preset.preset /usr/share/pulse-equalizer-ladspa/presets/Step 4 — To reload after changes, unload then re-load:
pactl unload-module module-ladspa-sinkTo make the app change audio live as it plays through the LADSPA sink, run the local bridge daemon — it listens on 127.0.0.1:8765 and drives pactl for you:
python3 scripts/surroundmix-bridge.pyThen open the app locally via the desktop launcher (or npm run dev) and toggle LIVE LADSPA in the master bar. Drag any EQ slider or channel fader and the sound updates instantly:
Live control only works on the local instance. Browsers block http calls from the published https app (mixed content), so the published site shows the bridge as disconnected.
The LADSPA sink above already appears in pavucontrol. For a plain virtual sink (no EQ):
pactl load-module module-null-sink sink_name=surroundmix \
sink_properties=device.description="SurroundMix 7.1"To persist across reboots, add the line to your PulseAudio config:
echo 'load-module module-null-sink sink_name=surroundmix sink_properties=device.description="SurroundMix 7.1"' >> ~/.config/pulse/default.paNote: A web app cannot register PulseAudio sinks itself — these terminal commands are required. The app only generates the commands and preset files for you to apply.
Each exported .preset file contains 10 linear gain values (one per line), mapped from your 15-band dB EQ:
# my_preset.preset (mbeq_1197)
1.000000
1.122018
0.891251
1.258925
1.000000
0.944061
1.059254
1.148154
0.891251
1.000000Values are linear multipliers (1.0 = no change, 2.0 = +6 dB, 0.5 = −6 dB).