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.

The Rockbox DSP pipeline runs between the codec output and the active PCM sink. Settings live in 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

LayerLives inLifetime
Compiled-in defaultsapps/settings_list.cBuild-time
settings.toml~/.config/rockbox.org/settings.tomlRead once at startup
Runtime (API)In-memory global_settingsPersisted on save
Hardware settings flow through 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.
volume_limit = 0   # ceiling in dB (default = device max)

Channels & stereo

SettingStorageRange / values
Balancebalance−100..+100
Channel configchannel_configStereo / Mono / Custom / Mono L / R / Karaoke / Swap
Stereo width (when Custom)stereo_width0..255 %

Pitch & time-stretch

Persisted in global_status so they survive across restarts. Time-stretch uses a TDHS algorithm — best for speech, may sound rough on dense music.
SettingStorageRange
Pitchglobal_status.resume_pitch~50..200 %
Speedglobal_status.resume_speed~35..250 %
Time-stretch enableglobal_settings.timestretch_enabledbool

Output sample rate

play_frequency = 0   # 0=auto, 44100, 48000, 88200, 96000

UI feedback

beep              = 0   # off / weak / moderate / strong
keyclick          = 0
keyclick_repeats  = false