Majiks DSP
Free system-wide speaker DSP for macOS — per-output EQ, crossovers, time alignment and multi-device routing, agent-native.
Mixer, live with music playing
Parametric EQ
Crossovers
Time alignment
Hardware: one output per bus
Web console, in your browser
Click any screenshot to see it full size. Captured live from v0.1.3 while “On the Beat” by Majiks Studio plays.
Every speaker you own, playing together
You have a Mac and more than one thing to play it through: studio monitors on a USB DAC, a powered sub on an adapter, a pair of panels on another. Majiks DSP takes whatever is playing, from any app, and sends it to all of them at once, each with its own EQ, crossover, gain and delay. Save the setup as a profile, and the keyboard volume keys keep working.
It lives in the menu bar and opens a console: Mixer, EQ, Crossover, Timing and Hardware. Everything it does is also an HTTP endpoint on your Mac, with a CLI and an MCP server, so an agent can build the setup and you can take the faders.
How it splits your audio
One source goes in. Each speaker pair gets its own bus, and each bus goes out its own output. No virtual audio driver, no aggregate device to build by hand.
One DAC per speaker pair
Plug in a USB DAC for each pair, even cheap USB-C headphone dongles. Each one becomes its own bus with its own EQ, crossover, gain and delay. Identical dongles are told apart by serial.
Pairs on one interface
A multichannel interface works too. Point each bus at a different pair of its outputs, such as 1–2 for the mains and 3–4 for the sub.
Stereo, mono or one side
Each bus sends stereo, a mono sum (left plus right, −3 dB) for a sub, or the left or right channel alone for a single speaker.
The desk in the screenshots
Everything your Mac plays → Majiks DSP → three buses, three outputs.
Mains
Yamaha NX-N500 over USB
High-pass 70 Hz · stereo · 8.7 ms delay
Sub
USB-C dongle into a Polk sub
Low-pass 80 Hz · mono sum · polarity flipped
Panels
Second USB-C dongle into an amp
High-pass 250 Hz · stereo · 12.0 ms delay
What's inside
Captures Everything Your Mac Plays
A Core Audio process tap grabs system audio from any app — Spotify, YouTube, your DAW — and hands it to the DSP. No virtual audio driver to install.
One Source, Many Outputs
Each physical output device gets its own bus with its own DSP chain and ring buffer. Mains on a USB DAC, a sub on an interface, panels on a dongle — all fed at once. Buses re-find their devices by ID and rebuild themselves when USB gear comes and goes.
Parametric EQ + FIR
Per-bus parametric EQ with a live response curve, presets, scroll-wheel Q, and a pre-EQ spectrum overlay. Import impulse responses for FIR convolution.
Crossovers
High-pass or low-pass per bus at 12, 24 or 48 dB/oct with exact frequency entry. Mono-sum a sub bus, or send stereo, from the same capture.
Time Alignment + Polarity
Per-bus delay in milliseconds, shown as distance in metric or imperial, plus polarity invert — so a sub and mains meet at the listening position.
Mixer With Real Meters
A mixer window with a fader, peak meter, mute and solo per bus, a sticky master, panic mute, and hold, clip and decay ballistics you can tune.
Profiles Per Room
Save the whole routing, EQ and gain picture as a named profile — one per desk, room or setup — and switch between them. EQ A/B compare built in.
Keyboard Volume Keys
While processing runs, the Mac's volume keys drive the DSP master instead of a single device. Needs the Accessibility permission the app asks for.
Measurement Tools (Early)
Measure every bus with sweeps from a chosen microphone, with signal-to-noise gating, then let it propose cut-only gain and EQ corrections onto a copy of your profile to keep or discard. Early: bring a calibrated mic.
Rust DSP Engine
The DSP core is a Rust library behind a C ABI — one instance per bus, real-time safe, zero allocations in any IO callback, lock-free ring buffers between capture and output.
Agent-Native (API, CLI, MCP)
Every control is also an HTTP endpoint on localhost — 27 of them — with a CLI wrapper and a 33-tool MCP server. An agent can build and tune a whole speaker setup.
Look-Ahead Limiter
A per-bus look-ahead limiter (1.5 ms, default −0.1 dBFS) is the output ceiling, so a hot signal is caught before it clips. The plain hard-clip ceiling remains an option per bus.
Each speaker bus now sets its output device's own macOS volume to full and unmutes it when processing starts, so a USB-C dongle left low can no longer quietly starve a speaker. The menu bar Mixer button now opens the console.
Download v0.1.3 — Free
Universal DMG, signed with a Developer ID and notarized by Apple. Drag the app to Applications. On first start macOS asks for System Audio Recording; keyboard volume keys additionally need Accessibility. Released 2026-11-05.
What this early release is not yet
- The limiter protects the digital output, not your drivers. It is not a calibrated speaker-power limiter; set the physical amp levels sensibly.
- Proposed corrections are cut-only and have not been validated acoustically yet; treat them as a starting point and listen.
- No MIDI or macropad mappings yet; control is the mixer, the API, the CLI and MCP.
- Keyboard volume keys need the Accessibility permission and only act while processing is running.
System Requirements
| Component | Requirement |
|---|---|
| macOS | 14.2 (Sonoma) or later — needed for the Core Audio process tap |
| Processor | Apple Silicon or Intel (universal binary) |
| Permissions | System Audio Recording (asked on first start); Accessibility for keyboard volume keys (optional) |
| Audio | Any Core Audio output devices — USB DACs, interfaces, built-in, aggregate |