eqMac

A menu bar equalizer, volume booster and audio router that sits on top of everything macOS plays.

KINDA · partial replacement
price $3/mosubscription / year $36estimated build time a weekendreplaced by 0 people

The DSP is the easy part: a cascade of biquad filters driven by sliders is textbook, and an agent will write it correctly on the first try. The hard part is getting system audio into your process at all, which on macOS means a virtual output device and a Core Audio server plugin, signed and notarized, plus graceful handling of sample rate changes, device hotplug and headphone unplug. You can dodge most of that by installing BlackHole and building a loopback app that pulls from it and pushes to your real output, which is a genuine weekend project and works fine on your own machine. What you will not match in one sitting is the invisible-ness: no driver install prompts, no latency you can hear, no manual switching every time you plug in AirPods. Good build, mediocre replacement for something you want to forget exists.

Build verification: not recorded. How we judge buildability

What you give up

  • A first-party, notarized audio driver: you are borrowing someone else's virtual device instead
  • Automatic output-device following, so plugging in headphones means switching things by hand
  • Very low latency and rock-solid handling of sample rate mismatches and hotplug events
  • Extras like per-device presets, balance control, and a curated preset library
  • Updates, crash fixes, and someone else's problem when a macOS point release breaks audio

Why people still pay

System audio on macOS is hostile territory: Apple gives you no sanctioned tap on the output mix, so anything like this lives or dies on driver work, signing, notarization and years of edge cases with Bluetooth, multi-output devices and OS updates. A personal build that requires you to manually route through BlackHole is fine on a laptop you control, and annoying everywhere else. Paying is mostly paying for the audio path to never think about itself again.

Your build guide

The stack, security requirements, and agent rules for a focused replacement.

Before you start

  • A Mac with Xcode, an installed supported BlackHole virtual audio device, a physical output and any required audio-capture permissions. Document manual routing, compatible sample rates, a safe bypass/restore path and the added latency; the app does not ship its own driver.
  • Implementation components: Swift/SwiftUI with an AppKit menu-bar interface and Core Audio device discovery. An explicitly installed BlackHole virtual device supplies the selected input; use a documented Core Audio/AVAudioEngine route and Audio Unit EQ/gain stages to the selected physical output. Codable preset and device-choice settings only; no audio recordings or captured-content history.
  • Scope boundary: A bundled driver, universal low latency and seamless OS-version compatibility are not promised.
01
Swift/SwiftUI with an AppKit menu-bar interface and Core Audio device discovery.
02
An explicitly installed BlackHole virtual device supplies the selected input; use a documented Core Audio/AVAudioEngine route and Audio Unit EQ/gain stages to the selected physical output.
03
Codable preset and device-choice settings only; no audio recordings or captured-content history.
04
Domain model: audio device IDs, sample-rate configurations, EQ bands, gain stages, bypass state and presets
engineering roadmap

Implementation plan

1

Phase 1

Scope and fixtures. Implement this bounded workflow: Route audio through an explicitly installed virtual device, apply a bounded EQ/gain chain and offer immediate bypass to the physical output. Add a spectrum view only after stable processing and device switching. Record prerequisites, select representative user-owned fixtures and document the unsupported features: A bundled driver, universal low latency and seamless OS-version compatibility are not promised.

2

Phase 2

Configure routing and preset state. Model device identifiers, sample-rate compatibility, band/gain values and bypass state. Persist only bounded presets and selected-device preferences; audio buffers remain ephemeral. Do not create a recorded-audio database or reimplement a virtual driver.

3

Phase 3

Complete the first useful path. Implement the workflow's input, review and output interface, with clear controls and explicit empty/error states. Preflight device availability and sample-rate compatibility, keep real-time callbacks allocation-free/nonblocking and ramp gain changes. On device loss, stop the processing route and offer the documented physical-output restore path rather than generating silence without explanation.

4

Phase 4

Permissions and integration failure. Request capture permissions explicitly, show the selected input/output and reject a route that feeds its output back into its input. Bound gain, use a safe limiter/bypass strategy and keep audio ephemeral without recording or telemetry. Request integration credentials and permissions only for the enabled feature; show a disconnected state instead of mock results.

5

Phase 5

Portable handoff. Export/import EQ presets and device preferences only. Retain a known-safe bypass setting and document how to restore the OS output device independently if the app crashes; do not save or export captured audio. Include setup, operating limits, fixture walkthrough and shutdown/restart instructions in the README.

6

Phase 6

