Its own real-time engine
Gain, fader, pan and summing, the EQ bank, gate and compressor, delay, reverb and an analyser tap run in one native C node inside PipeWire, not a pile of loopback processes.
Liveopen · professional · software mixer
OpenMixer is a live mixer for Linux. Audio comes in from a stagebox, is mixed by OpenMixer's own real-time engine inside PipeWire, and goes back out to the PA. There is no hardware console in the signal path: the console is the software, and every browser on the network is its surface.
The console
Most mixer apps are remote controls for a hardware console. With OpenMixer the audio runs through the software: one console model that fits no particular desk sits in the middle, and the engine, the surfaces and the I/O all plug into it. How it is built.
Gain, fader, pan and summing, the EQ bank, gate and compressor, delay, reverb and an analyser tap run in one native C node inside PipeWire, not a pile of loopback processes.
Live40 channels at 96 kHz over native REAC. Roland S-4000S, S-1608 and S-4000H stageboxes join sample-synchronous.
In progressOne console, any number of browsers at once: a laptop at front of house, a tablet on stage, a phone on the floor. Touch, keyboard and mouse all work.
LiveBehringer X-Touch units drive the same fader map the console owns: motor faders, encoders, scribble strips and meters, each unit its own client.
In progress
Where it stands
The native engine has mixed real shows since July 2026.
It runs on a real rig, a Roland stagebox and an RME Babyface Pro. Phantom power was confirmed at the XLR pins, two stageboxes have run at once, and the rate has been switched between 48 and 96 kHz with the house up.
Some parts are not there yet. Recording has never captured a show, the X-Touch support has never been driven on real hardware, and the matrix does not carry audio. The plugin hosts are packaged today; the console itself is not published yet.
The features page marks each item by how far it has been proven and lists the known limitations.
How anything here gets called finished
If a control claims to affect audio, measure audio.
A control can read back perfectly and reach nothing at all. So the processing is checked against values worked out on paper, changes are checked on the running audio graph, and a phantom power claim needs a person at the connector, never a light on a screen.
Built into the engine
OpenMixer's own processors run inside the real-time mix node: no plugin host, no process boundary, no added latency. Every stage keeps the same promises. It never outputs a broken sample, it never stalls the audio thread, and when bypassed its output is exactly its input. The operator manual shows how to use each one.
Plugins
A live console cannot go silent because a plugin crashed. So OpenMixer loads processing in layers: its own code inside the engine, and outside plugins in supervised processes that can fail without touching anything else. Plugins in the manual.
01 · Inside the engine
Everything above, from the EQ and the whole dynamics family to FBS, HRP and Align, runs in the same real-time node as the mix, so it never crosses a process boundary. See the native processing.
Live02 · The open plugin world
LV2 plugins run in mod-host, the host behind MOD Audio's devices. CLAP plugins run in omx-clap-host, which speaks mod-host's own protocol, so the console drives both the same way. Each plugin's controls come from its own metadata, and a catalog ranks plugins by measured latency so the live-safe choice comes first.
Live · LV203 · The safety net
A supervisor between the console and its plugin hosts, each host running as a worker process. When a plugin crashes, plugin-hostd restarts only that worker and restores its plugins and every setting. That strip passes dry audio meanwhile, and every other channel carries on.
Landing in the consoleWhat a crash looks like
We crash a plugin on purpose, on a running console, and measure every strip through it. This is what the console hears, in order:
worker_diedThe worker holding the faulty plugin exits. Its strip passes dry.worker_backoffplugin-hostd waits, so a plugin that keeps crashing cannot flood the machine.worker_respawnedA fresh worker starts.instance_restoredThe plugin is loaded again, with every parameter as you left it.Measured on the OpenMixer development console, 30 September 2026.
Open components
The pieces OpenMixer uses to load outside plugins are projects of their own, packaged for Fedora and Debian, including Raspberry Pi OS and Zynthian. Any host that already speaks mod-host's protocol can use them.
A CLAP plugin host for JACK, driven over mod-host's socket protocol. It hosts effects and instruments with MIDI in, runs on its own the way jalv does for LV2, and ships omx-clap-scan to list what a CLAP bundle holds.
github.com/FreeMixer/omx-clap-host →Released · 0.1.0plugin-hostdThe plugin supervisor. It speaks mod-host's protocol to its clients and runs mod-host for LV2 and omx-clap-host for CLAP as workers, with crash isolation, restart with back-off and state replay.
github.com/FreeMixer/plugin-hostd →Proposed upstreamlibmod-host-protocolmod-host's socket protocol as a shared library, so a second host can speak it without carrying a copy. Proposed to mod-host and packaged for Fedora; both hosts above link it.
mod-audio/mod-host#103 →Install
Every package is built from a release tag, signed, and published here, for Fedora, Debian, Raspberry Pi OS and Zynthian. Add the repository, install, and run.
Fedora 44, x86_64 or aarch64.
sudo dnf config-manager addrepo --from-repofile=https://freemixer.github.io/rpm/freemixer.repo
sudo dnf install omx-clap-host plugin-hostd
omx-clap-host
The CLAP host and omx-clap-scan, with the omx-clap-core library.
plugin-hostd
The plugin supervisor and its manual page.
-devel · -dev
Headers and pkg-config files, to build your own host against the same libraries.
The repositories and every package are signed with one key: RPM-GPG-KEY-freemixer, freemixer.asc.
Try it
# Every CLAP plugin on this machine, with its parameters and ports.
omx-clap-scan
# The plugin supervisor. It speaks mod-host's protocol, so anything that
# drives mod-host drives it. It prints "plugin-hostd ready!" once it listens.
plugin-hostd -n -p 5555 -f 5556
More on getting it, and answers to common questions in the FAQ.