How it works

Radioform is a system-wide equalizer for macOS. It sits between your apps and your speakers and lets you adjust how everything sounds. Spotify, Soundcloud, FaceTime, games. If your Mac is playing it, Radioform can shape it.

It runs from your menu bar. You pick a preset or tweak the sliders yourself, and then you mostly just leave it alone. That's kind of the whole point.

What you can do

EQ everything at once

10 fully parametric bands from 20 Hz to 20 kHz. Boost low end, pull back harsh highs, or add warmth. It applies to all audio on your Mac, so you don’t configure anything per app.

Presets if you don’t want to think about it

Presets for Electronic, Acoustic, Classical, Hip-Hop, Pop, R&B, Rock, plus a Flat baseline.

They’re solid starting points. Save your own curves for specific headphones or speakers.

Switch devices without restarting

AirPods, desk speakers, living room setup. Radioform follows your output device and keeps your EQ applied.

Built-in limiter

If you push the EQ hard, the limiter and preamp guard help prevent clipping. You can be aggressive without worrying about distortion.

Under the hood

Radioform installs a virtual audio device on your Mac. All system sound passes through it, gets processed by the EQ engine, and continues to your actual speakers or headphones.

It adds zero latency. The audio is processed sample-by-sample with no intermediate buffering, so you won't notice it's there. Except that things sound better.

Performance

Under 1% CPU usage. Zero added latency. 10 fully parametric bands from 20 Hz to 20 kHz.

Built with

The audio engine is C++. The app is native Swift and SwiftUI, not Electron or a web wrapper. It plugs directly into macOS CoreAudio, so it feels like something that should have shipped with the OS.

Compatibility

macOS 13.0 Ventura or later.

Runs natively on Apple Silicon and Intel. Releases are signed for distribution and can be notarized. In-app update checks are handled by Sparkle and can be disabled.

Open source under GPLv3. Free, no subscriptions, no data collection. It's just an EQ.

GitHub