Acceptance scenarios. Unplug the chosen output and display recovery controls; switching presets ramps gain without an abrupt spike and bypass restores the original signal. Repeat the workflow after restart and with a denied permission or unavailable dependency; show recoverable failure rather than a success placeholder.

the pro prompt
download AGENTS.md
WORKING SLICE
Route audio through an explicitly installed virtual device, apply a bounded EQ/gain chain and offer immediate bypass to the physical output. Add a spectrum view only after stable processing and device switching.

Build this scoped eqMac-inspired workflow with a documented data model and visible failure states.

Architecture
- Swift/SwiftUI with an AppKit menu-bar interface and Core Audio device discovery.
- An explicitly installed BlackHole virtual device supplies the selected input; use a documented Core Audio/AVAudioEngine route and Audio Unit EQ/gain stages to the selected physical output.
- Codable preset and device-choice settings only; no audio recordings or captured-content history.

Prerequisites and limits
A Mac with Xcode, an installed supported BlackHole virtual audio device, a physical output and any required audio-capture permissions. Document manual routing, compatible sample rates, a safe bypass/restore path and the added latency; the app does not ship its own driver.
Outside this release: A bundled driver, universal low latency and seamless OS-version compatibility are not promised.

Data model and correctness
audio device IDs, sample-rate configurations, EQ bands, gain stages, bypass state and presets
Invariant: The audio callback cannot allocate or block; feedback loops are rejected and device loss restores a safe audible route when possible.
Preflight device availability and sample-rate compatibility, keep real-time callbacks allocation-free/nonblocking and ramp gain changes. On device loss, stop the processing route and offer the documented physical-output restore path rather than generating silence without explanation.

Security and privacy
Request capture permissions explicitly, show the selected input/output and reject a route that feeds its output back into its input. Bound gain, use a safe limiter/bypass strategy and keep audio ephemeral without recording or telemetry.

Recovery and export
Export/import EQ presets and device preferences only. Retain a known-safe bypass setting and document how to restore the OS output device independently if the app crashes; do not save or export captured audio.

Implementation order
1. Phase 1 — Scope and fixtures. Implement this bounded workflow: Route audio through an explicitly installed virtual device, apply a bounded EQ/gain chain and offer immediate bypass to the physical output. Add a spectrum view only after stable processing and device switching. Record prerequisites, select representative user-owned fixtures and document the unsupported features: A bundled driver, universal low latency and seamless OS-version compatibility are not promised.
2. Phase 2 — Configure routing and preset state. Model device identifiers, sample-rate compatibility, band/gain values and bypass state. Persist only bounded presets and selected-device preferences; audio buffers remain ephemeral. Do not create a recorded-audio database or reimplement a virtual driver.
3. Phase 3 — Complete the first useful path. Implement the workflow's input, review and output interface, with clear controls and explicit empty/error states. Preflight device availability and sample-rate compatibility, keep real-time callbacks allocation-free/nonblocking and ramp gain changes. On device loss, stop the processing route and offer the documented physical-output restore path rather than generating silence without explanation.
4. Phase 4 — Permissions and integration failure. Request capture permissions explicitly, show the selected input/output and reject a route that feeds its output back into its input. Bound gain, use a safe limiter/bypass strategy and keep audio ephemeral without recording or telemetry. Request integration credentials and permissions only for the enabled feature; show a disconnected state instead of mock results.
5. Phase 5 — Portable handoff. Export/import EQ presets and device preferences only. Retain a known-safe bypass setting and document how to restore the OS output device independently if the app crashes; do not save or export captured audio. Include setup, operating limits, fixture walkthrough and shutdown/restart instructions in the README.
6. Phase 6 — Acceptance scenarios. Unplug the chosen output and display recovery controls; switching presets ramps gain without an abrupt spike and bypass restores the original signal. Repeat the workflow after restart and with a denied permission or unavailable dependency; show recoverable failure rather than a success placeholder.

Acceptance
Unplug the chosen output and display recovery controls; switching presets ramps gain without an abrupt spike and bypass restores the original signal.
Use real source data or clearly labeled fixtures. Explain unsupported input and provider failures; do not fabricate analytics, delivery receipts, accuracy claims or security guarantees.

