Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

In2Speakers

Low-latency native macOS utility that routes live audio from any input device to any output device.

No recording. No effects. No DAW. Just a Core Audio patch cable with a tiny UI.

In2Speakers window

Guitar / mic / interface
         ↓
   ┌─────────────┐
   │ In2Speakers │  input → output
   └─────────────┘
         ↓
   Speakers / headphones / HDMI

Why

macOS won’t freely route an arbitrary USB audio interface into the built-in speakers without extra plumbing. In2Speakers is that plumbing — useful when your amp/FX already live on the hardware and you only need to monitor.

Example: a Valeton GP-200 (or any USB interface) into MacBook speakers while practicing.

Requirements

  • macOS 15+
  • Apple Silicon or Intel
  • Microphone / audio input permission (for USB interfaces and mics)

Features

  • Pick any Core Audio input and output
  • Buffer sizes: 32 → 1024 samples (default 128)
  • Channel modes: stereo 1/2, mono left/right/sum
  • Software volume (−∞ … +6 dB) and input level meter
  • Device hot-plug detection with optional auto-resume
  • Feedback warning when input and output are the same device
  • Remembers last devices, buffer, channel mode, and volume

Run

Open in2speakers.xcodeproj in Xcode and run the in2speakers scheme, or:

export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
# or Xcode-beta.app if that’s what you use

xcodebuild \
  -project in2speakers.xcodeproj \
  -scheme in2speakers \
  -configuration Debug \
  -destination 'platform=macOS' \
  build

open ~/Library/Developer/Xcode/DerivedData/in2speakers-*/Build/Products/Debug/in2speakers.app

On first launch, allow microphone access so Core Audio can open input devices.

Architecture

SwiftUI
   ↓
AudioRouter (protocol)
   ↓
CoreAudioRouter
   ├── Input HAL AudioUnit
   ├── Lock-free ring buffer
   └── Output HAL AudioUnit

UI never talks to Core Audio directly. Real-time callbacks stay allocation-free aside from the ring buffer copy path; metering is polled on the main thread (~30 FPS).

in2speakers/
├── App/           entry point
├── Audio/         devices, ring buffer, Core Audio router
├── Services/      preferences, permissions, controller
└── UI/            SwiftUI shell

What this is not

  • Not a recorder
  • Not an amp / FX / plugin host
  • Not a mixer or DAW
  • Not Electron / Tauri / WebAudio

If your multi-FX unit already does the tone, keep it that way. In2Speakers only moves PCM from A → B.

Disclaimer

Provided as is, without warranty of any kind — express or implied — including but not limited to merchantability, fitness for a particular purpose, and noninfringement.

Use at your own risk. The authors and Codse accept no liability for hearing damage, feedback loops, dropped audio, device conflicts, data loss, or any other damage arising from use of this software. Mind your levels; same-device input/output can howl.

License

MIT © Codse — see LICENSE for the full terms.

About

Low-latency macOS utility that routes live audio from any input to any output

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages