Lurar

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 macOS

Latest release Requires macOS 14.2 or later · Apple Silicon & Intel Signed & notarized

Lurar menu bar popover with engine on, preset selected, and output device set

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.

  1. Any app

    Music, Spotify, browser, conferencing — anything using Core Audio.

  2. Process Tap

    Apple's macOS 14.2 API. No driver, no extension, no orange mic indicator.

  3. 10-band EQ

    Float32 vDSP biquad cascade, plus crossfeed and loudness compensation.

  4. 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.

Preset library showing AutoEq catalog entries
EQ editor showing curve, bands, spectrum overlay, and clip meter

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.

A/B blind comparison view with trial counter

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.

Auto-detect banner suggesting a matching 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.

Crossfeed and loudness sliders

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.

Settings panel listing excluded apps

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.

Editor with bypass active

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.

Settings sync tab

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
PriceFreeFree / paid tierPaidSubscription
No virtual audio driverYesNoNoNo
System-wide captureYesYesYesYes
AutoEq catalogYesNoNoProprietary
A/B compare (sighted & blind)YesNoNoPartial
CrossfeedYesNoAdd-onNo
Loudness compensationYesNoNoNo
Per-device memoryYesNoNoYes
iCloud preset syncYesNoNoAccount

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

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.