Releases: JacobCoffee/loopbacker
v3.3.1
Full Changelog: v3.3.0...v3.3.1
v3.3.0
What's New
App Audio Capture
Pipe audio from any running app — browser tabs (YouTube, SoundCloud), Spotify, etc. — directly into Loopbacker's virtual device. Your Discord/Zoom call hears your music.
- Click + in Sources → scroll to App Audio → pick a running app
- Uses ScreenCaptureKit (requires one-time Screen Recording permission)
- Full effects chain support — run browser audio through EQ, reverb, etc.
- Shows "Not Running" badge when the target app is closed
Effects Fixes
Reverb actually works now — was silently attenuated by -54dB due to compounding gain errors (input gain 0.015 × comb normalization 0.125 = barely audible). Fixed input gain, comb scaling, and feedback range.
Pitch shift no longer static — rewrote with proper grain-phase-tracked overlap-add using Hann window crossfades. The old implementation hard-reset read heads to full-volume positions on every grain boundary, causing clicks every ~10ms.
Performance
- App audio capture runs at 1 FPS video / 2×2px to minimize WindowServer overhead (no mouse lag)
- 16K-frame ring buffer with jitter cushion for smooth app audio streaming
Full Changelog: v3.2.0...v3.3.0
v3.2.0
What's New
Default device restoration on quit
- On launch, Loopbacker remembers your current default input/output device
- On quit, if defaults are still set to Loopbacker, it restores them automatically — no more manually switching back in System Settings
Driver: input volume control
- Loopbacker now exposes an input-scoped volume control — the "Input volume" slider in System Settings works when Loopbacker is selected as the input device
- Volume and mute are now actually applied to audio samples (previously the slider was cosmetic only)
Driver: robustness
- Tolerant buffer sizing for control and object list queries — fixes "driver installed but virtual device not found" on some configurations
🤖 Generated with Claude Code
v3.1.0
What's Changed
Driver
- Reduced virtual devices from 8 to 2 — only "Loopbacker" and "Loopbacker 2" now appear in macOS audio device lists
Audio Routing
- Auto-restart routes when source device sample rate changes (fixes silent/quiet mic after sleep or when another app changes the device rate)
- Improved wake recovery: longer retry delays with more attempts for USB audio interfaces (e.g. MOTU M2)
Soundboard
- Resample all audio to 48kHz to match virtual device
- Fix audio converter pipeline and mono-to-stereo interleaving
- Better error logging for playback failures
UI
- Fix adaptive theme: light/dark toggle now works correctly
- Limit output routing to match 2-device driver
Full Changelog: v3.0.3...v3.1.0
v3.0.3
What's Changed
Soundboard
- Fix dual-output playback: separate read cursors for speaker + loopback units
- Resample all audio to 48kHz to match virtual device sample rate
- Fix AVAudioConverter data supply and mono-to-stereo interleaving
- Add speaker + virtual device dual output, meters, and file copy
UI
- Fix adaptive theme: light/dark toggle now works correctly
- Fix menu bar panel: force dark color scheme
Full Changelog: v3.0.2...v3.0.3
v3.0.2
Fixes
- Light/dark theme toggle now actually works — all colors update correctly
- Menu bar panel follows the app's theme setting
- Info.plist version updated to 3.0.1
🤖 Generated with Claude Code
v3.0.1
Fixes
- Menu bar dropdown panel now works (forced dark color scheme for MenuBarExtra context)
- Snake pipeline layout: row 2 flows right-to-left so cables connect naturally between rows
- Bypass visualization: solid cables through active blocks, dashed through bypassed — no more spaghetti arcs
- Pitch shift: reduced latency to ~10ms (512-sample grain), fixed direction (negative = lower)
- Reverb: fixed metallic/robotic sound (proper input scaling + lower feedback range)
- Chorus: increased center delay to 15ms, slower LFO for natural thickening
Added
- 8 fun factory presets: Chipmunk, Deep Voice, Robot, Telephone, Cathedral, Dreamy, Space Station, Radio Announcer
🤖 Generated with Claude Code
v3.0.0: Audio Effects Engine
What's New
Audio Effects Processing Engine
9-effect real-time DSP chain inspired by Audio Hijack / EasyEffects:
Voice Processing:
- Noise Gate — soft expander, configurable threshold/reduction
- 5-band Parametric EQ — draggable frequency response curve
- Compressor — linked stereo, ratio/threshold/makeup gain
- De-Esser — bandpass sidechain sibilance taming
Creative SFX:
- Chorus — modulated delay line with stereo LFO
- Pitch Shift — -12 to +12 semitones
- Reverb — Freeverb (8 combs + 4 allpasses)
- Delay — echo with feedback + soft-clip safety
- Limiter — brick-wall peak limiter (always last)
Pipeline UI
- Snaking grid layout with animated teal cable connections
- Bypass visualization: dashed cables route through disabled blocks
- Interactive draggable EQ frequency response curve
- Quick presets per effect (Soft Gate, Broadcast, Chipmunk, etc.)
12 Factory Presets
Broadcast Masculine Voice, Podcast Clean, Radio Announcer, Heavy Compression, Minimal, Chipmunk, Deep Voice, Robot, Telephone, Cathedral, Dreamy, Space Station
Preset Management
Save, load, import/export as shareable JSON files
Light/Dark Theme
Adaptive colors that follow system appearance, plus in-app toggle (Auto → Light → Dark)
Tabbed Interface
Routing and Effects on separate tabs with header switcher
All DSP is real-time safe — no allocations or locks in the audio callback path.
🤖 Generated with Claude Code
v2.7.2
What's New
- App icon -- Proper hi-res purple cable connector logo in Dock, Spotlight, and in-app header.
Full Changelog
v2.7.1
What's New
- App icon -- Loopbacker now uses the cable connector logo instead of the generic macOS app icon.