A system-wide equalizer for macOS — high-precision, driverless, with a huge preset library. Every app's audio (Spotify, Safari, Zoom, games, system sounds) flows through a real-time parametric EQ before it reaches your speakers.
Not a browser extension. Unlike Safari-only equalizers, Sonance EQ sits between the macOS audio mixer and your output device, so it shapes everything you hear.
M0 + M1 + M2 complete — a system-wide parametric EQ with an 8,850-headphone library, linear-phase & Mid-Side modes.
- ✅ Driverless system-audio capture via Core Audio process taps (macOS 14.4+) — no kernel extension, no installer, no reboot.
- ✅ Capture → DSP → re-inject loop (private aggregate device, real output as clock master, self-excluded to prevent feedback).
- ✅ Real-time
vDSP_biquadmEQ engine (up to 32 sections/channel) with a wait-free control→audio handoff and ramped coefficient updates — no zipper noise on live edits. - ✅ Parametric editor with a live response curve (drag bands for freq/gain, edit Q & type, add/remove up to 32 bands), preamp, bypass A/B, starter presets, live output-device rebuild.
- ✅ 8,850 AutoEq headphone corrections bundled (searchable browser) + JSON import/export.
- ✅ Linear-phase FIR mode (toggle) — same magnitude, zero phase distortion, ~21 ms latency; default off (minimum-phase IIR).
- ✅ Mid-Side mode — EQ the mono center and the stereo width with independent curves.
- 🔬 All DSP proven offline against the shipping sources:
Tools/verify_{biquad,fir,midside}.swift, plus a 1,030-case test suite (Tests/, Swift Testing) + pre-commit hook + CI. - 🚧 M3 (mocked pre-Apple-registration): Pro paywall + feature gating with a mock RevenueCat store (real buy/restore/persist UX, no Apple), per-app EQ (target specific apps via a mixdown tap), AI-generated app icon, Developer-ID notarize/DMG script. Pending registration: real RC keys + App Store Connect product, notarization run, MAS build.
📖 Using the app: see the User Manual.
For the roadmap see docs/BUILD-PLAN.md; for the fact-checked technical findings see docs/RESEARCH.md.
Requires macOS 14.4+ and Xcode 16+ (developed on macOS 26 / Xcode 26). The Xcode project is generated from project.yml with XcodeGen.
brew install xcodegen # one-time
xcodegen generate # regenerate SonanceEQ.xcodeproj from project.yml
open SonanceEQ.xcodeproj # then press ⌘R in XcodeFirst run:
- Press Start EQ.
- macOS will ask for permission to capture audio — Allow it.
- Play audio in any app. Drag bands on the response curve, click Headphones to load a correction for your gear, or pick a preset. Toggle Bypass to A/B against the unprocessed sound.
See the User Manual for a full walkthrough, and the Release Runbook for the signed-DMG / App Store automation.
The project file (
SonanceEQ.xcodeproj) is git-ignored — always regenerate it withxcodegen generate. Editproject.yml, never the.xcodeprojdirectly.
all apps → [global process tap, muted-when-tapped] → private aggregate device
→ IOProc (copy → EQ biquad cascade → out) → real output device → speakers
Original work, source-available but not open-source — see LICENSE. The compiled app is a
commercial product (one-time purchase); the source is published for transparency. No code, assets, or
branding copied from any other app. Bundled headphone corrections come from the MIT-licensed
AutoEq project with attribution; full third-party credits are
in THIRD-PARTY-NOTICES.md. See docs/RESEARCH.md §IP for the IP analysis.
