Every speaker,
playing as one
Send your Mac's sound to any mix of outputs.
Split the bass to a subwoofer, keep it all in sync
Free beta v1.0.0 — 0.3 MB

Split the spectrum, live
A real-time analyzer of what's playing. Drag the divider — everything below it goes to the sub, everything above stays on your mains

Every output, in sync
One click plays a test pulse through each speaker, measures its latency, and delays the fast ones to match

Compose your outputs
Pick which devices play and what each one carries — full range, highs only, or lows only

Native by design
Built on the macOS process-tap API — 0.3 MB, offline, and your default output stays exactly as it is
FAQ
macOS 14.4 shipped a native Core Audio process-tap API. MacPulse takes a passive copy of the system mix, filters it, and renders it to the outputs you choose. No virtual devices, no BlackHole, no kernel extensions — and your normal output keeps playing exactly as before.
That permission is the process tap — it's how macOS lets an app read the audio the system is playing. MacPulse filters the copy and hands it straight to your speakers. Nothing is recorded, stored, or sent anywhere.
Any local output — the 3.5 mm jack, USB, or display audio. Set its range to Lows, drag the crossover to taste, and it plays only the bass while your mains carry the rest.
Different devices have different latencies, so MacPulse can measure them: Auto-align plays a short test pulse through each speaker, listens through your Mac's microphone, and delays the faster outputs to match the slowest one. You can hand-tune the delay per output afterwards.
No. Your default output device stays whatever it is — MacPulse never switches it. The app lives in the menu bar, starts with your Mac if you want, and stopping the engine returns everything to stock instantly.
Yes. Everything it does today is free. If it earns a place in your menu bar, there's a coffee button.
macOS 14.4 (Sonoma) or later — the process-tap API MacPulse is built on first shipped there. Apple Silicon and Intel both work.