Skip to content

Add equalizer preset management and AutoEQ integration#835

Merged
dweymouth merged 12 commits intodweymouth:mainfrom
M0Rf30:feat/equalizer-improvements
Feb 9, 2026
Merged

Add equalizer preset management and AutoEQ integration#835
dweymouth merged 12 commits intodweymouth:mainfrom
M0Rf30:feat/equalizer-improvements

Conversation

@M0Rf30
Copy link
Copy Markdown
Contributor

@M0Rf30 M0Rf30 commented Jan 29, 2026

Implements issue #208 - users can now save, load, and delete custom equalizer presets.

Edit by @dweymouth - this will also implement #274 as well

Preset Management:

  • 12 built-in presets (Flat, Rock, Pop, Jazz, Classical, Bass Boost, Treble Boost, Vocal, Electronic,
    Acoustic, R&B, Loudness)
  • Save current settings as custom preset
  • Delete custom presets (built-ins protected)
  • Presets stored as JSON in ~/.config/supersonic/eq_presets/
  • Custom presets marked with asterisk in UI

AutoEQ Integration:

  • 8850+ scientifically-measured headphone profiles from AutoEQ database
  • Searchable profile browser
  • Automatic frequency interpolation (10-band → 15-band ISO equalizer)
  • LRU memory cache (20 profiles) + disk cache (7-day index, 30-day profiles)
  • Profile cleared on manual adjustment

UI:

  • Two-row layout for better spacing
  • Preset dropdown, Save, Delete, Reset buttons
  • AutoEQ button with profile label
  • Full i18n support, Italian translations complete
Schermata del 2026-02-01 18-49-10 Schermata del 2026-02-01 18-49-23 image

Refs:

@M0Rf30 M0Rf30 changed the title Feat/equalizer improvements Equalizer improvements with presets and Reset button Jan 29, 2026
@dweymouth dweymouth added this to the 0.21.0 milestone Jan 30, 2026
@M0Rf30 M0Rf30 force-pushed the feat/equalizer-improvements branch from b8caf54 to a9931b0 Compare January 31, 2026 19:42
@dweymouth
Copy link
Copy Markdown
Owner

What do you think about implementing saving and loading EQ presets to files in this PR? ie implement issue #208? My thought is that the presets can be bundled into the app but then saved as editable files when first loaded, and the user can save any customization to them (or create their own new ones)

@M0Rf30
Copy link
Copy Markdown
Contributor Author

M0Rf30 commented Feb 1, 2026

What do you think about implementing saving and loading EQ presets to files in this PR? ie implement issue #208? My thought is that the presets can be bundled into the app but then saved as editable files when first loaded, and the user can save any customization to them (or create their own new ones)

Great I proceed

@M0Rf30 M0Rf30 force-pushed the feat/equalizer-improvements branch from a9931b0 to 1139a05 Compare February 1, 2026 17:48
@M0Rf30 M0Rf30 changed the title Equalizer improvements with presets and Reset button Add equalizer preset management and AutoEQ integration Feb 1, 2026
@M0Rf30 M0Rf30 force-pushed the feat/equalizer-improvements branch 2 times, most recently from ef07262 to 7969f7f Compare February 3, 2026 21:29
@dweymouth
Copy link
Copy Markdown
Owner

dweymouth commented Feb 4, 2026

If all, or almost all, of the AutoEQ presets are for 10-band EQ, perhaps we should just build a 10-band EQ as well. The reason the equalizer is an interface, with an implementation called ISO15BandEqualizer, is that I always envisioned adding other types eventually, like ISO 10-band, and later, parametric. A preset file would then store which type of EQ is is intended for, along with the band gains and preamp.

Let me know if you're interested in implementing a 10-band EQ, or if you would like me to add it and then you can rebase this PR against that

UI idea: a dropdown select next to the "Enabled" check that switches between the type of EQ - 15 band or 10 band. Loading a preset automatically switches the eq type to the one specified in the preset

@M0Rf30 M0Rf30 force-pushed the feat/equalizer-improvements branch from 7969f7f to 42663ee Compare February 6, 2026 01:41
@M0Rf30
Copy link
Copy Markdown
Contributor Author

M0Rf30 commented Feb 6, 2026

If all, or almost all, of the AutoEQ presets are for 10-band EQ, perhaps we should just build a 10-band EQ as well. The reason the equalizer is an interface, with an implementation called ISO15BandEqualizer, is that I always envisioned adding other types eventually, like ISO 10-band, and later, parametric. A preset file would then store which type of EQ is is intended for, along with the band gains and preamp.

Let me know if you're interested in implementing a 10-band EQ, or if you would like me to add it and then you can rebase this PR against that

UI idea: a dropdown select next to the "Enabled" check that switches between the type of EQ - 15 band or 10 band. Loading a preset automatically switches the eq type to the one specified in the preset

Done

@M0Rf30 M0Rf30 force-pushed the feat/equalizer-improvements branch from 42663ee to 7e3b102 Compare February 6, 2026 01:51
Comment thread backend/eq_interpolate.go
@dweymouth
Copy link
Copy Markdown
Owner

What do you think about having both Save and Save As buttons in the EQ dialog? Save would only be enabled if A) a custom preset (ie file-backed) is currently loaded, AND B) the user has made unsaved changes to it. Save As would always be enabled and prompt to choose a new preset name. It can warn and ask for confirmation if you are about to overwrite an existing preset file.

I can add Save and Save As icons to the theme, so the buttons can be icon-only with tooltips for space savings.

@dweymouth dweymouth merged commit ead7364 into dweymouth:main Feb 9, 2026
7 checks passed
@dweymouth
Copy link
Copy Markdown
Owner

Thank you for this awesome contribution!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants