Klaar #
Klaar ("clear" in Estonian) is a real-time microphone processing app for macOS. It runs your mic through a fixed chain — noise gate → 8-band parametric EQ → de-esser → compressor → limiter — and exposes the processed signal as a virtual microphone that any communication app (Zoom, Teams, Discord, FaceTime, Slack, Google Meet, …) can select as its input. It also adds a global mute keyboard schortcut, so you don't have to remember the various shortcuts different apps use.
It ships with its own CoreAudio HAL driver and runs from the menu bar.

Why #
I have a decent mic and audio interface, but wanted an easy way to process my microphone signal for online calls. I could purchase something like a dbx 286s and that would work great. Or I could run that processing digitally. The latter is possible via e.g. running VSTs inside a DAW or OBS and using preexisting loopback solutions to route the audio to your conference app. But I wanted something simpler and lightweight.
If you are using the AirPods mic or something similar, Klaar's utility would probably be minimal. If you have a somewhat decent mic you can get close to, Klaar can help provide that final polish.
LLM Disclaimer #
Heavy use of Claude Code with Opus models assisted the development of this product.
Install #
Download the latest DMG from the
Releases page,
drag Klaar.app to /Applications, and launch it. Klaar walks you
through installing the driver behind a single admin prompt; a reboot is
required to finish loading the driver into coreaudiod.
First launch is blocked by Gatekeeper because Klaar is ad-hoc signed —
see docs/installation.md for the override
steps and uninstall instructions.
Tips on "sounding good" #
- Syntax episode "How to Look and Sound Good at $10, $100 and $1000 With Producer Randy"
- "Make Your Voice Sound Better - Vocal EQ Zones" by In The Mix on YouTube
- Dan Worrall's YouTube video on his voice over chain
Build #
Requirements:
- macOS 13+ on Apple Silicon or Intel
- Rust (stable, via rustup)
- pnpm and Node 20+
- Xcode Command Line Tools
pnpm install
pnpm build:release # host arch
pnpm build:release:universal # fat x86_64+arm64
build:release chains the driver build, ad-hoc signing, the Tauri bundle,
and a verification pass (codesign, Mach-O slice type, architecture
coverage) — use it for any artifact that leaves your machine. The output
DMG lands in src-tauri/target/release/bundle/dmg/.
Develop #
pnpm install
pnpm dev:app
dev:app rebuilds the driver crate, ad-hoc signs and stages the bundle
(Tauri doesn't copy resources during tauri dev), then launches
pnpm tauri dev. Re-run it whenever the driver changes; for
frontend-only iteration, plain pnpm tauri dev is enough. Once the app
is running, use the install_driver IPC command to register the driver
with coreaudiod.
Full operational notes — driver pipeline, code signing, version-bump
policy, listener architecture, DMG packaging — live in
docs/developing.md.
Test #
cargo test # Rust DSP, engine, IPC commands
pnpm test # Frontend (Vitest)
cargo clippy # Rust lints
pnpm lint # Frontend lints
pnpm typecheck # TypeScript type-check
For long-running soak tests (memory stability, xruns, CPU profiling) see
docs/performance-testing.md.
License #
MIT