Fonyx

Every app gets its own fader.

Fonyx is an audio mixer for Linux. It puts your browser, your music, your calls and your game on separate channels, so you can balance them, shape them, and send each one to whichever speakers or headphones you like.

Free software. Runs on PipeWire. Version 0.1.0.

Built by 2 contributors.

  • ArdenDiago
  • claude

Sort your sound into groups.

Every application that makes a noise shows up as an input. Drop it into a group, such as Music, Calls or Game, and that group becomes one fader with its own mute and solo. Anything you haven't sorted lands in a group called Default, so nothing plays behind the mixer's back.

  • An app goes back to its group the next time it starts.
  • Solo a group in your headphones while the room keeps hearing the full mix.
  • Send one app to your left or right ear only.

Shape each group, not the whole system.

A voice call wants different treatment from a film. Each group runs its own chain, in this order:

  1. Gain
  2. High-pass and low-pass filters
  3. Six-band parametric EQ
  4. Compressor and gate
  5. Plugins: soft clipper, stereo widener, deep bass, mids
  6. Pan, or fold to mono
  7. Safety limiter

Turn anything while audio is playing. Every control glides to its new value over 15 milliseconds, so nothing clicks, and the limiter at the end keeps a careless boost from distorting.

Play it in more than one place.

Send a group to your speakers, your headphones and a Bluetooth speaker in the next room, all at once, each at its own level. Bluetooth always arrives later than a cable, so Fonyx can hold the faster outputs back until they line up.

  • A master bus carries the whole mix to outputs of its own.
  • Unplug a device and its routing waits for it to come back.
  • Record any group, after processing, to WAV or FLAC.

Set it up once.

Save the whole desk as a scene and bring it back in one step. Watch the faders: this desk is stepping through three of them.

Now recalling Work

  • Rules act when an app starts, a device connects, or the laptop wakes up.
  • Ducking turns the music down while someone is talking, then brings it back. The Music meter here does exactly that whenever Calls speaks.
  • An app that restarts returns at the volume you left it.

Try the real app, right here.

This is Fonyx's actual interface, running in your browser against a pretend mixer. Its five apps are pretend too, and silent. To hear it work, press Start the demo, below the app. A strip of songs appears along the bottom; pick one and it plays through the mixer for real. Press Stop the demo and the strip goes away, along with everything the song was using.

  • Start the demo, pick a song, then on MTX Panel drag a point on the EQ curve.
  • On Inputs, route the Song into the Music group, then pull the Music fader down.
  • On Scenes, save a scene, move some faders, then recall it.

This demo is an approximation. A web page cannot run Fonyx's real audio engine or reach your other apps, so what you hear and see here may not match the app. For accurate results, install Fonyx on Linux.

Install Fonyx

It carries on with the window closed.

The mixing happens in a small background service, not in the app. Close the window, or never open it, and your routing stays exactly as you left it. If the service ever stops, it hands every app back to your speakers on the way out.

Desktop app
Ten tabs, an EQ curve you drag, full keyboard control, light and dark themes.
Terminal
Every function as a command, with JSON output for scripts.
Status bar
A fader widget and popup for Quickshell.
# Make a group, move Firefox into it, turn it down
$ fonyx group create Music
$ fonyx input move firefox Music
$ fonyx fader set Music -6dB

# Play it in the living room too, a little quieter
$ fonyx mtx set Music "Living room" --gain 80%

# Keep all of that for later
$ fonyx scene save Evening

Early, and plain about it.

Fonyx is at version 0.1.0. It is developed and run on Arch Linux, and built and tested automatically on Ubuntu 24.04. Other distributions haven't been tried yet.

Works today

  • Groups, routing, the master and cue buses
  • Filters, EQ, compressor, gate, four plugins, limiter
  • Several outputs per group, with delay matching
  • Scenes, per-app profiles, rules and ducking
  • Recording to WAV and FLAC
  • The desktop app, the command line and the Quickshell widget

Not there yet

  • No packages. You build it from source.
  • Linux with PipeWire only. No Windows or macOS version exists.
  • If PipeWire itself restarts, the mixer doesn't recover on its own.
  • No third-party plugins such as LV2 or VST.
  • The Quickshell app lacks some newer controls from the desktop app.
  • The automatic tests check what the mixer stores, not how the result sounds.

Build it from source.

You need Linux with PipeWire and WirePlumber, a Rust toolchain, clang and webkit2gtk-4.1. The commands here are for Arch Linux; on another distribution, install those two packages your own way.

The script builds everything, installs it under ~/.local/bin and starts the mixer as a user service. It never asks for root. Starting it re-routes whatever is playing, so expect a moment of silence.

$ sudo pacman -S clang webkit2gtk-4.1
$ git clone https://github.com/ArdenDiago/Fonyx.git
$ cd Fonyx
$ sh packaging/install-user.sh