rockbox_settings::load_settings().
Keys not listed here are ignored.
Core
| Key | Type | Default | Description |
|---|---|---|---|
music_dir | string | — | Absolute path to your music library |
audio_output | string | "builtin" | builtin / cmaf (alias hls, dash) / fifo / airplay / squeezelite / chromecast / snapcast_tcp / upnp |
player_name | string | "" | Name advertised to MPD clients and the UI |
Subsonic / Navidrome API server
| Key | Type | Default | Description |
|---|---|---|---|
subsonic_username | string | admin | Username clients must authenticate with |
subsonic_password | string | — | Password; server is disabled when this is empty |
subsonic_port | int | 4533 | TCP port the Subsonic API listens on |
CMAF (HLS + DASH) sink
| Key | Type | Default | Description |
|---|---|---|---|
cmaf_http_port | int | 7882 | HTTP port the HLS playlist + DASH manifest + fMP4 segments are served on |
cmaf_bitrate | int | 128000 | AAC-LC bitrate in bits/sec (clamped to 32 000 – 320 000) |
cmaf_segment_dir | string | — | Optional directory to mirror init.mp4, seg/N.m4s, and the HLS/DASH manifests to (for serving from an external HTTP server / CDN) |
audio_output = "hls" and audio_output = "dash" are also accepted
and produce the same in-memory CMAF stream.
FIFO / pipe sink
| Key | Type | Default | Description |
|---|---|---|---|
fifo_path | string | /tmp/rockbox.fifo | Named FIFO path, or "-" for stdout |
Snapcast TCP sink
| Key | Type | Default | Description |
|---|---|---|---|
snapcast_tcp_host | string | — | snapserver host |
snapcast_tcp_port | int | 4953 | snapserver TCP source port |
AirPlay sink
| Key | Type | Default | Description |
|---|---|---|---|
airplay_host | string | — | Single receiver IP |
airplay_port | int | 5000 | Single receiver port |
airplay_receivers | array of tables | — | Multi-room. Each entry: host, optional port |
Squeezelite sink
| Key | Type | Default | Description |
|---|---|---|---|
squeezelite_port | int | 3483 | Slim Protocol TCP port |
squeezelite_http_port | int | 9999 | HTTP PCM broadcast port |
Chromecast sink
| Key | Type | Default | Description |
|---|---|---|---|
chromecast_host | string | — | Target Chromecast IP |
chromecast_port | int | 8009 | Cast control port |
chromecast_http_port | int | 7881 | WAV HTTP stream port |
UPnP
| Key | Type | Default | Description |
|---|---|---|---|
upnp_renderer_url | string | — | AVTransport controlURL of the target renderer |
upnp_http_port | int | 7879 | WAV broadcast HTTP port (sink mode) |
upnp_server_enabled | bool | false | Start the ContentDirectory media server |
upnp_server_port | int | 7878 | Media server HTTP port |
upnp_renderer_enabled | bool | false | Start the MediaRenderer endpoint |
upnp_renderer_port | int | 7880 | MediaRenderer HTTP port |
upnp_friendly_name | string | "Rockbox" | Display name shown to control points |
Playback defaults
| Key | Type | Default | Description |
|---|---|---|---|
playlist_shuffle | bool | false | |
repeat_mode | int | 1 | 0=Off 1=All 2=One 3=Shuffle 4=A-B |
party_mode | bool | true |
Tone, stereo & channels
| Key | Type | Default | Description |
|---|---|---|---|
bass | int | 0 | dB |
treble | int | 0 | dB |
bass_cutoff | int | 0 | Hz |
treble_cutoff | int | 0 | Hz |
balance | int | 0 | −100..+100 |
stereo_width | int | 100 | 0..255 % (when channel_config = Custom) |
stereosw_mode | int | 0 | |
channel_config | int | 0 | 0=Stereo 1=Mono 2=Custom 3=ML 4=MR 5=Karaoke 6=Swap |
Surround
| Key | Type | Default | Description |
|---|---|---|---|
surround_enabled | int | 0 | 0/5/8/10/15/30 ms (0=off) |
surround_balance | int | 0 | 0..99 % |
surround_fx1 | int | 0 | HF cutoff, Hz |
surround_fx2 | int | 0 | LF cutoff, Hz |
surround_method2 | bool | false | Side-only processing |
surround_mix | int | 0 | 0..100 % |
Crossfade
Equalizer
ReplayGain
Compressor
Where it’s parsed
The file is read byrockbox_settings::load_settings() in
crates/settings/src/lib.rs. Unknown keys are silently ignored, so
typos won’t crash startup — but they also won’t take effect.