Buildability report · Audio

Can eqMac be vibe coded?

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

Scope itScoped buildPartly, if you narrow it

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 focused project and works fine on your own machine. What you will not match in a focused implementation 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.

Jump to the build brief ↓
Buildability63/100

Legacy-calibrated assessment

Current price$3/mo

Checked Aug 2026

Current annual cost$36

What you pay today, before any DIY hosting

ConsequenceManageable

medium editorial confidence

Full report reviewNot dated

Tracked separately from the pricing check

The score by layer

Buildability by layer

Scoring method ↗
Interface59

Screens, forms, and focused interactions

Core workflow63

The repeatable job the product performs

Data access63

Availability and legality of required data

Operations55

Uptime, queues, support, and maintenance

Trust & safety45

Security, compliance, and user confidence

What an LLM can build

The achievable core

  • A SwiftUI menu bar app that captures system audio via a BlackHole virtual device, runs it through a multiband biquad EQ plus gain stage, and plays it back out to your chosen physical output with saveable presets.
  • Record, edit, and export tracks with effects applied in a predictable order.
  • A responsive interface with real empty, loading, success, and error states.
Where the clone breaks

The parts a prompt cannot buy

  • 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
  • The last 20 percent is sync, migration fidelity, speed, and edge cases.
  • Trust, audits, and counterparties matter more than feature parity.
Choose the sensible path

Build, switch, or keep paying

Build the focused core

Narrower, with trade-offs

A SwiftUI menu bar app that captures system audio via a BlackHole virtual device, runs it through a multiband biquad EQ plus gain stage, and plays it back out to your chosen physical output with saveable presets.

Use the build brief ↓
Use an existing alternative

No checked option yet

Compare the prior art below or build only the workflow you need.

Keep the service

$3/mo

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.

Visit eqMac
Defensibility

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.

execution polish

The last 20 percent is sync, migration fidelity, speed, and edge cases.

brand trust

Trust, audits, and counterparties matter more than feature parity.

Production build brief

The brief

Context, requirements, acceptance criteria, non-goals, and the full production standard — as Markdown, ready for any coding agent.

Raw URL ↗

Build brief — a focused alternative to eqMac

Verdict: Partly, if you narrow it · Buildability: 63/100 · Category: Audio

Source: https://www.canitbevibecoded.com/eqmac

Independent editorial assessment from Can It Be Vibe Coded? Not affiliated with, endorsed by, or derived from eqMac. Verify current pricing and capabilities before acting.

Context

eqMac — A menu bar equalizer, volume booster and audio router that sits on top of everything macOS plays. It currently costs $3/mo.

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 focused project and works fine on your own machine. What you will not match in a focused implementation 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.

This brief describes a focused, single-operator replacement for the part of eqMac that is genuinely reproducible. It is deliberately narrower than the product it replaces, and it says so in writing. Build the useful core; do not pretend to have rebuilt the rest.

What you are building

A SwiftUI menu bar app that captures system audio via a BlackHole virtual device, runs it through a multiband biquad EQ plus gain stage, and plays it back out to your chosen physical output with saveable presets.

Record, edit, and export tracks with effects applied in a predictable order.

A responsive interface with real empty, loading, success, and error states.

Requirements

Functional

MacOS with Xcode and a Swift toolchain.

BlackHole (or another virtual audio device) installed, e.g. via Homebrew.

Willingness to set your system output to the virtual device and let the app do the routing.

Microphone/audio permissions granted to the app.

Basic tolerance for a few ms of added latency.

Non-functional

Accessibility: semantic markup, labelled controls, visible focus, and reduced-motion support.

Security: server-side secrets, validated input, and no credentials in the client bundle.

Reliability: retries with backoff on external calls, and a clear failure state when a provider is down.

Portability: the operator can export their data and leave without losing it.

Implementation brief

Build a macOS menu bar system audio equalizer in Swift, targeting macOS 13+, as an Xcode-less Swift Package with a SwiftUI app target is not possible, so scaffold a normal Xcode project via xcodegen-style project.yml or a plain SwiftPM executable using AppKit + SwiftUI if simpler. Pick one and commit to it.

Architecture:

Assume a virtual audio device named "BlackHole 2ch" exists and is the current system output. Print clear setup instructions in the README, including the Homebrew install command, and fail with a readable error if the device is missing.

