Overview
Multi-room audio allows you to stream audio from a single source (your computer) to multiple speakers in different rooms, with synchronized playback. TCP Streamer can be configured to distribute audio across your home using various architectures.Use Cases:
- Whole-home audio for parties or background music
- Synchronized audio for movies across multiple rooms
- Distributed PA system for announcements
- Multi-zone DJ setups
Distribution Architectures
Architecture 1: Snapcast Server Hub (Recommended)
The most reliable and feature-rich approach uses Snapcast as a central distribution server.- Perfect synchronization (microsecond accuracy)
- Individual volume control per room
- Client-side buffering for network resilience
- Web UI for management
- Free and open source
Architecture 2: Custom TCP Relay Server
For custom applications or when Snapcast is not suitable, you can build a simple TCP relay server.Architecture 3: Multiple Direct Connections
For small setups (2-3 rooms), you can run multiple TCP Streamer instances.Complete Setup Guide (Snapcast Method)
Set Up Snapcast Server
Install Snapcast on a central server (see Snapcast Integration for detailed instructions).Quick Setup:Configure for TCP input:Start server:
Install Snapcast Clients in Each Room
Install Snapclient on devices in each room (Raspberry Pi, Android phone, PC, etc.).Raspberry Pi:Configure client:Set server address:Start client:Android/iOS:
- Download Snapcast app from Play Store/App Store
- Enter server IP:
192.168.1.100
Configure TCP Streamer as Audio Source
On your music source computer, configure TCP Streamer:
| Setting | Value |
|---|---|
| Server IP | 192.168.1.100 (Snapcast server) |
| Port | 4953 |
| Sample Rate | 48 kHz |
| Buffer Size | 1024 |
| Ring Buffer | 4000ms (WiFi) or 2000ms (Ethernet) |
| Adaptive Buffer | Enabled (2000-10000ms) |
Test Multi-Room Playback
- Start streaming from TCP Streamer
- Play audio on your source computer
- Verify all Snapcast clients are playing in sync
- Adjust individual room volumes using Snapcast app/web UI
Room-by-Room Configuration Examples
Living Room (Primary Zone)
Hardware:- Raspberry Pi 4 with HiFiBerry DAC
- Powered bookshelf speakers
Kitchen (Secondary Zone)
Hardware:- Raspberry Pi Zero W
- USB sound card
- Small powered speaker
Bedroom (Mobile Zone)
Hardware:- Android tablet
- Bluetooth speaker (connected to tablet)
- Snapcast Android app
- Server:
192.168.1.100 - Buffer: 200ms
Outdoor Patio (WiFi Extended Zone)
Hardware:- Raspberry Pi 3B+
- Outdoor weatherproof speaker
- WiFi extender for coverage
- Network Preset: WiFi (Poor Signal)
- Ring Buffer: 8000ms
- Adaptive Buffer: 5000-15000ms
Volume Management
Individual Room Control
Snapcast provides per-client volume control: Web UI (Recommended):- Navigate to
http://192.168.1.100:1780 - Adjust volume sliders for each room
- Mute specific rooms without stopping stream
- Snapdroid (Android) or Snapcast (iOS)
- Group management and volume control
- Individual client adjustment
Group Volume Control
Create groups for zone-based control: Example Groups:- Downstairs: Living Room + Kitchen
- Upstairs: Bedroom + Office
- All: Every room
Network Optimization for Multi-Room
Bandwidth Calculation
Per-room bandwidth:- 48 kHz stereo PCM: ~1.5 Mbps per room
- 4 rooms = ~6 Mbps total
- 8 rooms = ~12 Mbps total
WiFi Best Practices
- Use 5 GHz WiFi for audio devices when possible
- Dedicated SSID for audio devices
- QoS Settings: Prioritize audio traffic
- Router Placement: Central location, minimal walls
- Mesh Network: For large homes
Quality of Service (QoS)
Enable in TCP Streamer’s Advanced settings: Recommended QoS Setting:- DSCP/TOS: VoIP (EF - Expedited Forwarding)
- Value: 46
Wired vs Wireless Performance
| Connection Type | Expected Latency | Reliability | Recommended Buffer |
|---|---|---|---|
| Gigabit Ethernet | ~2 seconds | Excellent | 2000ms |
| 100 Mbps Ethernet | ~2-3 seconds | Excellent | 2000ms |
| 5 GHz WiFi (Close) | ~4 seconds | Good | 4000ms |
| 5 GHz WiFi (Far) | ~6-8 seconds | Fair | 6000-8000ms |
| 2.4 GHz WiFi | ~8-12 seconds | Fair-Poor | 8000-15000ms |
Troubleshooting Multi-Room Issues
Audio Out of Sync Between Rooms
Problem: Rooms playing at different times (> 100ms difference) Solutions:- Use Snapcast’s automatic time synchronization
- Manually adjust client latency in web UI
- Ensure all clients are on same network (no VLANs causing delays)
- Check for network congestion during playback
Specific Room Drops Out
Problem: One room loses audio intermittently Solutions:- Check WiFi signal strength in that room
- Increase client buffer in Snapcast:
--latency 300 - Use wired Ethernet for that room if possible
- Restart Snapclient service:
sudo systemctl restart snapclient
All Rooms Stutter Simultaneously
Problem: All rooms experience audio dropouts at the same time Solutions:- Issue is at the source (TCP Streamer)
- Increase TCP Streamer ring buffer to 6000-8000ms
- Enable adaptive buffering
- Check source computer CPU usage (should be < 50%)
- Close bandwidth-heavy applications on source computer
High Latency (> 10 seconds)
Problem: Audio plays many seconds after it’s generated Solutions:- Reduce TCP Streamer ring buffer if network is stable
- Reduce Snapclient buffer:
--latency 100 - Use wired Ethernet connections
- Disable adaptive buffering and set fixed buffer
Advanced: Multi-Source Setup
Configure multiple audio sources (different computers) to Snapcast: Snapcast Server Configuration:| Computer | Profile Name | Port | Use Case |
|---|---|---|---|
| Main PC | Home-Main | 4953 | Movies, music |
| Studio PC | Studio-Source | 4954 | DJ mixes |
| Guest PC | Guest-Stream | 4955 | Guest audio |
Performance Monitoring
TCP Streamer Metrics:- Bitrate: Should be steady at ~1536 kbps (48 kHz)
- Network Quality: “Good” or better
- Buffer Usage: 30-70% (adaptive range)
- Uptime: Track reliability
Related Resources
Snapcast Integration
Detailed Snapcast server setup guide
Network Settings
Optimize network performance
Adaptive Buffering
Automatic buffer adjustment
Advanced Configuration
QoS, DSCP, and advanced options