Optional agent guidance
Optional external skill: [swiftui-expert-skill](https://github.com/AvdLee/SwiftUI-Agent-Skill/blob/main/skills/swiftui-expert-skill/SKILL.md) — Build and review native SwiftUI views, state management, navigation, accessibility and rendering performance. Review its instructions and compatibility before use; it does not grant deployment, data-access or publication permission.
Optional external skill: [swift-concurrency](https://github.com/AvdLee/Swift-Concurrency-Agent-Skill/blob/main/skills/swift-concurrency/SKILL.md) — Design Swift async tasks, actors, isolation, cancellation and safe data sharing, including Swift 6 migration. Review its instructions and compatibility before use; it does not grant deployment, data-access or publication permission.
Optional external skill: [sharp-edges](https://github.com/trailofbits/skills/blob/main/plugins/sharp-edges/skills/sharp-edges/SKILL.md) — Review security-sensitive APIs and configuration for dangerous defaults and easy-to-misuse interfaces. Review its instructions and compatibility before use; it does not grant deployment, data-access or publication permission.
Project rule — data model: audio device IDs, sample-rate configurations, EQ bands, gain stages, bypass state and presets
Project rule — preserve this invariant: The audio callback cannot allocate or block; feedback loops are rejected and device loss restores a safe audible route when possible.
Project rule — acceptance evidence: Unplug the chosen output and display recovery controls; switching presets ramps gain without an abrupt spike and bypass restores the original signal.

$ open in your agent (prompt prefilled, you press enter), copy the prompt or copy or download AGENTS.md

prior art · use these instead of building, if you'd rather

No prior-art project is listed yet. Compare the scoped build with the paid product before choosing.

share on X ↗

Questions about eqMac

Can you build your own eqMac with AI?

Partly. The DSP is the easy part: a cascade of biquad filters driven by sliders is textbook, and an agent will write it correctly on the first try. The hard part is getting system audio into your process at all, which on macOS means a virtual output device and a Core Audio server plugin, signed and notarized, plus graceful handling of sample rate changes, device hotplug and headphone unplug. You can dodge most of that by installing BlackHole and building a loopback app that pulls from it and pushes to your real output, which is a genuine weekend project and works fine on your own machine. What you will not match in one sitting is the invisible-ness: no driver install prompts, no latency you can hear, no manual switching every time you plug in AirPods. Good build, mediocre replacement for something you want to forget exists.

What does the eqMac build prompt cover?

The prompt starts with this scope: Route audio through an explicitly installed virtual device, apply a bounded EQ/gain chain and offer immediate bypass to the physical output. Add a spectrum view only after stable processing and device switching. Full-product capabilities excluded from the comparison include: A first-party, notarized audio driver: you are borrowing someone else's virtual device instead; Automatic output-device following, so plugging in headphones means switching things by hand; Very low latency and rock-solid handling of sample rate mismatches and hotplug events. Follow the implementation plan and its prerequisites before expanding the build.

How do I use the prompt, AGENTS.md and agent skills?

Start with the eqMac prerequisites and stack, then copy the prompt into your coding agent. Save the project rules as AGENTS.md in the project root. Linked skills are optional packages or source instructions for specific tasks; review their current contents and install only those matching the chosen stack. A skill does not supply API credentials or verify the finished app.

How long will this eqMac project take?

The catalogue estimate is a weekend for the limited scope. Setup, integration approvals, debugging, deployment and ongoing maintenance can add time. This is an estimate, not a delivery guarantee.

What would I give up by replacing eqMac?

A first-party, notarized audio driver: you are borrowing someone else's virtual device instead; Automatic output-device following, so plugging in headphones means switching things by hand; Very low latency and rock-solid handling of sample rate mismatches and hotplug events; Extras like per-device presets, balance control, and a curated preset library; Updates, crash fixes, and someone else's problem when a macOS point release breaks audio. System audio on macOS is hostile territory: Apple gives you no sanctioned tap on the output mix, so anything like this lives or dies on driver work, signing, notarization and years of edge cases with Bluetooth, multi-output devices and OS updates. A personal build that requires you to manually route through BlackHole is fine on a laptop you control, and annoying everywhere else. Paying is mostly paying for the audio path to never think about itself again.

What price is this guide comparing against?

The recorded Pro Subscription plan is $3/mo (monthly subscription), checked 2026-08-18. Check the linked pricing source before buying. Building your own also has hosting, API and maintenance costs; the recorded amount is not a guaranteed saving.

What can I use instead of building eqMac?

No alternative is listed in this entry yet. That is a gap in this catalogue, not proof that no suitable product exists. Compare the paid product and the proposed scope before committing to a build.

Every week, more subscriptions die.

New verdicts, new prompts, the week's most-doomed apps.
One email. Unsubscribe in one click.

last week:100 Questions · KINDA1of10 · KINDA1Password · KINDA+1090 more

free forever · no scanner spam · the prompt stays on the site, the deaths come to you

$weekly: what got a verdict, what died.