Audio and the mixer
Audio has two places in the UI: Settings ▸ Audio (the default input and the monitoring device), and the Mixer panel across the bottom (one strip per input, with faders, meters, filters and monitoring). An input can be a microphone, an audio interface such as a Zoom H6, a webcam’s microphone, a headset, the desktop mix or one application’s audio.
The default input (Settings ▸ Audio)
Settings ▸ Audio ▸ Default input chooses the microphone that is always on the mixer. It offers:
- Default (<device>) — the OS’s current default input device, named in
the entry (for example
Default (Zoom H6)). The name is looked up again each time you open the dropdown. - one entry per enumerated input device.
- for a device with more than two input channels, one extra entry per
adjacent channel pair, named
<device> · ch 1-2,<device> · ch 3-4, and so on (see below). - None — no microphone strip.
The default input is on the mixer as the Microphone strip at all times, not
only while recording or streaming, exactly like Desktop audio. The strip names
the device it opened: Microphone — Zoom H6, or Microphone — Zoom H6 (default) when the selection is Default (the strip shows “Microphone” on its
first line and the device under it; hover for the full name). When the
selection is Default and you change the OS default, the strip follows it the
next time the device is reopened (for example after it stalls or is
unplugged); pick the device explicitly to switch at once.
Changing the default input applies when you press Apply, even while outputs run: the Microphone strip keeps its fader, filters and routing and the engine opens the new device in the background. If the device is missing, busy or delivers no audio, the strip stays silent and shows the reason (for example “Microphone unavailable: …”) while the engine keeps retrying; recordings and streams continue with the rest of the mix. The Controls panel no longer has an audio input dropdown.
Internally audio is 48 kHz, stereo, f32 planar.
Multi-channel devices and channel pairs
A device that presents more than two input channels — a capture card is the
common case — offers a plain entry (which keeps the default stereo down-mix) and
one entry per adjacent channel pair. The AVerMedia GC553G2 capture card, for
example, presents a four-channel input (an HDMI pair plus a line-in pair), so its
entries are the plain device, … · ch 1-2 (the HDMI pair) and … · ch 3-4 (the
line-in pair). Picking a pair feeds the mixer from just those two channels
instead of the down-mix.
The Mixer panel
The Mixer panel (heading Mixer) shows one strip per mixer input (the Microphone strip for the default input, any audio devices you added, each media file’s audio, and any system-audio inputs), plus a Master strip and a Monitor section. Each input strip has:
- a vertical dB fader, ranging −60 dB to +12 dB; dragged all the way down it is off (silent, shown as −∞ dB); double-click it to reset to 0 dB (unity). The Master fader works the same way.
- a Mute button (shows “Muted” when muted).
- a peak/RMS meter with a peak-hold marker and a clip indicator. The fill is colour-coded: green below −18 dBFS, amber from −18 to −3 dBFS, and red above −3 dBFS. Anything at or over 0 dBFS latches the clip light.
- a Mute and a Solo button side by side (see Solo).
- a small dropped-frames indicator that appears only when the input has recently dropped audio frames (a late feed or an overloaded capture pool); hover it for what it means. It hides again a few seconds after the drops stop.
- a Remove button (for added audio devices and system-audio inputs, and for a web page’s strip, where it turns the overlay’s Page audio off), and any capture error or “unavailable” notice in amber or red under it.
- a Routing disclosure holding the input’s pan, per-source monitoring mode and six track toggles (see below). It is collapsed by default so the strip stays narrow; the Advanced Audio Properties window shows every input’s settings at once.
- a Filters editor (see below).
Strip controls (Routing disclosure)
Open a strip’s Routing disclosure for:
- Pan — a slider from −100 (hard left) through 0 (centre) to +100 (hard right). Double-click to re-centre. The pan law is described under Pan law.
- Monitor — the per-source monitoring mode (Off / Monitor only / Monitor and output). Each option has a tooltip; the default (Monitor and output) differs from OBS. See Per-source monitoring.
- Tracks — six toggles (1–6), the input’s track-routing mask: which of the six track buses this input feeds. This is how you send sources to the tracks your recordings capture — see Routing sources to recording tracks.
The Master strip carries the master gain applied to the summed bus, a track selector for its meter, and the selected track’s loudness read-outs (see Master metering and loudness).
Solo
Solo is solo-in-place: while any input is soloed, only soloed inputs are heard on the monitor — the stream and recordings are never changed by solo. Solo is a live audition aid and is not saved.
While anything is soloed, a Solo active indicator appears in the Mixer header with a Clear solo button next to it, so a forgotten solo is obvious and can be cleared in one click.
Pan law
Panning uses one law for every input — OBS’s default sine (balance) law. Pan ranges from −1 (hard left) through 0 (centre) to +1 (hard right). Centre is exactly unity on both channels (a centred input is unchanged), and panning fully to one side puts the retained channel at +3.01 dB (×√2) with the other silent. This keeps a mono source’s total loudness constant as you pan it across the stereo field; the per-track limiter absorbs the +3 dB peak of an already-hot source panned hard.
Profiles saved before this change keep their stored pan value, and a centred pan is identical to before; an off-centre position is now slightly louder on the favoured side than under the old balance law.
Filters (OBS defaults)
Each strip has a Filters collapsible (its header shows the count, e.g. “Filters (2)”). Add filter offers five filters, each seeded with OBS’s shipped defaults:
| Filter | Defaults |
|---|---|
| Gain | 0 dB (unity) |
| Noise gate | open −26 dB, close −32 dB, attack 25 ms, hold 200 ms, release 150 ms |
| Compressor | ratio 10:1, threshold −18 dB, attack 6 ms, release 60 ms, output gain 0 dB |
| Limiter | threshold −6 dB, release 60 ms |
| Noise suppression | mix 100 % |
Filters run in order, per input, before the fader and meters. The gain, gate, compressor and limiter are stereo-linked (one gain derived from the louder channel is applied to both).
Noise suppression is a neural denoiser (a pure-Rust RNNoise port, the same “RNNoise method” OBS offers). It works on 10 ms frames, so it adds 10 ms of latency to that input, and it denoises the two channels independently. The Mix control (0–100 %, default 100 %) blends the original signal back in if the denoiser sounds too aggressive; at 0 % the input passes through unchanged (still delayed by 10 ms).
Each filter row has a checkbox. Unticking it bypasses the filter: audio passes through (still delayed by the filter’s latency, so sync does not move when you toggle it), and the filter keeps its settings. A bypassed filter stays in the chain and is saved with it. Changing a knob or reordering filters updates them in place; no other filter in the chain is rebuilt.
Latency is compensated across all inputs. Under the filters the editor shows the chain’s latency (“Chain latency 10 ms, compensated”). The mixer delays every other input by the same amount, so all inputs stay lined up with each other, and stamps the mix that much earlier, so audio stays in sync with video. The monitor hears the extra delay (it is part of the Monitor Latency reading). Compensation is capped at 200 ms; a chain above that plays, the line turns into a warning, and the excess is left for Sync Offset.
Scan for plugins looks for CLAP and VST3 plugins in the standard folders (and lists Audio Units on macOS) and shows a summary such as “3 plugins (1 CLAP, 0 VST3, 2 AU)”. Each plugin is opened in its own helper process, so a broken plugin cannot crash the app; one that crashes or hangs is blocklisted. Adding plugins to a chain comes in a later update. A chain that names a plugin which is not installed shows “missing: <name>”, keeps its place and settings, and passes audio through unchanged.
The microphone and system-audio filter chains are saved in your profile; media-file filter chains are saved per layer alongside the layer’s gain and mute in the scene’s sources, so they come back when the scene is reloaded.
Advanced Audio Properties
The Advanced… button in the Mixer header opens the Advanced Audio Properties window — OBS’s equivalent — a table with one row per input and a column for each setting: Name, Volume (editable dB), Pan, Sync (sync offset in ms), Monitor (monitoring mode), the six-checkbox Tracks routing matrix, and a read-only Filter latency (non-zero only when a chain adds latency — noise suppression adds 10 ms). It opens as its own native, non-modal, resizable window (see Windows and layout); keyboard navigation works (Tab between fields), and Escape or its close button dismisses it. Its size and position are remembered across restarts; whether it is open is remembered for the session only.
Edits in the window and on the strips are the same underlying settings, so they always agree. The Sync value is applied when you finish dragging (or press Enter), so dragging it does not repeatedly rebuild the input’s delay line.
Master metering and loudness
The Master strip’s meter shows one of the six track buses, chosen with its track selector (default Track 1). Below the meter it shows that track’s EBU R128 loudness read-outs:
- M — momentary loudness (400 ms window), LUFS.
- S — short-term loudness (3 s window), LUFS.
- I — integrated (gated) loudness since the last reset, LUFS. This is the number streaming/upload targets refer to (e.g. −16 LUFS for many live platforms, −14 for some on-demand ones).
- TP — maximum true peak since the last reset, dBTP. An OVER flag lights beside it once true peak exceeds −1 dBTP (leave headroom for lossy encoders). Because TP is a maximum since reset, OVER stays lit until you press Reset — it never clears on its own.
Reset integrated clears the integrated and true-peak (OVER) measurement; the momentary and short-term windows repopulate within 400 ms / 3 s. Hover the I row to see how long the current measurement has been running (“Measuring for …”).
Loudness continuity across a stream or recording
Loudness metering costs CPU, so when nothing is being streamed or recorded it runs only for the selected track and only while the Mixer panel is open — selecting another track moves the meter, and closing the panel (or quitting) turns it off.
While any output that carries audio is live — a stream, a recording, or an NDI sender (which sends an audio track) — integrated loudness is meant to describe the whole broadcast, so the discipline changes. Video-only outputs do not count: turning on the macOS virtual camera (or a Syphon/Spout/PipeWire sender) sends no audio, so it never resets your integrated LUFS or pins metering on with the panel closed.
- Metering stays attached for every track you have displayed since the output(s) started — always at least the currently selected track and Track 1 — regardless of whether the Mixer panel is open. Hiding the panel or changing the master track selector no longer resets integrated LUFS or max true peak.
- The moment the first output goes live, integrated loudness is reset once automatically, so the number means “this stream/recording” without a manual reset. The “Measuring for …” tooltip counts from that point (or from your last manual reset).
- Metering is released only once the last output stops and the panel is hidden (or you quit).
The numbers refresh about ten times a second.
Routing sources to recording tracks
Each input’s six Tracks toggles (on the strip’s Routing disclosure or in Advanced Audio Properties) choose which of the six track buses it feeds. A recording captures whichever of those buses you enable in the Recording editor’s Tracks section (see Recording). To record, say, the game and your mic on one track and the mic alone on a second:
- In the mixer, set the game/desktop input’s Tracks to 1 only, and the microphone input’s Tracks to 1 and 2.
- In the recording output’s Tracks section, enable tracks 1 and 2 (each track gets its own AAC bitrate).
The recording then carries track 1 = game + mic and track 2 = mic only. The same masks feed the stream. An input routed to no track is on no recording or stream (but can still be monitored, depending on its monitoring mode).
Adding inputs (Add input)
The mixer’s Add input pull-down (next to the Mixer heading) adds more inputs alongside the Microphone strip.
Audio devices (every platform)
Add input ▸ Audio device ▸ <device> adds a capture device as its own strip:
a second microphone, a webcam’s microphone, a headset, or an interface such as
a Zoom H6. The device list is fetched in the background when the sub-menu
opens: it reads “Loading…” until the list arrives, then “No audio devices” if
it is empty. A device with more than two input channels also
offers one entry per adjacent channel pair (Zoom H6 · ch 3-4), exactly as the
default-input dropdown does.
- The strip is named after the device, plus the pair when one is chosen
(
Zoom H6 (ch 3-4)), and is labelleddevice. - The device opens in the background, like the default input: the strip appears at once and starts moving when the device delivers audio. A device that is missing, busy or silent shows “Device unavailable: …” or “Device ‘…’ delivered no audio; reconnecting” on the strip while the engine keeps retrying, and a stalled device is reopened automatically.
- You may add the same device more than once (for example once per channel pair); if the OS refuses a second open, that strip shows the error.
- Its fader, mute, filters and routing are saved per strip, and every added device comes back on the next launch. Remove takes it off the mixer and out of the profile.
Linux
On a desktop running PipeWire (Ubuntu, Fedora and most current
distributions), the input and output lists are PipeWire’s devices: one entry
per microphone, webcam, interface or output, named by PipeWire’s device
description (OBSBOT Tiny 3 Mono, Built-in Audio Analog Stereo), with the
system default first, then by name. They are captured and played through
PipeWire, which shares a device with other applications. Without PipeWire, the list is
ALSA’s: the default device plus one entry per sound card (the card’s
hw: device), not every ALSA alias.
A webcam’s microphone is found by the USB device it shares with the camera, so the camera’s Info shows its audio and Use camera audio binds it even when the two names differ; when the USB device cannot be read, the names are matched as on the other platforms.
A device saved by an earlier version under an ALSA id (hw:CARD=…,
plughw:…, default) is moved to the PipeWire device of the same sound card
(or, for default, the current default device) when it opens; for an input
the new id is saved, while the monitor output opens the moved device and
keeps its saved setting until you pick a device again. If no device matches,
the input shows the device as not connected and the monitor as unavailable.
Desktop and application audio (macOS, Linux and Windows)
Where system audio capture is implemented (macOS through ScreenCaptureKit, Linux through PipeWire, Windows through WASAPI), Add input also offers:
- Desktop audio — the whole system mix, excluding the app’s own audio so a monitor cannot feed back.
- Application audio ▸ <app> — only the chosen application’s audio. The application list is fetched when the sub-menu opens (“No applications” if the list is empty).
Added system inputs are saved to the profile and restored on the next launch.
- macOS — these use the Screen & System Audio Recording permission (the same grant as display capture); without it the capture returns a permission error.
- Linux — needs a running PipeWire session; no permission prompt.
- Windows — needs Windows 10 version 2004 (build 19041) or later; no
permission prompt. The application list shows every program that has opened
an audio stream (named by its executable, e.g.
firefox.exe, when it gives no display name); an application is followed across restarts by that executable name, and one that is not running when the input is added (or restored) is picked up within a couple of seconds of starting.
Monitoring
The Monitor section plays the mixed bus through an output device (your headphones) while you record or stream:
- Enable monitor — turn monitoring on.
- Output — the output device (System default, or a listed device).
- Gain (dB) — monitor level, independent of the master.
- Mute monitor — silence the monitor without disabling it.
Monitoring is off by default.
Monitor latency
While the monitor is running, the Monitor section shows the monitor path’s end-to-end latency (Latency ~N ms). Hover it for the three-stage breakdown: the mixer’s fixed playout margin (~64 ms), the chain-latency compensation (0 unless an input’s filters add latency), the sink’s ring backlog, and the output device’s own buffering (read from the audio backend’s timestamps). What you hear lags what you do by roughly the total. The reading refreshes about twice a second and disappears when no monitor is running.
The sink also corrects for clock drift: if the output device runs a touch slower than the mixer, the ring would otherwise fill up and add latency, so the sink trims its backlog toward a ~30 ms target (dropping a little audio) instead of letting latency grow to the 60 ms cap. The latency tooltip now shows how many drift corrections the sink has made since the monitor started — the engine mirrors the sink’s counter into an atomic, so the read-out costs no lock on the UI’s per-frame path. A steadily climbing count means the output device’s clock is consistently slower than the mixer’s; an occasional bump is normal.
Per-source monitoring and sync offset
Each input has two per-source controls (OBS calls these Advanced Audio Properties; they are on the strip’s Routing disclosure and in the Advanced Audio Properties window). Pan, track routing, monitoring mode and sync offset are all saved: for the microphone as its per-kind default, for each system-audio input per input, and for a media-file layer per layer in the scene’s sources (alongside its gain, mute and filters), so a specific clip keeps its own routing when the scene reloads.
-
Monitoring — how this input is heard, independent of the master Monitor toggle:
- Monitor and Output — heard on the monitor and sent to the tracks (stream/recordings). This is the default.
- Monitor Only — heard on the monitor but removed from every track, so the stream and recordings never carry it (useful for a cue or talkback feed).
- Off — sent to the tracks but not the monitor.
Solo overrides the mode: a soloed input is auditioned on the monitor even if it is set to Off. Mute wins over everything — a muted input is silent on the monitor and the tracks alike.
Difference from OBS. OBS defaults every source to Off (no monitoring). stream-concern defaults to Monitor and Output, so turning on the Monitor output simply plays everything — the behaviour before per-source monitoring existed. Set an input to Off if you want OBS’s default for it.
-
Sync offset (ms) — shift this input in time to line it up with the video, from −950 ms to +20000 ms (OBS’s range). A positive offset delays the audio (the common case: your capture card or mic is ahead of the picture). The offset applies to the tracks and the monitor together.
A negative offset would play the audio earlier than it arrives, which the mixer cannot do (it reads each source just behind the live clock), so a negative value is stored but applies no shift. Use a positive delay on the other sources to achieve the same relative alignment.
How audio reaches your outputs
The microphone and any media-file / system audio are mixed onto one bus, which
feeds your recordings, your stream, and the monitor as three sends of the same
mix. Media-file audio is placed on the bus by timestamp, so recordings stay in
sync — see Recording for the A/V-sync expectations. For the
permission story and the automated audio tests, see
../testing/audio.md.