Headphone EQ for macOS,
without the driver.
Lurar taps every app's audio via Apple's Core Audio Process Tap, runs it through a 10-band parametric EQ, and plays the result on your DAC. No virtual audio device. No kernel extension. No subscription.
Download for macOSLatest release Requires macOS 14.2 or later · Apple Silicon & Intel Signed & notarized
How it works
Lurar doesn't install a virtual audio device, doesn't load a kernel extension, and doesn't replace your output. macOS routes the audio through Apple's own Process Tap API — Lurar reads it, EQs it, and sends it on to whichever DAC you've chosen.
-
Any app
Music, Spotify, browser, conferencing — anything using Core Audio.
-
Process Tap
Apple's macOS 14.2 API. No driver, no extension, no orange mic indicator.
-
10-band EQ
Float32 vDSP biquad cascade, plus crossfeed and loudness compensation.
-
Your DAC
Played out via HAL Audio Unit — no resampling unless your device requires it.
Everything that's in the menu bar
Per-headphone presets, from the AutoEq catalog
Browse the whole AutoEq library — Oratory1990 over-ears, Crinacle IEMs, in-app search by brand. Enable a few for your headphones and they're one click away from the menu bar. Fork any catalog preset to tweak, with the original kept on screen as a dashed reference curve.
An editor for when you want to tune it yourself
Ten bands — low shelf, eight peaks, high shelf — with live preview, a post-EQ spectrum analyzer, and a sticky clip meter. Edits apply to the running engine instantly. Edits to a built-in preset silently fork into your library; the original stays one click away.
A/B compare, sighted or blind
Switch between two presets without leaving the editor. Blind mode masks which is which and records your votes; broadband RMS loudness-matches both so a louder curve can't win on volume alone.
Per-device memory & auto-suggest
Lurar remembers the last preset per output device — switch DACs and the right curve loads. First time you plug in headphones it knows, it offers to enable the matching AutoEq preset.
Crossfeed & loudness
Bauer-style crossfeed with adjustable intensity and head-shadow cutoff for binaural-friendly imaging. An ISO 226:2003 equal-loudness curve compensates for low-volume listening — the Fletcher-Munson smile, dialed in to a phon offset, not guessed at.
Per-app exclusion
Some apps manage their own EQ — exclude them by bundle ID and their audio bypasses Lurar entirely. Updated live; no engine restart needed.
Hold-to-bypass hotkey
⌥B momentarily flattens the EQ so you can hear what your headphones sound like uncorrected. Release to snap back. Implemented as an A/B slot swap, so transitions are click-free.
iCloud preset sync
Flip a switch in Settings and your preset library follows you to every Mac you sign into. Lurar watches the file, debounces echo writes, and reloads cleanly on save.
How it compares
Lurar's niche is corrective headphone EQ. Here's how it stacks up against the apps people usually look at first.
| Capability | Lurar | eqMac | SoundSource | SoundID Reference |
|---|---|---|---|---|
| Price | Free | Free / paid tier | Paid | Subscription |
| No virtual audio driver | Yes | No | No | No |
| System-wide capture | Yes | Yes | Yes | Yes |
| AutoEq catalog | Yes | No | No | Proprietary |
| A/B compare (sighted & blind) | Yes | No | No | Partial |
| Crossfeed | Yes | No | Add-on | No |
| Loudness compensation | Yes | No | No | No |
| Per-device memory | Yes | No | No | Yes |
| iCloud preset sync | Yes | No | No | Account |
Capability matrix as of writing — competitors change their plans often. We'll keep this honest; if anything's wrong, open an issue.
What it touches on your Mac
- One network destination: AutoEq's GitHub raw URL, and only when you browse the catalog or refresh it. Lurar itself phones nothing home — no analytics, no telemetry, no accounts.
- Audio Capture (TCC) permission, granted once. Lurar reads the system mixer via the Process Tap API — it does not light up the orange mic indicator, because the tap isn't a HAL input AU.
-
Three local locations:
~/Library/Application Support/Lurarfor presets and the AutoEq cache,~/Library/Preferences/app.lurar.Lurar.plistfor settings, and the system-managed TCC grant. Each is independently resettable — recipes in the README.
FAQ
Does Lurar raise the orange microphone indicator?
No. Lurar reads tap samples via an AudioDeviceIOProc on
a private aggregate device — not via a HAL input AU — so the
orange indicator stays off. The device.audio-input
entitlement is required by Core Audio to deliver tap data once
TCC is granted, but the indicator is gated on a different API
path.
What about hi-res music players that use exclusive mode?
Apps that use HAL hog mode bypass Core Audio's mixer entirely and can't be tapped — by anyone. Switch the app out of exclusive mode if you want Lurar to EQ it. This isn't a Lurar limit; it's how exclusive mode is supposed to work.
Will the next macOS update break it?
Lurar uses Apple's own Process Tap API (added in macOS 14.2). There is no third-party driver, no kernel extension, no system audio device that an OS update can invalidate. If Apple ever changes the API, Lurar gets updated; you don't have to uninstall anything.
Is the audio path lossless?
Yes. Float32 internally, no sample-rate conversion unless your output device requires it (most don't). Crossfeed and loudness are structurally bypassed at zero settings — not just numerically flat, but skipped entirely.
Why not AVAudioEngine?
Direct HAL Audio Unit means lower latency, no involuntary AGC, and no opaque mixer behavior between us and the DAC. Lurar is the last DSP stage before your hardware.
What conflicts with Lurar?
Other tap-based or HAL-intercepting tools — most commonly Rogue
Amoeba's ARK driver (SoundSource, Audio Hijack, Loopback) — can
intercept tap data before Lurar sees it. If the EQ path is silent
and ARK is loaded, quit the offending app and run
launchctl bootout gui/$(id -u)/com.rogueamoeba.arkaudiod.