The Rockbox DSP pipeline runs between the codec output and the active PCM sink. Settings live inDocumentation Index
Fetch the complete documentation index at: https://rockboxzig.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
global_settings (in the C firmware) and are
mirrored in settings.toml. Most can also be changed at runtime via
GraphQL or gRPC and they persist on the next save cycle.
Equalizer
10-band parametric EQ — gain, centre frequency, Q per band.
DSP
Crossfeed, surround, PBE, AFR, compressor, dithering.
ReplayGain
Track / album normalisation with optional clipping protection.
Crossfade
Overlap track ends with the next track’s start.
Where settings live
| Layer | Lives in | Lifetime |
|---|---|---|
| Compiled-in defaults | apps/settings_list.c | Build-time |
settings.toml | ~/.config/rockbox.org/settings.toml | Read once at startup |
| Runtime (API) | In-memory global_settings | Persisted on save |
firmware/sound.c → sound_set_*(). DSP
settings flow through lib/rbcodec/dsp/* and are applied in the PCM pipeline
before samples reach the sink.
Volume
global_status.volume — decibels relative to the device’s clipping point.
0 dB is the maximum undistorted level. Negative values reduce output;
positive values may distort. On the SDL target, volume is implemented as a
software mixer.
Channels & stereo
| Setting | Storage | Range / values |
|---|---|---|
| Balance | balance | −100..+100 |
| Channel config | channel_config | Stereo / Mono / Custom / Mono L / R / Karaoke / Swap |
| Stereo width (when Custom) | stereo_width | 0..255 % |
Pitch & time-stretch
Persisted inglobal_status so they survive across restarts. Time-stretch
uses a TDHS algorithm — best for speech, may sound rough on dense music.
| Setting | Storage | Range |
|---|---|---|
| Pitch | global_status.resume_pitch | ~50..200 % |
| Speed | global_status.resume_speed | ~35..250 % |
| Time-stretch enable | global_settings.timestretch_enabled | bool |