L / R
—
CPU %
—
RAM %
—
Buffer
—
Xruns

Groups

MASTER
+0.0 dB

Level meters and spectrum are the loudest active group's real signal (rustfft-analyzed input, 24 log-spaced bands). Master fader here is the same channel as the one on Faders.

Inputs

M mute · S solo (mutes every other stream until cleared) · ST / L / R (one button, click to step): play the app in stereo, on the left only, or on the right only. The service/site name (e.g. "YouTube") is extracted live from the stream's own title where it's available. The bar beside each app shows its live level, and its name lights up while it plays.
Keys: I this list · G Groups · GG Fader Groups · Tab/Ctrl+Tab move · A route the selected app · X delete the selected group · Enter go inside a group (A move / X remove an app; in a fader group Space ticks) · Esc back out · N new group · M/S mute/solo the selected app (click one to select it) · CS / CM clear solo / mute

Save EQ preset

Saved on this computer only. Same name replaces it.

h / l ←→ · j / k ↓↑ · Enter pick · Esc cancel

Keyboard shortcuts

Connected
Keys are ignored while typing in a text box. / or Esc closes this.

Everywhere

H I E F OHome · Inputs · MTX Panel · Faders · Outputs
Shift+SSettings
/This help (the circle at the bottom right opens it too)
J / KScroll the page down / up (unless a fader is selected: then they move it)
any pickerH/L left/right · J/K down/up · Enter pick · Esc cancel · mouse hover highlights
ShiftWith any up/down key: a bigger step

Home

MSelect the Master fader (or click it)
J / KMaster down / up 0.5 dB
EscLet go of it

Inputs

I · G · GGSelect the Inputs list · Groups · Fader Groups
Tab / Ctrl+TabNext / previous item (clicking selects too)
M / SMute / solo the selected app
ARoute the selected app to a group
XDelete the selected group / fader group
EnterGo inside a group (its apps: A move, X remove, M/S) or a fader group (Space ticks a group)
EscBack out
NNew group / fader group name (Enter creates)
C S · C MClear solo · clear mute

MTX Panel

1–6 · H / LSelect a band · HP / LP (tap twice: on/off)
Ctrl+H / LFrequency down / up
Ctrl+J / KGain down / up (bands)
hold Q + H / LQ down / up
Shift+LLevel line (whole curve), then Ctrl+J / K down / up (with Shift: bigger steps)
C / GCompression / Gate (tap twice: on/off); [ ] pick a knob, Ctrl+HJKL turn it
, / .Previous / next group
EPick an EQ preset
PPlugins: Tab/Ctrl+Tab knob to knob, Ctrl+H/L turn, R reset, X remove, A add

Faders

Ctrl+H / LPrevious / next fader: channels, fader groups, Master (clicking selects too)
Shift+MSelect Master
Ctrl+J / KDown / up 0.5 dB
M / SMute / solo the selected channel or fader group
type a numberSet it: 12 = +12 dB, -6 = −6 dB (Enter or pause; Esc cancels)

Outputs

Ctrl+H / LPrevious / next output (clicking selects too)
Ctrl+J / KOutput volume down / up
M · S · AMute · cue output · add a route
EnterInto its routes: Tab move, Ctrl+J/K gain, Space on/off, Y sync mode, X remove, Esc back

Plugins

0.0 dB GR
0.0 dB GR
MASTER
+0.0 dB

Buttons: 🔗 link (delta together) · M mute · S solo (mutes every other group until cleared) · Mono / Stereo · pan knob: drag up for right, down for left, double-click for center.
Keys: Ctrl+H/L previous/next fader · M/S mute/solo it · Shift+M Master · type a value (12 = +12 dB, -6 = −6 dB) then Enter or pause · Ctrl+J/K down/up 0.5 dB (Shift 2.5 dB)

Keys: Ctrl+H/L previous/next output · Ctrl+J/K volume · M mute · S cue · A add route · Enter into its routes (Tab move, Ctrl+J/K gain, Space on/off, Y sync, X remove, Esc back)

Compensation only ever adds delay to a faster output so it arrives closer to the slowest one in the group — it never speeds a slow device up. "Latency unknown" outputs (common over Bluetooth) are left at zero compensation rather than guessed.

A scene snapshots every group's gain/EQ/HPF/LPF/compressor/gate/output-routes plus which app is routed where. Activating one applies all of it at once; an app that isn't running yet is applied automatically the moment it starts.

New rule

When

If (all must hold)

Then

"App id" matches one whole app (e.g. Spotify). "Site/tab" matches a browser tab by its site name (YouTube, Udemy, …), since every tab of one browser shares an app id. "Route app" and "apply profile" act on the app that triggered the rule, so they need "an app starts".

Rules

Rule history

Ducking

Cue ducks the rest on the cue output to %

When the source group's Level rises above threshold, every destination group ducks by Duck (dB), then releases smoothly over Release once the source quiets down.

Record a group

Recording taps the group's signal after its full DSP chain (EQ/compressor/gate/plugins) without touching its normal playback route. FLAC is lossless at 24 bits and about half the size of WAV.

Active recordings

Health

Signal Flow

Settings

Needs the quickshell binary and fonyx-quickshell.service installed (packaging/systemd) — a no-op toggle otherwise.

Only affects a group with no explicit output routing of its own (Outputs tab) — those already have their own choice.

Trades startup latency for headroom against audio glitches. Applies to newly-created routes (new group, or a route recreated for another reason) — not a currently-playing one.