Error Guide

E-8304 / E-8305

CDJ Error E-8304 / E-8305: How to Fix 32-bit Float WAV Files for Pioneer CDJ Playback

You bounce a WAV from Ableton Live, Logic Pro, or FL Studio, drag it into rekordbox, and the CDJ immediately throws E-8304 or E-8305 — even though the file is perfectly valid 44.1 kHz stereo audio. The problem is invisible in any file manager and in most audio players: the WAV file uses 32-bit float sample encoding (format tag 0x0003), and no Pioneer CDJ — including the CDJ-3000 — can decode 32-bit float audio. The fix is a one-command re-encode to 24-bit integer PCM.

First analysis free · no account needed

Technical cause

The WAV specification defines several sample formats via the format tag field in the file header. WAVE_FORMAT_PCM (0x0001) covers 8-bit, 16-bit, and 24-bit integer audio. WAVE_FORMAT_IEEE_FLOAT (0x0003) covers 32-bit and 64-bit floating-point audio. Pioneer CDJs only support WAVE_FORMAT_PCM at 16-bit or 24-bit resolution. 32-bit float is the internal processing format of virtually every modern DAW — Ableton Live, Logic Pro X, FL Studio, Bitwig Studio, and Pro Tools all operate internally at 32-bit float. When you export or bounce a project without explicitly choosing a bit depth, many DAWs default to 32-bit float, which produces a WAV the CDJ cannot play. The file plays without issues on your computer because desktop audio engines natively support floating-point audio. CDJ hardware decoders do not. This issue affects all current Pioneer DJ players: CDJ-3000, CDJ-2000NXS2, CDJ-2000NXS, XDJ-XZ, and XDJ-1000MK2.

Manual fix (free tools)

Converting a 32-bit float WAV to 24-bit integer PCM is lossless in practice — the audible dynamic range of 24-bit integer (144 dB) exceeds what any club PA system can reproduce. The following tools perform the conversion.

1
ffmpeg (CLI) — recommendedffmpeg -i input_32float.wav -acodec pcm_s24le -rf64 never output_24bit.wav

`-acodec pcm_s24le` sets 24-bit signed integer PCM little-endian (WAVE_FORMAT_PCM 0x0001). `-rf64 never` forces a standard RIFF header instead of an RF64 or EXTENSIBLE container. Without `-rf64 never`, ffmpeg may output WAVE_FORMAT_EXTENSIBLE for 24-bit audio, which also causes CDJ errors. For 16-bit output (CDJ-900/CDJ-900NXS compatibility) replace `pcm_s24le` with `pcm_s16le`.

2
SoX (CLI)sox input_32float.wav -e signed-integer -b 24 output_24bit.wav

SoX always writes WAVE_FORMAT_PCM headers and handles float-to-integer conversion correctly. Install via `brew install sox` on macOS or `apt install sox` on Linux. The `-e signed-integer -b 24` flags specify 24-bit integer output.

3
Ableton Live — prevent on export

Go to File → Export Audio/Video. Under "Bit Depth", select "24-Bit" instead of "32-Bit" or "32-Bit Float". Ableton 11 and 12 default to 32-bit float for WAV exports. Setting 24-bit here produces a CDJ-compatible file directly without any post-export conversion.

4
Logic Pro — prevent on export

Go to File → Bounce → Project or Section. Under "Bit Depth", select "24" from the dropdown. Logic Pro defaults to 24-bit for standard bounces, but mastering sessions and custom export presets may override this. Always verify the bit depth before finalising your export.

5
FL Studio — prevent on export

Go to File → Export → Wave File. Under "Bit depth", select "24 bit". FL Studio defaults to 32-bit float for WAV renders. Change this in the export dialog each time, or create a saved preset with 24-bit selected.

The Boothready way

Fix your entire library automatically

Boothready detects 32-bit float WAV files by reading the format tag and bits-per-sample fields from the WAV header during upload. Affected files are automatically re-encoded to 24-bit signed integer PCM using ffmpeg with the correct flags. The fix is applied in batch across your entire library without manual intervention.

Frequently asked questions

What is the difference between 32-bit float and 32-bit integer WAV?

32-bit float (IEEE 754 floating-point) and 32-bit integer are both 4-byte-per-sample formats, but they encode sample values differently. 32-bit float is the internal processing format of DAWs and supports values outside the [-1, 1] range (headroom above 0 dBFS). 32-bit integer stores fixed-point values with no headroom. Pioneer CDJs support neither — only 16-bit and 24-bit signed integer (WAVE_FORMAT_PCM) are supported.

Does converting from 32-bit float to 24-bit integer lose audio quality?

24-bit integer provides approximately 144 dB of dynamic range, which exceeds the capability of any DJ equipment or club PA system by a large margin. Any audio content that was within 0 dBFS (no clipping) in the 32-bit float source is preserved entirely in the 24-bit output. If the 32-bit float file contains samples above 0 dBFS (legal in floating-point), clipping may occur — but this indicates a problem with the mix level, not the conversion.

Why does my 32-bit float file play in rekordbox but not on the CDJ?

rekordbox desktop uses a software audio engine (Core Audio on macOS, Windows Media Foundation on Windows) that natively supports 32-bit float audio decoding. CDJ hardware decoders follow the WAV specification strictly and only support WAVE_FORMAT_PCM (0x0001). This discrepancy is the defining symptom: the file works everywhere on your computer but consistently fails on the physical CDJ.

Does this issue affect AIFF files too?

AIFF also supports 32-bit float encoding (via the COMM chunk compression type field). Pioneer CDJs only support uncompressed PCM AIFF. An AIFF file exported at 32-bit float from a DAW will trigger the same CDJ error. The fix is the same: re-encode to 24-bit integer using ffmpeg or SoX. See all E-8304 and E-8305 causes at /cdj-error-e-8304 and /cdj-error-e-8305.

Ready to check your full library?

Upload your files and get a detailed compatibility report in seconds — before your next gig.

Start free analysis
Check your library for this issue Check free