Skip to main content

Documentation Index

Fetch the complete documentation index at: https://rockboxzig.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Rockbox uses a parametric EQ rather than the more common graphic EQ. Each band has independent control of gain, centre frequency and bandwidth (Q), which buys you the same shaping power with fewer bands than a graphic EQ would need.
Using more bands than necessary wastes CPU and adds rounding noise. Disable or zero out bands you aren’t using.

Bands

BandFilter typeDefault centre / cutoffQ recommendation
0Low-shelf32 Hz0.7 (higher Q adds an unwanted boost near cutoff)
1–8Peaking (bell)64 / 125 / 250 / 500 / 1k / 2k / 4k / 8k HzHigher Q = narrower band
9High-shelf16 000 Hz0.7
Per band:
  • Cutoff / centre frequency — Hz
  • Gain — dB; positive boosts, negative cuts
  • Q — bandwidth (peak filters); 0.7 for shelves

Top-level settings

SettingStorageType / rangeDescription
Enable EQeq_enabledboolMaster on/off
Precuteq_precut0..24 dBNegative gain applied before EQ to prevent clipping when boosting
Applied via dsp_set_eq_precut() and dsp_set_eq_coefs() in lib/rbcodec/dsp/eq.h.

TOML

eq_enabled = true
eq_precut  = 3      # 3 dB headroom before EQ

[[eq_band_settings]]   # band 0 (low shelf)
cutoff = 32
q      = 7         # Q × 10 — Rockbox stores fixed-point
gain   = 30        # dB × 10

[[eq_band_settings]]   # band 1
cutoff = 64
q      = 7
gain   = 0

# ... bands 2-9
q and gain are stored as fixed-point (×10) in global_settings. The GraphQL API accepts plain decimals — see Settings TOML reference.

Configuring via the API

mutation EnableEqAndShapeBass {
  saveSettings(input: {
    eqEnabled: true
    eqPrecut: -3
    eqBandSettings: [
      { cutoff: 60,    q: 7, gain:  3 }
      { cutoff: 200,   q: 7, gain:  0 }
      { cutoff: 800,   q: 7, gain:  0 }
      { cutoff: 4000,  q: 7, gain: -2 }
      { cutoff: 12000, q: 7, gain:  1 }
    ]
  }) { eqEnabled }
}