Audio crackling or stuttering in your emulator? Fix the buffer, sample rate, and exclusive-mode conflicts
Crackling, popping, or stuttering emulator audio is almost always a buffer underrun or a sample-rate mismatch in the audio pipeline — not a broken ROM or emulator. The fix is usually to raise audio latency, match your output to 48 kHz, and clear exclusive-mode conflicts, in that order. Steps below.
The game runs, the picture is fine, but the sound is wrong: a steady crackle, periodic pops or clicks, or audio that stutters and goes out of sync with the action. This happens across emulators — RetroArch, Dolphin, PCSX2, DuckStation — and it almost never means the ROM or the emulator is broken. It's an audio pipeline problem: the emulator can't hand finished samples to your sound device fast enough, or it's handing them over in a format the device has to convert on the fly.
Cause: emulator audio works by filling a small buffer with sound samples and feeding it to the OS audio device at a steady rate. Crackle is the audible symptom of a buffer underrun — the buffer ran dry for an instant, so the device played silence (the click/pop) before the next chunk arrived. The four things that cause underruns are: (1) audio latency set too low for your system, so there's no slack when the CPU is briefly busy; (2) a sample-rate mismatch — the emulator outputs, say, 44.1 kHz while Windows runs the device at 48 kHz, forcing a real-time resample that drifts and clicks; (3) an exclusive-mode or format conflict, where another app or a Windows "enhancement" is fighting the emulator for the device; and (4) the host can't keep up — a power plan that downclocks the CPU, a bad audio driver, or the emulator simply running below full speed so audio and video both stutter together. The fixes below go in order of how often they're the cause.
Solutions
solution #1428
The single most common fix: give the audio buffer more slack and let the emulator gently match its output rate to your device. This cures the large majority of crackling without touching anything else.
- Raise the audio latency / buffer. A bigger buffer means a brief CPU hiccup no longer empties it. The default is often too aggressive:
- RetroArch: Settings → Audio → Output → Audio Latency (ms). Step it up from the default (often 64 ms) to 96 or 128 ms. The trade is a few milliseconds of audio delay you won't notice in single-player.
- Dolphin: Config → Audio — switch the backend to WASAPI or XAudio2 (avoid the basic backend), then raise Latency a few ms at a time until the crackle stops.
- PCSX2: Settings → Audio — increase the Output Latency / buffer slider; if "minimal output latency" is ticked, untick it and let the buffer grow.
- DuckStation: Settings → Audio — raise Buffer Size; the Cubeb backend is the safe default.
- Turn on audio sync so the emulator paces itself to the sound device. In RetroArch this is Settings → Audio → Audio Sync = On. It's what keeps audio and video locked together; with it off, the emulator runs as fast as it can and audio drifts.
- Enable Dynamic Rate Control (RetroArch). Settings → Audio → Dynamic Audio Rate Control (default
0.005). It nudges the output rate by a fraction of a percent to keep the buffer from going empty or overflowing — inaudible, and it absorbs the tiny timing differences that cause periodic clicks.
Reality check: bump latency, leave sync on, reload the game. If the crackle is gone or much quieter, that was a buffer underrun and you're done. If it's still there at 128 ms, the buffer isn't the problem — it's a format mismatch (S2) or the host falling behind (S3).
solution #1429
If raising the buffer didn't fully fix it, the emulator and Windows are running at different sample rates, so every sample gets resampled in real time — a slow, clicky drift that no buffer size fully hides. Make both ends agree, ideally on 48 kHz.
- Find your device's rate in Windows. Right-click the speaker icon → Sound settings → More sound settings → Playback → select your device → Properties → Advanced. Note the Default Format — it's usually 24 bit, 48000 Hz. Set it to a clean 16 bit or 24 bit, 48000 Hz and avoid the odd 44100/96000 mixes.
- Match the emulator's output rate to it.
- RetroArch: Settings → Audio → Output → Audio Output Rate (Hz) → set to 48000 to match Windows. (RetroArch resamples the core's native rate internally; the output rate is what hits your device, so this is the one that must match.)
- Dolphin / PCSX2 / DuckStation: these output 48 kHz by default — the fix here is making Windows 48 kHz (step 1) so it isn't upsampling the emulator to a different device rate.
- Pick a clean resampler if one is offered. In RetroArch, Settings → Audio → Resampler → sinc (the default) is correct; only drop to nearest on a very weak handheld where CPU is the bottleneck.
Once both ends are 48 kHz the real-time conversion stops, which removes the slow periodic clicking that a bigger buffer only masks.
solution #1430
Still crackling? Either another app holds the device in exclusive mode, a Windows "enhancement" is mangling the stream, or the host is simply running below full speed so sound and picture stutter together.
- Turn off exclusive-mode hand-off and audio enhancements. In the same Playback device → Properties → Advanced panel, untick "Allow applications to take exclusive control of this device", and under the Enhancements / Spatial sound tab set spatial sound to Off. Exclusive-mode tug-of-war and DSP "enhancements" are a frequent source of pops when the emulator and another app (a browser, Discord, a game launcher) are both active.
- Stop the CPU from downclocking mid-frame. Set Windows power plan to High performance (or Balanced with minimum processor state raised) — a CPU that drops clocks to save power starves the audio thread in bursts. This is the same lever that fixes an emulator running slow on a strong PC.
- Confirm the emulator is actually at 100% speed. Turn on the FPS / speed display. If the emulator is running at, say, 90% speed, audio and video stutter together — that's not an audio bug, it's a performance bug, and the fix is the slow-PC checklist above (right GPU backend, shader cache, affinity), not the audio panel.
- Update or swap the audio driver / backend. A stale or generic audio driver underruns under load — install your motherboard or sound-card vendor's current driver. If one backend keeps crackling, switch it: RetroArch (WASAPI ↔ XAudio ↔ DirectSound), Dolphin (WASAPI ↔ XAudio2), DuckStation (Cubeb is the safe default).
- Rule out a Bluetooth headset. Wireless audio adds its own buffer and codec latency on top of the emulator's; if crackle only happens on Bluetooth, test wired to confirm, then raise the emulator latency further (S1) to cover the wireless overhead.
Related fixes: if the whole emulator stutters and not just the sound, start with why an emulator runs slow on a good PC. If the picture is glitched after a recent driver change, see the clean GPU-driver guide. For low-end handhelds where every millisecond of CPU counts, the low-end RetroArch settings guide covers the audio-sync trade-offs in context.
Comments (0)
Sign in to_leave_comment