Use AVAudioEngine: input node reads from the BlackHole aggregate/input device, output node writes to a user-selected physical output device enumerated via Core Audio (AudioObjectGetPropertyData on kAudioHardwarePropertyDevices).

Insert a DSP chain between them: 10 band peaking EQ (31.25 Hz to 16 kHz, octave spaced) implemented as cascaded biquad peaking filters, plus a preamp gain stage with a soft clipper so boosting cannot produce digital clipping.

Implement biquads yourself in a small Biquad.swift (RBJ cookbook coefficients), processed per channel in an AVAudioUnit tap or via AVAudioSourceNode. No third party DSP libraries.

Handle sample rate: read the device's actual rate, recompute coefficients on change, and log rate mismatches instead of crashing.

UI:

Menu bar extra (NSStatusItem) with a SwiftUI popover: 10 vertical sliders in dB (-12 to +12), a preamp slider, a master bypass toggle, and an output device picker.

Named presets saved as JSON in ~/Library/Application Support/DIYEQ/presets.json. Ship Flat, Bass Boost, Vocal, Podcast.

Explicitly out of scope: writing our own Core Audio server plugin or driver, code signing and notarization, per-app volume, spatial audio, auto updates, telemetry, accounts, any network calls at all.

Deliver: working project, make run or an xcodebuild one-liner, and a README with the BlackHole setup steps, the known latency caveat, and how to restore normal audio if the app dies mid-session.

Delivery standard

Inspect the repository first, then write a short implementation plan before writing code.

Deliver the smallest complete end-to-end workflow first; every primary control must work against persisted data.

Use real validation and storage; never substitute fake dashboards, decorative controls, hard-coded success states, or mock integrations.

Include responsive layouts plus genuine empty, loading, success, validation, and failure states.

Keep secrets server-side in environment variables, provide .env.example, and never commit credentials or user data.

Add structured logs around every external call and return actionable errors without leaking sensitive details.

Write unit tests for the core logic and one automated test of the main user journey.

Finish with a README covering setup, architecture, data location, backups, tests, deployment, and known limitations.

Acceptance criteria

A clean install starts the app using only the README and .env.example.

The primary journey works from first visit through saved result, reload, edit, export, and deletion where applicable.

Invalid input, missing configuration, provider failure, and an empty database each have a usable state.

The interface works at 390px and 1440px, is keyboard navigable, and shows visible focus on every control.

Tests, type checking, linting, and a production build all pass with no ignored failures.

No part of the interface implies a live integration, security guarantee, or scale capability that was not actually built and verified.

Non-goals

Do not build these, and do not claim to have replaced them:

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.

What you still own after launch

Run migrations, backups, restores, and dependency updates.

Test the critical journey after every model, API, or hosting change.

Monitor failures and fix the edge cases a first prompt will miss.

Risk

Manageable. A personal version is realistic if you test the critical journey and keep reliable backups.

Editorial confidence in this assessment: medium. No reviewed project implementation is linked yet.


Generated by Can It Be Vibe Coded? · Full report: https://www.canitbevibecoded.com/eqmac

After the agent stops

You still own the product

  • Run migrations, backups, restores, and dependency updates.
  • Test the critical journey after every model, API, or hosting change.
  • Monitor failures and fix the edge cases a first prompt will miss.
Evidence, not screenshots

Projects built from this idea

No reviewed implementation has been linked for eqMac yet. A submission is evidence for review, not automatic proof that the whole product was replaced.

Built a version of eqMac?Submit the project as evidence for this report.

Submissions are private until reviewed. Approval adds a link; reproduced verification requires a separate acceptance check.

Practical questions

Before you start

Can eqMac be vibe coded?

Partly, if you narrow it. 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 focused project and works fine on your own machine. What you will not match in a focused implementation 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 can an AI coding agent reproduce from eqMac?

A SwiftUI menu bar app that captures system audio via a BlackHole virtual device, runs it through a multiband biquad EQ plus gain stage, and plays it back out to your chosen physical output with saveable presets. Record, edit, and export tracks with effects applied in a predictable order. A responsive interface with real empty, loading, success, and error states.

What will a DIY eqMac replacement still be missing?

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; The last 20 percent is sync, migration fidelity, speed, and edge cases.; Trust, audits, and counterparties matter more than feature parity.

What do I still own after building a eqMac alternative?

Run migrations, backups, restores, and dependency updates. Test the critical journey after every model, API, or hosting change. Monitor failures and fix the edge cases a first prompt will miss.