Overview
TCP Streamer on macOS uses CoreAudio for high-quality, low-latency audio capture. While macOS doesn’t include native loopback support, virtual audio devices like BlackHole make system audio capture straightforward and efficient.Installation
Download & Install
Download the .dmg file
Download the latest macOS installer from the Releases Page.Available for:
- Apple Silicon (M1, M2, M3, M4)
- Intel processors
Mount and install
- Double-click the
.dmgfile to mount it - Drag TCP Streamer.app to your Applications folder
- Eject the disk image
First launch
Open TCP Streamer from Applications or Spotlight (Cmd + Space).If you see a security warning, see Permission Issues below.
System Requirements
- OS: macOS 10.15 (Catalina) or later
- RAM: 100 MB minimum
- Architecture: Intel or Apple Silicon
- Audio: CoreAudio-compatible device
- Network: Stable connection to TCP server
Audio Capture Methods
System Audio Capture with BlackHole
macOS doesn’t include native system audio capture, but BlackHole provides a free, open-source virtual audio device.Install BlackHole
Download BlackHole
Visit BlackHole GitHub and download the installer.Choose:
- BlackHole 2ch (stereo) - Recommended for most users
- BlackHole 16ch (multi-channel) - For advanced setups
Install the driver
- Open the downloaded
.pkgfile - Follow the installation wizard
- Enter your password when prompted
- Restart your Mac (if required)
Configure Multi-Output Device
To hear audio while streaming:
- Open Audio MIDI Setup (Applications → Utilities)
- Click the + button and select Create Multi-Output Device
- Check both:
- Your speakers/headphones
- BlackHole 2ch
- Set as your system output device
Alternative: Loopback by Rogue Amoeba is a premium app with advanced routing features, but BlackHole is sufficient for most users.
Microphone Input
For capturing microphone or line-in audio:Grant microphone permission
TCP Streamer will request microphone access on first launch.If denied, grant it manually:
- System Settings → Privacy & Security → Microphone
- Enable TCP Streamer
Configuration
Optimal Settings for BlackHole
BlackHole provides excellent timing stability:- Ethernet (Wired)
- WiFi (Good Signal)
- WiFi (Poor Signal)
For stable wired connections:
- Sample Rate: 48 kHz
- Buffer Size: 512 samples
- Ring Buffer: 2000ms
- Adaptive Buffer: Enabled
- Min: 1000ms
- Max: 4000ms
- Expected Latency: 1-2 seconds
Network Presets
Use the Advanced tab for quick configuration:| Preset | Ring Buffer | Chunk Size | Adaptive Range | Best For |
|---|---|---|---|---|
| Ethernet | 2000ms | 512 | 2-6s | Wired connections |
| WiFi | 4000ms | 1024 | 3-10s | Standard WiFi |
| WiFi (Poor) | 8000ms | 2048 | 5-15s | Weak signal |
Sample Rate Considerations
BlackHole and macOS audio devices support multiple sample rates:- 48 kHz - Recommended for modern systems, video sync
- 44.1 kHz - Standard for music, slightly lower CPU usage
Ensure BlackHole sample rate matches TCP Streamer settings in Audio MIDI Setup.
Permissions
macOS requires explicit permission for audio capture and system access.Microphone Permission
Initial prompt
TCP Streamer will request microphone access on first launch.Click OK to grant access.
Network Permission
TCP Streamer requires network access to connect to your server:- macOS may prompt for network access on first connection
- Click Allow
- If denied, check System Settings → Privacy & Security → Network
System Tray Permission
For menu bar/system tray integration:- TCP Streamer may request accessibility permissions
- Grant in System Settings → Privacy & Security → Accessibility
Performance & Optimization
CPU Usage
TCP Streamer is highly efficient on macOS:- Idle: <1% CPU
- Streaming: 1-3% CPU
- Memory: 2-4 MB typical
Apple Silicon Optimization
On M1/M2/M3/M4 Macs:- TCP Streamer runs natively (no Rosetta required)
- Expect even lower CPU usage (often <1% while streaming)
- Excellent battery efficiency on laptops
Reducing CPU Usage
If you experience high CPU usage:- Increase buffer size to 2048 samples
- Lower sample rate to 44.1 kHz
- Close competing audio apps (DAWs, multiple music players)
- Check Activity Monitor for other CPU-intensive processes
Troubleshooting
Permission Issues
Problem: “TCP Streamer.app is damaged and can’t be opened” This is macOS Gatekeeper blocking unsigned apps. Solution:- GUI Method
- Terminal Method
- Right-click TCP Streamer.app
- Select Open
- Click Open in the security dialog
- Enter your password if prompted
You only need to do this once. Subsequent launches will work normally.
Audio Device Not Found
Problem: BlackHole or audio device doesn’t appear Solutions:Verify BlackHole installation
Open Audio MIDI Setup and verify BlackHole appears in the device list.
No Audio Capture (BlackHole)
Problem: BlackHole selected but no audio is captured Solutions:-
Check Multi-Output Device:
- Open Audio MIDI Setup
- Verify Multi-Output Device includes BlackHole
- Ensure Multi-Output is set as system output
-
Verify system audio is playing:
- Check volume is not muted
- Play audio from any app
- Watch TCP Streamer volume indicator
-
Check sample rate mismatch:
- In Audio MIDI Setup, ensure BlackHole sample rate matches TCP Streamer
- Common mismatch: BlackHole at 44.1 kHz, TCP Streamer at 48 kHz
-
Restart Core Audio:
This restarts macOS audio subsystem.
Connection Issues
Problem: “Failed to connect to TCP server” Solutions:Check macOS Firewall
- System Settings → Network → Firewall
- If enabled, add TCP Streamer to allowed apps
Audio Stuttering or Dropouts
Problem: Audio cuts out or stutters during streaming Solutions:Check network quality
Monitor the Network Quality indicator:
- If consistently “Fair” or “Poor”, improve network connection
High Latency
Problem: Noticeable delay between Mac and server Expected Latency:- Ethernet: 1-3 seconds
- WiFi: 3-6 seconds
- Poor WiFi: 6-12 seconds
- Use wired Ethernet instead of WiFi
- Reduce ring buffer to minimum stable value
- Apply Ethernet preset in Advanced tab
- Disable adaptive buffer if network is very stable
- Reduce buffer size to 512 or 256 samples
Automation
Auto-start on macOS Login
Enable Auto-start on launch in TCP Streamer settings:- Navigate to Automation tab
- Enable “Start on system boot”
- TCP Streamer will launch minimized to menu bar
- System Settings → General → Login Items
- Click + button
- Select TCP Streamer from Applications
- Optional: Check “Hide” to start minimized
Auto-stream Configuration
For fully automated operation:- Enable Auto-start on launch - Start with macOS
- Enable Auto-stream - Begin streaming immediately
- Enable Auto-reconnect - Retry connection on failure
- Configure Multi-Output Device - Hear audio while streaming
- Set silence detection - Pause during silence
Advanced Features
CoreAudio Configuration
Fine-tune CoreAudio for optimal performance:Adjust BlackHole Buffer Size
- Open Audio MIDI Setup
- Select BlackHole 2ch
- Click Configure Speakers (gear icon)
- Adjust buffer size (lower = less latency, higher = more stable)
Aggregate Device (Advanced)
Combine multiple audio sources:- Audio MIDI Setup → + → Create Aggregate Device
- Check devices to combine (e.g., microphone + BlackHole)
- Set clock source to most stable device
- Select Aggregate Device in TCP Streamer
QoS (Quality of Service) Tagging
- Navigate to Advanced tab
- Select QoS preset:
- VoIP (EF) - Highest priority
- Low Delay - Expedited forwarding
- Throughput - Bulk transfer
QoS requires router support to be effective.
High Priority Thread
Reduce jitter on WiFi connections:- Navigate to Advanced tab
- Enable High Priority Thread
- May improve stability on heavily loaded systems
Best Practices
For Multi-room Audio (Snapcast)
- Use BlackHole 2ch with Multi-Output Device
- Apply WiFi preset (4s buffer)
- Enable Auto-reconnect
- Set silence timeout to 300 seconds (5 minutes)
- Enable Adaptive Buffer (3s - 10s)
For Low-latency Applications
- Use wired Ethernet connection
- Apply Ethernet preset (2s buffer)
- Set buffer size to 512 samples
- Use 48 kHz sample rate
- Disable silence detection for continuous stream
For MacBook/Laptop Setups
- Use WiFi (Poor) preset for stability
- Enable Auto-reconnect for network switches
- Enable Adaptive Buffer (5s - 15s)
- Consider higher buffer sizes (1024 or 2048)
- Close unnecessary background apps
Additional Resources
- BlackHole Documentation
- General Configuration Guide
- Troubleshooting Guide
- GitHub Issues
- Snapcast Integration
Platform: macOS 10.15+ Audio API: CoreAudio Native Loopback: No (requires BlackHole or similar) Typical Latency: 1-3 seconds (wired) | 3-6 seconds (WiFi)