\r\n
Custom parametric eq allows you to fully control what kind of set of parametric filters will be produced.
\r\n
Add filters, configure their types and allowed ranges for center frequency (Fc), gain and quality (Q).
\r\n
Download a file the app supports EqualizerAPO file format or configure the filters in the app manually.
\r\n
\r\n },\r\n {\r\n label: 'Ears (Chrome Extension)',\r\n type: 'parametric',\r\n config: {\r\n optimizer: { minF: null, maxF: 10000, maxTime: 0.5, minChangeRate: null, minStd: null },\r\n filters: [\r\n { type: 'LOW_SHELF', fc: null, minFc: 105, maxFc: 105, gain: null, minGain: null, maxGain: null, q: null, minQ: 0.7, maxQ: 0.7 },\r\n ...(Array(9).fill(\r\n { type: 'PEAKING', fc: null, minFc: null, maxFc: null, gain: null, minGain: null, maxGain: null, q: null, minQ: null, maxQ: null }\r\n )),\r\n { type: 'HIGH_SHELF', fc: null, minFc: 10000, maxFc: 10000, gain: null, minGain: null, maxGain: null, q: null, minQ: 0.7, maxQ: 0.7 },\r\n ]\r\n },\r\n uiConfig: { showDownload: true, showFsControl: true },\r\n fileFormatter: (preamp, filters, name) => {\r\n return JSON.stringify({\r\n [name]: {\r\n frequencies: filters.map(filter => filter.fc),\r\n gains: filters.map(filter => filter.gain),\r\n qs: filters.map(filter => filter.q)\r\n }\r\n }, null, 2);\r\n },\r\n fileName: (name) => {\r\n return `${name} Ears.json`\r\n },\r\n instructions: 'Download file, open Ears, click \"Import Presets\", select file and drag Volume bar to match Preamp.'\r\n },\r\n {\r\n label: 'EasyEffects',\r\n type: 'parametric',\r\n config: '8_PEAKING_WITH_SHELVES',\r\n uiConfig: { showFsControl: true, showDownload: true },\r\n instructions: 'Download the file and click \"APO\" below \"Import Preset\" in Equalizer plugin in EasyEffects'\r\n },\r\n {\r\n label: 'eqMac (Advanced Equalizer)',\r\n type: 'fixedBand',\r\n config: '10_BAND_GRAPHIC_EQ',\r\n uiConfig: { showFsControl: false },\r\n instructions: 'Adjust the sliders in eqMac to match the gain values',\r\n },\r\n {\r\n label: 'eqMac (Expert Equalizer)',\r\n type: 'parametric',\r\n config: '8_PEAKING_WITH_SHELVES',\r\n uiConfig: { showFsControl: true },\r\n instructions: 'Configure frequency, gain and quality (Q) for each band manually on Expert tab'\r\n },\r\n {\r\n label: 'EqualizerAPO GraphicEq',\r\n type: 'graphic',\r\n instructions: 'Download the file to \"C:\\\\Program Files\\\\EqualizerAPO\\\\config\\\\\", open \"Configuration Editor\" app, add a filter \"Control > Include\" and select the file with 📁.'\r\n },\r\n {\r\n label: 'EqualizerAPO ParametricEq', type: 'parametric', config: '8_PEAKING_WITH_SHELVES',\r\n uiConfig: {\r\n bw: false, showDownload: true, showFsControl: true,\r\n filterNames: { LOW_SHELF: 'Low-shelf', PEAKING: 'Peaking', HIGH_SHELF: 'High-shelf', PREAMP: 'Preamplification' },\r\n columnNames: { fc: 'Center frequency (Hz)', gain: 'Gain (dB)', q: 'Q factor' }\r\n },\r\n instructions: 'Download the file to \"C:\\\\Program Files\\\\EqualizerAPO\\\\config\\\\\", open \"Configuration Editor\" app, add a filter \"Control > Include\" and select the file with 📁.'\r\n },\r\n {\r\n label: 'iTunes built-in equalizer',\r\n type: 'fixedBand',\r\n config: '10_BAND_GRAPHIC_EQ',\r\n uiConfig: { showFsControl: false },\r\n instructions: 'Adjust the sliders in the equalizer to match the gain values and set Preamp'\r\n },\r\n { label: 'JamesDSP', type: 'convolution' },\r\n { label: 'RootlessJamesDSP', type: 'convolution' },\r\n {\r\n label: 'MiniDSP 2x4HD', type: 'parametric', config: 'MINIDSP_2X4HD',\r\n uiConfig: {\r\n bw: false, showDownload: false, showFsControl: true,\r\n filterNames: { LOW_SHELF: 'LOW_SHELF', PEAKING: 'PEAK', HIGH_SHELF: 'HIGH_SHELF', PREAMP: 'Preamp' },\r\n columnNames: { fc: 'Frequency', gain: 'Gain', q: 'Q' }\r\n },\r\n instructions: 'Configure frequency, gain and quality (Q) for each band manually with Parametric EQ'\r\n },\r\n {\r\n label: 'MiniDSP IL-DSP', type: 'parametric', config: 'MINIDSP_IL_DSP',\r\n uiConfig: {\r\n bw: false, showDownload: false, showPreampControl: true, showFsControl: false,\r\n filterNames: { LOW_SHELF: 'LOW_SHELF', PEAKING: 'PEAK', HIGH_SHELF: 'HIGH_SHELF', PREAMP: 'Preamp' },\r\n columnNames: { fc: 'Frequency', gain: 'Gain', q: 'Q' },\r\n },\r\n instructions: 'Configure frequency, gain and quality (Q) for each band manually with Parametric EQ. IL-DSP doesn\\'t have preamp control and therefore to prevent clipping, can adjust preamp slider here until the requested preamp at the bottom of the produced settings gives a slightly positive value.'\r\n },\r\n {\r\n label: 'Moondrop Free DSP', type: 'parametric', config: 'MOONDROP_FREE_DSP',\r\n uiConfig: {\r\n bw: false, showDownload: false, showPreampControl: true, showFsControl: false,\r\n filterNames: { LOW_SHELF: 'Low-shelf', PEAKING: 'Peaking', HIGH_SHELF: 'High-shelf', PREAMP: 'Preamp' },\r\n columnNames: { fc: 'Freq', gain: 'Gain', q: 'Q' },\r\n },\r\n instructions: 'Configure frequency, gain and quality (Q) for each band manually with Parametric EQ, as accurately as the app allows. Free DSP doesn\\'t have preamp control and therefore to prevent clipping, can adjust preamp slider here until the requested preamp at the bottom of the produced settings gives a slightly positive value.'\r\n },\r\n {\r\n label: 'Neutron Music Player', type: 'parametric', config: 'NEUTRON_MUSIC_PLAYER',\r\n uiConfig: {\r\n bw: false, showDownload: false, showFsControl: false,\r\n filterNames: { LOW_SHELF: 'Low-shelf', PEAKING: 'Peak EQ', HIGH_SHELF: 'High-shelf', PREAMP: 'Preamp' },\r\n columnNames: { fc: 'Center frequency (Hz)', gain: 'Gain (dB)', q: 'Q' }\r\n },\r\n eqParams: { fs: 48000 },\r\n instructions: 'Go to ⚙ > Playback > DSP Effect > Equalizer, change the band count in ⚙️ and configure frequency, gain and Q for each band and change the filter types from band\\'s ⚙️.'\r\n },\r\n {\r\n label: 'Peace', type: 'parametric', config: '8_PEAKING_WITH_SHELVES',\r\n uiConfig: {\r\n bw: false, showDownload: true, showFsControl: true,\r\n filterNames: { LOW_SHELF: 'Low-shelf', PEAKING: 'Peaking', HIGH_SHELF: 'High-shelf', PREAMP: 'Pre Amplifying' },\r\n columnNames: { fc: 'Frequency', gain: 'Gain', q: 'Quality (Q)' },\r\n },\r\n instructions: 'Download file and import it to Peace by clicking \"📁 Import\" button'\r\n },\r\n {\r\n label: 'Poweramp Equalizer', type: 'parametric', config: 'POWERAMP_EQUALIZER',\r\n uiConfig: {\r\n bw: false, showDownload: false, showFsControl: false,\r\n filterNames: { LOW_SHELF: 'Low Shelf', PEAKING: 'Peaking', HIGH_SHELF: 'High Shelf', PREAMP: 'Preamp' },\r\n columnNames: { fc: 'Freq', gain: 'Gain', q: 'Q' }\r\n },\r\n instructions: 'Enable Parametric equalizer in the settings. Configure frequency, gain and quality (Q) for each band manually and set preamp.'\r\n },\r\n {\r\n label: 'Qudelix-5K', type: 'parametric', config: 'QUDELIX_5K',\r\n uiConfig: {\r\n bw: false, showDownload: false, showFsControl: true,\r\n filterNames: { LOW_SHELF: 'LSHELF', PEAKING: 'PEAK', HIGH_SHELF: 'HSHELF', PREAMP: 'PRE GAIN(dB)' },\r\n columnNames: { fc: 'FREQ(Hz)', gain: 'GAIN(db)', q: 'Q' }\r\n },\r\n instructions: 'Configure frequency, gain and quality (Q) for each band manually on Equalizer tab'\r\n },\r\n {\r\n label: 'Rockbox', type: 'parametric', config: '8_PEAKING_WITH_SHELVES',\r\n uiConfig: {\r\n bw: false, showDownload: true, showFsControl: true,\r\n filterNames: { LOW_SHELF: 'Low Shelf', PEAKING: 'Peaking', HIGH_SHELF: 'High Shelf', PREAMP: 'Pre-cut' },\r\n },\r\n instructions: 'Download the file, move it to the device and load it by clicking \"Browse EQ Presets\"',\r\n fileFormatter: (preamp, filters) => {\r\n const filterTypes = {\r\n 'LOW_SHELF': 'low shelf',\r\n 'PEAKING': 'peak',\r\n 'HIGH_SHELF': 'high shelf'\r\n };\r\n const lines = [\r\n 'eq enabled: on',\r\n `eq precut: ${Math.max(0, Math.round(preamp * -10)).toFixed(0)}`,\r\n ];\r\n for (const [i, filt] of filters?.entries()) {\r\n let line = `eq ${filterTypes[filt.type]} filter`;\r\n if (filt.type === 'PEAKING') {\r\n line += ` ${i}`\r\n }\r\n line += `: ${Math.round(filt.fc).toFixed(0)}, `;\r\n line += `${Math.round(filt.q * 10).toFixed(0)}, `;\r\n line += `${Math.round(filt.gain * 10).toFixed(0)}`;\r\n lines.push(line);\r\n }\r\n return lines.join('\\n');\r\n },\r\n fileName: (name) => {\r\n return `${name} Rockbox.cfg`\r\n }\r\n },\r\n {\r\n label: 'SoundSource', type: 'parametric', config: '8_PEAKING_WITH_SHELVES',\r\n uiConfig: {\r\n bw: false, showDownload: true, showFsControl: true,\r\n filterNames: { LOW_SHELF: 'Low Shelf', PEAKING: 'Peaking', HIGH_SHELF: 'High Shelf', PREAMP: 'Preamp' },\r\n columnNames: { fc: 'Frequency (Hz)', gain: 'Gain (dB)', q: 'Q' }\r\n },\r\n instructions: 'Download file and import to SoundSource from Headphone EQ menu by selecting \"Add Other Profile...\"',\r\n fileFormatter: (preamp, filters) => {\r\n const typeMap = { LOW_SHELF: 'LS', PEAKING: 'PK', HIGH_SHELF: 'HS' };\r\n let s = `Preamp: ${preamp?.toFixed(2)} dB\\n`\r\n for (const [i, filt] of filters?.entries()) {\r\n s += `Filter ${i + 1}: ON ${typeMap[filt.type]} Fc ${filt.fc.toFixed(1)} Hz Gain ${filt.gain.toFixed(1)} dB Q ${filt.q.toFixed(2)}\\n`\r\n }\r\n return s;\r\n }\r\n },\r\n {\r\n label: 'Spotify built-in equalizer',\r\n type: 'fixedBand',\r\n config: 'SPOTIFY',\r\n uiConfig: { showFsControl: false },\r\n instructions: 'Use Spotify\\'s built-in equalizer only as the last resort! Go to Settings and adjust the Equalizer sliders to match the gain values'\r\n },\r\n {\r\n label: 'USB Audio Player PRO', type: 'parametric', config: 'USB_AUDIO_PLAYER_PRO',\r\n uiConfig: {\r\n bw: false, showDownload: false, showFsControl: true,\r\n filterNames: { LOW_SHELF: 'Low shelf', PEAKING: 'Analog bell', HIGH_SHELF: 'High shelf', PREAMP: 'Preamp' },\r\n columnNames: { fc: 'Frequency (Hz)', gain: 'Gain (dB)', q: 'Q factor' }\r\n },\r\n instructions: 'Configure frequency, gain and quality (Q) for each band manually in Toneboosters'\r\n },\r\n {\r\n label: 'Viper4Android',\r\n type: 'convolution',\r\n instructions: 'Download the file to \"/ViPER4Android/Kernel\" on your phone. Then select the file under \"Convolver\" in the app.'\r\n },\r\n {\r\n label: 'Voicemeeter', type: 'parametric', config: '4_PEAKING_WITH_SHELVES',\r\n uiConfig: {\r\n bw: false, showDownload: true, showFsControl: true,\r\n },\r\n instructions: 'Download the file and import it to Voicemeeter by opening the EQ window for a channel and right clicking the top bar and selecting \"Load EQ Settings\"',\r\n fileFormatter: (preamp, filters) => {\r\n const filterTypes = {\r\n 'LOW_SHELF': '5',\r\n 'PEAKING': '0',\r\n 'HIGH_SHELF': '6'\r\n };\r\n const lines = [\r\n '',\r\n '