Crossfeed, Haas surround, PBE, AFR, compressor and dithering.
The rbcodec DSP pipeline runs between the codec output and the active sink.
All of these are bypassable; turn anything off by zeroing its enable flag.
Crossfeed
Mixes a delayed and filtered portion of one channel into the other to
simulate the spatial cues you’d get from loudspeakers. Particularly useful
on headphones with hard-panned mixes (older rock/jazz).
Setting
Storage
Range
Default
Type
crossfeed
off / meier / custom
off
Direct gain
crossfeed_direct_gain
−60..0 dB (step 5)
−15 dB
Cross gain
crossfeed_cross_gain
−120..−30 dB
−60 dB
HF attenuation
crossfeed_hf_attenuation
−240..−60 dB
−160 dB
HF cutoff
crossfeed_hf_cutoff
500..2000 Hz
700 Hz
Crossfeed can cause output distortion if its settings result in a combined
level that is too high.
Haas surround
Adds an adjustable delay between channels to widen the stereo image. Four
auxiliary controls move the perceived stage back toward the centre.
Setting
Storage
Range
Default
Enable
surround_enabled
0 / 5 / 8 / 10 / 15 / 30 ms
0 (off)
Balance
surround_balance
0..99 %
35 %
f(x1) HF cut
surround_fx1
600..8000 Hz (step 200)
3400 Hz
f(x2) LF cut
surround_fx2
40..400 Hz (step 40)
320 Hz
Side only
surround_method2
bool
false
Dry/wet mix
surround_mix
0..100 %
50 %
Perceptual Bass Enhancement (PBE)
Group-delay correction plus a biophonic EQ to boost low-end perception.
Setting
Storage
Range
Default
Strength
pbe
0..100 % (step 25)
0 % (off)
Precut
pbe_precut
−4.5..0 dB (step 0.1)
−2.5 dB
Auditory Fatigue Reduction (AFR)
Reduces energy in frequency bands the human ear is most sensitive to —
helpful for long listening sessions.
Setting
Values
Default
AFR enable
off / weak / moderate / strong
off
Compressor
Reduces dynamic range so quiet passages stay audible without loud passages
clipping.
Setting
Storage
Values / range
Default
Threshold
.threshold
off / −3 / −6 / −9 / −12 / −15 / −18 / −21 / −24 dB
Most decoders work at higher than 16-bit precision; dithering adds a small
shaped noise signal before truncation so the residual is uniform rather
than signal-correlated. Most useful with classical music and other
high-dynamic-range material.
dithering_enabled = true
Algorithm: high-pass triangular distribution (HPTPDF)
Noise shaper: third order, biased above ~10 kHz
⌘I
{"docsConfig":{"theme":"linden","$schema":"https://mintlify.com/docs.json","name":"Rockbox Daemon","colors":{"primary":"#FF6B00","light":"#FF9347","dark":"#CC5500"},"logo":{"light":"https://mintcdn.com/rockboxzig/9kP-H_jRBkIO2KOF/logo/light.svg?fit=max\u0026auto=format\u0026n=9kP-H_jRBkIO2KOF\u0026q=85\u0026s=aef84576565438310e1b68d08aea8441","dark":"https://mintcdn.com/rockboxzig/9kP-H_jRBkIO2KOF/logo/dark.svg?fit=max\u0026auto=format\u0026n=9kP-H_jRBkIO2KOF\u0026q=85\u0026s=1de817c23b895c5f3c8ee6038b765263"},"favicon":"https://mintcdn.com/rockboxzig/9kP-H_jRBkIO2KOF/favicon.svg?fit=max\u0026auto=format\u0026n=9kP-H_jRBkIO2KOF\u0026q=85\u0026s=dd84886ca336d7a88e8e0aff96cad6b8","appearance":{"default":"dark","strict":true},"background":{"decoration":"grid","color":{"light":"#fffbf7","dark":"#07080C"}},"navbar":{"links":[{"href":"https://github.com/tsirysndr/rockboxd/issues","label":"Issues"}],"primary":{"type":"github","href":"https://github.com/tsirysndr/rockboxd"}},"footer":{"socials":{"github":"https://github.com/tsirysndr/rockboxd","discord":"https://discord.gg/tXPrgcPKSt"}},"styling":{"codeblocks":{"theme":{"light":"catppuccin-latte","dark":"min-dark"}},"latex":false},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"navigation":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/tsirysndr/rockboxd"},{"anchor":"Discord","icon":"discord","href":"https://discord.gg/tXPrgcPKSt"},{"anchor":"Releases","icon":"rocket","href":"https://github.com/tsirysndr/rockboxd/releases"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"rockboxzig","hasAudioNarration":false,"actualSubdomain":"rockboxzig","customDomains":[],"gitSource":{"type":"github","owner":"tsirysndr","repo":"rockboxd","deployBranch":"master","contentDirectory":"mintlify","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae0cb56c9d0adb3afbd704f","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"API reference","count":82},{"language":"default","tag":"HTTP REST","count":75},{"language":"default","tag":"Guides","count":30},{"language":"default","tag":"Player","count":16},{"language":"default","tag":"Saved playlists","count":13},{"language":"default","tag":"Bindings","count":11},{"language":"default","tag":"Native engine bindings","count":11},{"language":"default","tag":"Playlist (queue)","count":10},{"language":"default","tag":"Audio output","count":8},{"language":"default","tag":"Overview","count":7}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"audio-settings/dsp","slug":"/audio-settings/dsp","pageMetadata":{"title":"DSP effects","description":"Crossfeed, Haas surround, PBE, AFR, compressor and dithering.","icon":"waveform-lines","href":"/audio-settings/dsp"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Crossfeed, Haas surround, PBE, AFR, compressor and dithering.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`The rbcodec DSP pipeline runs between the codec output and the active sink.\nAll of these are bypassable; turn anything off by zeroing its enable flag.`}),`\n`,_jsx(Heading,{level:`2`,id:`crossfeed`,children:`Crossfeed`}),`\n`,_jsx(_components.p,{children:`Mixes a delayed and filtered portion of one channel into the other to\nsimulate the spatial cues you’d get from loudspeakers. Particularly useful\non headphones with hard-panned mixes (older rock/jazz).`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Setting`}),_jsx(_components.th,{children:`Storage`}),_jsx(_components.th,{children:`Range`}),_jsx(_components.th,{children:`Default`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Type`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`crossfeed`})}),_jsx(_components.td,{children:`off / meier / custom`}),_jsx(_components.td,{children:`off`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Direct gain`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`crossfeed_direct_gain`})}),_jsx(_components.td,{children:`−60..0 dB (step 5)`}),_jsx(_components.td,{children:`−15 dB`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Cross gain`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`crossfeed_cross_gain`})}),_jsx(_components.td,{children:`−120..−30 dB`}),_jsx(_components.td,{children:`−60 dB`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`HF attenuation`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`crossfeed_hf_attenuation`})}),_jsx(_components.td,{children:`−240..−60 dB`}),_jsx(_components.td,{children:`−160 dB`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`HF cutoff`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`crossfeed_hf_cutoff`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`500..2000 Hz`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`700 Hz`})]})]})]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Crossfeed can cause output distortion if its settings result in a combined\nlevel that is too high.`})}),`\n`,_jsx(Heading,{level:`2`,id:`haas-surround`,children:`Haas surround`}),`\n`,_jsx(_components.p,{children:`Adds an adjustable delay between channels to widen the stereo image. Four\nauxiliary controls move the perceived stage back toward the centre.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Setting`}),_jsx(_components.th,{children:`Storage`}),_jsx(_components.th,{children:`Range`}),_jsx(_components.th,{children:`Default`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Enable`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`surround_enabled`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`0 / 5 / 8 / 10 / 15 / 30 ms`}),_jsx(_components.td,{children:`0 (off)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Balance`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`surround_balance`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`0..99 %`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`35 %`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`f(x1) HF cut`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`surround_fx1`})}),_jsx(_components.td,{children:`600..8000 Hz (step 200)`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`3400 Hz`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`f(x2) LF cut`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`surround_fx2`})}),_jsx(_components.td,{children:`40..400 Hz (step 40)`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`320 Hz`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Side only`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`surround_method2`})}),_jsx(_components.td,{children:`bool`}),_jsx(_components.td,{children:`false`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Dry/wet mix`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`surround_mix`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`0..100 %`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`50 %`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`perceptual-bass-enhancement-pbe`,children:`Perceptual Bass Enhancement (PBE)`}),`\n`,_jsx(_components.p,{children:`Group-delay correction plus a biophonic EQ to boost low-end perception.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Setting`}),_jsx(_components.th,{children:`Storage`}),_jsx(_components.th,{children:`Range`}),_jsx(_components.th,{children:`Default`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Strength`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`pbe`})}),_jsx(_components.td,{children:`0..100 % (step 25)`}),_jsx(_components.td,{children:`0 % (off)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Precut`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`pbe_precut`})}),_jsx(_components.td,{children:`−4.5..0 dB (step 0.1)`}),_jsx(_components.td,{children:`−2.5 dB`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`auditory-fatigue-reduction-afr`,children:`Auditory Fatigue Reduction (AFR)`}),`\n`,_jsx(_components.p,{children:`Reduces energy in frequency bands the human ear is most sensitive to —\nhelpful for long listening sessions.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Setting`}),_jsx(_components.th,{children:`Values`}),_jsx(_components.th,{children:`Default`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`AFR enable`}),_jsx(_components.td,{children:`off / weak / moderate / strong`}),_jsx(_components.td,{children:`off`})]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`compressor`,children:`Compressor`}),`\n`,_jsx(_components.p,{children:`Reduces dynamic range so quiet passages stay audible without loud passages\nclipping.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Setting`}),_jsx(_components.th,{children:`Storage`}),_jsx(_components.th,{children:`Values / range`}),_jsx(_components.th,{children:`Default`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Threshold`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`.threshold`})}),_jsx(_components.td,{children:`off / −3 / −6 / −9 / −12 / −15 / −18 / −21 / −24 dB`}),_jsx(_components.td,{children:`off`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Makeup gain`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`.makeup_gain`})}),_jsx(_components.td,{children:`off / auto`}),_jsx(_components.td,{children:`auto`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Ratio`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`.ratio`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2:1 / 4:1 / 6:1 / 10:1 / limit`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2:1`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Knee`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`.knee`})}),_jsx(_components.td,{children:`hard / soft`}),_jsx(_components.td,{children:`soft`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Attack time`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`.attack_time`})}),_jsx(_components.td,{children:`0..30 ms (step 5)`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`5 ms`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Release time`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`.release_time`})}),_jsx(_components.td,{children:`100..1000 ms (step 100)`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`500 ms`})]})]})]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`toml`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-latte min-dark`,style:{backgroundColor:`#eff1f5`,\"--shiki-dark-bg\":`#1f1f1f`,color:`#4c4f69`,\"--shiki-dark\":`#b392f0`},language:`toml`,children:_jsxs(_components.code,{language:`toml`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#B392F0`},children:`[`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#B392F0`},children:`compressor_settings`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#B392F0`},children:`]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#B392F0`},children:`threshold `}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#F97583`},children:`=`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#F8F8F8`},children:` -24`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#B392F0`},children:`makeup_gain `}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#F97583`},children:`=`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#F8F8F8`},children:` 0`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#B392F0`},children:`ratio `}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#F97583`},children:`=`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#F8F8F8`},children:` 4`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#B392F0`},children:`knee `}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#F97583`},children:`=`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#F8F8F8`},children:` 1`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#B392F0`},children:`release_time `}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#F97583`},children:`=`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#F8F8F8`},children:` 300`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#B392F0`},children:`attack_time `}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#F97583`},children:`=`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#F8F8F8`},children:` 5`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`dithering`,children:`Dithering`}),`\n`,_jsx(_components.p,{children:`Most decoders work at higher than 16-bit precision; dithering adds a small\nshaped noise signal before truncation so the residual is uniform rather\nthan signal-correlated. Most useful with classical music and other\nhigh-dynamic-range material.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`toml`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-latte min-dark`,style:{backgroundColor:`#eff1f5`,\"--shiki-dark-bg\":`#1f1f1f`,color:`#4c4f69`,\"--shiki-dark\":`#b392f0`},language:`toml`,children:_jsxs(_components.code,{language:`toml`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#B392F0`},children:`dithering_enabled `}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#F97583`},children:`=`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#79B8FF`},children:` true`})]}),`\n`]})})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Algorithm: high-pass triangular distribution (HPTPDF)`}),`\n`,_jsx(_components.li,{children:`Noise shaper: third order, biased above ~10 kHz`}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"catppuccin-latte","dark":"min-dark"}},"config":{},"pageMetadata":{"title":"DSP effects","description":"Crossfeed, Haas surround, PBE, AFR, compressor and dithering.","icon":"waveform-lines","href":"/audio-settings/dsp"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Crossfeed","slug":"crossfeed","depth":2,"children":[]},{"title":"Haas surround","slug":"haas-surround","depth":2,"children":[]},{"title":"Perceptual Bass Enhancement (PBE)","slug":"perceptual-bass-enhancement-pbe","depth":2,"children":[]},{"title":"Auditory Fatigue Reduction (AFR)","slug":"auditory-fatigue-reduction-afr","depth":2,"children":[]},{"title":"Compressor","slug":"compressor","depth":2,"children":[]},{"title":"Dithering","slug":"dithering","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"rockboxzig","siteName":"Rockbox Daemon","title":"DSP effects - Rockbox Daemon","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-05-02T18:29:54.242Z","originalFileLocation":"audio-settings/dsp.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"dark\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Crossfeed, Haas surround, PBE, AFR, compressor and dithering.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Rockbox Daemon\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/rockboxzig/pcYORXdXdl3xldRO/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/rockboxzig/pcYORXdXdl3xldRO/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/rockboxzig/pcYORXdXdl3xldRO/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/rockboxzig/pcYORXdXdl3xldRO/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/rockboxzig/pcYORXdXdl3xldRO/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/rockboxzig/pcYORXdXdl3xldRO/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/rockboxzig/pcYORXdXdl3xldRO/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/rockboxzig/pcYORXdXdl3xldRO/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/rockboxzig/pcYORXdXdl3xldRO/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"DSP effects - Rockbox Daemon\">\u003cmeta data-mint-head property=\"og:description\" content=\"Crossfeed, Haas surround, PBE, AFR, compressor and dithering.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Rockbox Daemon\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://rockboxzig.mintlify.app/audio-settings/dsp\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://rockboxzig.mintlify.site/_mintlify/api/og/v2?division=Audio+settings\u0026amp;title=DSP+effects\u0026amp;description=Crossfeed%2C+Haas+surround%2C+PBE%2C+AFR%2C+compressor+and+dithering.\u0026amp;theme=8993cbb32a9990bfc28bed57\u0026amp;signature=106270d98ac2e21e6439cde8c45cd5ec6e5f3ad49ad6239f0529c0b17bd7e2c3\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"DSP effects - Rockbox Daemon\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Crossfeed, Haas surround, PBE, AFR, compressor and dithering.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://rockboxzig.mintlify.site/_mintlify/api/og/v2?division=Audio+settings\u0026amp;title=DSP+effects\u0026amp;description=Crossfeed%2C+Haas+surround%2C+PBE%2C+AFR%2C+compressor+and+dithering.\u0026amp;theme=8993cbb32a9990bfc28bed57\u0026amp;signature=106270d98ac2e21e6439cde8c45cd5ec6e5f3ad49ad6239f0529c0b17bd7e2c3\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/rockboxzig/pcYORXdXdl3xldRO/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Rockbox Daemon\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF6B00\">\u003clink data-mint-head rel=\"canonical\" href=\"https://rockboxzig.mintlify.app/audio-settings/dsp\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/audio-settings/dsp.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://rockboxzig.mintlify.app/#organization\",\"name\":\"Rockbox Daemon\",\"url\":\"https://rockboxzig.mintlify.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/rockboxzig/9kP-H_jRBkIO2KOF/logo/light.svg?fit=max\u0026auto=format\u0026n=9kP-H_jRBkIO2KOF\u0026q=85\u0026s=aef84576565438310e1b68d08aea8441\"}},{\"@type\":\"WebSite\",\"@id\":\"https://rockboxzig.mintlify.app#website\",\"name\":\"Rockbox Daemon\",\"url\":\"https://rockboxzig.mintlify.app\",\"publisher\":{\"@id\":\"https://rockboxzig.mintlify.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://rockboxzig.mintlify.app/audio-settings/dsp#webpage\",\"url\":\"https://rockboxzig.mintlify.app/audio-settings/dsp\",\"name\":\"DSP effects\",\"description\":\"Crossfeed, Haas surround, PBE, AFR, compressor and dithering.\",\"dateModified\":\"2026-05-02T18:29:54.242Z\",\"isPartOf\":{\"@id\":\"https://rockboxzig.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://rockboxzig.mintlify.app/audio-settings/dsp#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://rockboxzig.mintlify.app/audio-settings/dsp#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Audio settings\",\"item\":\"https://rockboxzig.mintlify.app/audio-settings/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DSP effects\",\"item\":\"https://rockboxzig.mintlify.app/audio-settings/dsp\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://rockboxzig.mintlify.app/audio-settings/dsp#article\",\"headline\":\"DSP effects\",\"name\":\"DSP effects\",\"description\":\"Crossfeed, Haas surround, PBE, AFR, compressor and dithering.\",\"url\":\"https://rockboxzig.mintlify.app/audio-settings/dsp\",\"mainEntityOfPage\":{\"@id\":\"https://rockboxzig.mintlify.app/audio-settings/dsp#webpage\"},\"dateModified\":\"2026-05-02T18:29:54.242Z\",\"publisher\":{\"@id\":\"https://rockboxzig.mintlify.app/#organization\"},\"isPartOf\":{\"@id\":\"https://rockboxzig.mintlify.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Rockbox Daemon\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Rockbox Daemon\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/audio-settings/dsp.md","siteName":"Rockbox Daemon","nav":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/tsirysndr/rockboxd"},{"anchor":"Discord","icon":"discord","href":"https://discord.gg/tXPrgcPKSt"},{"anchor":"Releases","icon":"rocket","href":"https://github.com/tsirysndr/rockboxd/releases"}]},"tabs":[{"tab":"Guides","groups":[{"group":"Getting started","pages":[{"title":"Rockbox Daemon","icon":"music","href":""},{"title":"Quickstart","icon":"rocket","href":"/quickstart"},{"title":"Installation","icon":"download","href":"/installation"},{"title":"Configuration","icon":"gear","href":"/configuration"}]},{"group":"Audio output","pages":[{"title":"Audio output overview","icon":"speaker","href":"/audio-output/overview"},{"title":"Built-in (CPAL)","icon":"volume-high","href":"/audio-output/built-in"},{"title":"HLS + MPEG-DASH (CMAF)","icon":"globe","href":"/audio-output/hls"},{"title":"Snapcast","icon":"network-wired","href":"/audio-output/snapcast"},{"title":"AirPlay","icon":"apple","href":"/audio-output/airplay"},{"title":"Squeezelite","icon":"boxes-stacked","href":"/audio-output/squeezelite"},{"title":"Chromecast","icon":"chromecast","iconType":"brands","href":"/audio-output/chromecast"},{"title":"UPnP / DLNA","icon":"tower-broadcast","href":"/audio-output/upnp"}]},{"group":"Audio settings","pages":[{"title":"Audio settings","icon":"sliders","href":"/audio-settings/overview"},{"title":"Equalizer","description":"10-band parametric EQ — independent gain, frequency and Q per band.","icon":"chart-column","href":"/audio-settings/equalizer"},{"title":"DSP effects","icon":"waveform-lines","href":"/audio-settings/dsp"},{"title":"ReplayGain","description":"Loudness normalisation using ReplayGain tags embedded in your files.","icon":"volume","href":"/audio-settings/replaygain"},{"title":"Crossfade","icon":"shuffle","href":"/audio-settings/crossfade"}]},{"group":"Clients","pages":[{"title":"Web UI","icon":"globe","href":"/clients/web"},{"title":"Desktop app","icon":"display","href":"/clients/desktop"},{"title":"MPD clients","icon":"terminal","href":"/clients/mpd"},{"title":"MPRIS","icon":"keyboard","href":"/clients/mpris"}]},{"group":"Architecture","pages":[{"title":"Architecture","icon":"sitemap","href":"/architecture/overview"},{"title":"Build system","icon":"hammer","href":"/architecture/build"},{"title":"PCM sinks","icon":"plug","href":"/architecture/pcm-sinks"}]},{"group":"Reference","pages":[{"title":"CLI reference","icon":"terminal","href":"/reference/cli"},{"title":"Settings sync","icon":"cloud-arrow-up","href":"/reference/settings-sync"},{"title":"Ports","icon":"plug","href":"/reference/ports"},{"title":"settings.toml reference","icon":"file-code","href":"/reference/settings-toml"},{"title":"Troubleshooting","icon":"wrench","href":"/reference/troubleshooting"},{"title":"FAQ","icon":"circle-question","href":"/reference/faq"}]}]},{"tab":"API reference","pages":[{"title":"API reference","href":"/api-reference/introduction"}]},{"tab":"SDKs","pages":[{"title":"SDKs","href":"/sdks/overview"}]},{"tab":"Bindings","pages":[{"title":"Bindings","href":"/bindings/overview"}]}]},"basePath":"","title":"DSP effects - Rockbox Daemon","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":[],"chunks":[]}