Skip to main content
This guide will walk you through the essential steps to start streaming audio from your computer to a TCP server.
Before you begin: Ensure you have a TCP server ready to receive audio. For this guide, we’ll use Snapcast as an example, but any TCP server that accepts raw PCM audio will work.

Prerequisites

  • TCP Streamer installed (see Installation guide)
  • A TCP server listening for audio (e.g., Snapcast server on port 4953)
  • For system audio capture:
    • Windows: Built-in WASAPI loopback (speakers/headphones required)
    • macOS: BlackHole or similar
    • Linux: PulseAudio monitor

Step 1: Launch TCP Streamer

Open TCP Streamer from your applications menu or system tray. The application window displays a tabbed interface with four main sections:
  • 🎤 Input - Audio device and capture settings
  • 🌐 Network - Destination IP, port, and connection settings
  • ⚙️ Advanced - Buffer tuning, network optimization, silence detection
  • 📊 Stats - Real-time streaming statistics and logs

Step 2: Select Audio Input Device

Navigate to the 🎤 Input tab and configure your audio source.
1

Choose Input Device

Click the Input Device dropdown to see all available audio devices. TCP Streamer scans all host APIs (WASAPI, MME, CoreAudio, ALSA) to find every available input.Device Options:
  • Microphones (for voice/instrument capture)
  • Line-in devices
  • Virtual audio cables (VB-Audio Cable, etc.)
  • System loopback devices (BlackHole, PulseAudio Monitor)
2

Configure Sample Rate

Select your preferred sample rate:
  • 48 kHz (recommended) - Modern standard, lower CPU usage
  • 44.1 kHz - CD quality, traditional standard
Your TCP server must be configured to receive audio at the same sample rate. Snapcast automatically handles this.
3

Set Buffer Size

Choose a buffer size that balances latency and stability:
Buffer SizeLatencyStabilityUse Case
256LowestLowerLocal/wired networks, real-time apps
512LowGoodBalanced for most wired setups
1024ModerateBetterRecommended for WiFi
2048HigherBestPoor connections, maximum stability
Start with 1024 if unsure.

Capturing System Audio

Using WASAPI Loopback (Built-in)
  1. Check “Enable Loopback (Windows)” checkbox
  2. Ensure speakers or headphones are plugged in
  3. Select your audio output device from the dropdown
  4. The device name will appear with system audio capability
WASAPI loopback requires an active audio output device connected. If you unplug speakers/headphones, capture will stop.
Alternative: VB-Audio Cable
  1. Install VB-AUDIO Cable
  2. Set system output to “CABLE Input”
  3. In TCP Streamer, select “CABLE Output” as input device

Step 3: Configure Network Destination

Navigate to the 🌐 Network tab.
1

Enter Server IP Address

Input the IP address of your TCP server:
  • Local server: 127.0.0.1 or localhost
  • Network server: 192.168.1.100 (example)
  • Remote server: Any routable IP address
2

Set Port Number

Enter the port your server is listening on:
  • Snapcast default: 4953
  • Custom servers: Check your server configuration
Example for Snapcast:
# Snapcast server listening on port 4953
IP: 192.168.1.100
Port: 4953
3

Enable Auto-Reconnect (Recommended)

Check “Auto-reconnect” to automatically retry connection if the network drops.As of v1.9.0, auto-reconnect uses:
  • Minimum 2-second delay between attempts
  • Exponential backoff (2s → 4s → 8s → 16s, max 60s)
  • Random jitter (±500ms) to prevent connection storms

Example Server Configurations

IP: 192.168.1.100
Port: 4953
Format: 48000:16:2 (48kHz, 16-bit, stereo)

Step 4: Optimize Settings (Optional)

Navigate to the ⚙️ Advanced tab for fine-tuning.

Network Presets

Choose a preset based on your connection:
Recommended for stable wired connections
  • Ring Buffer: 2000ms
  • Chunk Size: 512 samples
  • Adaptive Buffer: 2000ms - 6000ms
Expected latency: ~2-4 seconds
Higher ring buffer values increase latency but provide better stability. For music playback, 4-8 seconds of latency is usually imperceptible in multi-room setups.
Enable Adaptive Buffer to automatically adjust buffer size based on network jitter:
  • Toggle “Enable Adaptive Buffer”
  • Set Min Buffer: Minimum size (e.g., 2000ms for Ethernet, 4000ms for WiFi)
  • Set Max Buffer: Maximum size (e.g., 6000ms for Ethernet, 12000ms for WiFi)
The system checks jitter every 10 seconds and resizes within these bounds.
WASAPI Loopback on Windows automatically uses larger buffers (8000ms base) due to timing variability. This is normal and prevents stuttering.

Silence Detection

Optimize bandwidth by stopping transmission during silence:
  1. Watch the volume meter while playing audio
  2. Adjust Silence Threshold slider just above the noise floor (white line on meter)
  3. Set Silence Timeout (e.g., 5 seconds) - stops streaming after this duration of silence
Silence detection saves bandwidth but won’t affect audio quality. Audio resumes instantly when sound is detected.

Step 5: Start Streaming

Time to go live!
1

Click Start Streaming

Click the “Start Streaming” button in any tab.You should see:
  • Connection status change to “Connected”
  • Real-time statistics begin updating
  • Log messages confirming connection
2

Monitor Connection

Navigate to 📊 Stats tab to view:
  • Uptime: Time since streaming started
  • Bytes Sent: Total data transmitted
  • Bitrate: Current streaming rate (kbps)
  • Network Quality: Real-time health score (Excellent/Good/Fair/Poor)
  • Buffer Health: Ring buffer utilization
  • Jitter: Network stability measurement
3

Verify Audio

Play audio on your computer and verify:
  • Volume meter shows activity
  • Bitrate increases when audio plays
  • Audio appears on your TCP server (Snapcast, etc.)

Monitoring Real-Time Statistics

The Stats tab provides comprehensive monitoring:
MetricDescriptionNormal Range
Network QualityOverall connection healthExcellent/Good
JitterNetwork timing variance< 10ms
Buffer HealthRing buffer utilization20-80%
BitrateData transmission rate~1.5 Mbps @ 48kHz stereo
Error CountConnection errors0
If Buffer Health consistently shows >90%, increase ring buffer size. If it shows <10%, you can reduce buffer for lower latency.

Step 6: Enable Automation (Optional)

For set-and-forget operation:
1

Enable Auto-start on Launch

Check “Auto-start on launch” to run TCP Streamer when your system boots.
  • Windows: Creates a startup shortcut
  • macOS: Installs LaunchAgent
  • Linux: Creates systemd user service or autostart entry
When auto-started, TCP Streamer launches minimized to system tray.
2

Enable Auto-stream

Check “Auto-stream” to begin streaming immediately after application starts.Perfect for dedicated streaming computers that should always be online.
3

Minimize to Tray

Close the main window - TCP Streamer continues running in the system tray.To access later:
  • Click the tray icon
  • Or right-click → “Show Settings”

Saving Configuration Profiles

Save different configurations for various scenarios:
1

Configure Your Settings

Set up all your preferred settings (device, IP, port, buffers, etc.)
2

Create New Profile

  1. Click ➕ New in the profile section
  2. Enter a descriptive name (e.g., “Home-Snapcast”, “Studio-WiFi”)
  3. Click ✓ Create
3

Save Settings to Profile

Click 💾 Save to store current settings to the selected profile
4

Switch Between Profiles

Select different profiles from the dropdown to instantly load saved configurations
Example Profiles:
📁 Home-Snapcast
   └─ 192.168.1.100:4953, 48kHz, WiFi preset, Auto-reconnect ON

📁 Studio-Monitor  
   └─ 10.0.0.50:8000, 44.1kHz, Ethernet preset, High priority ON

📁 Testing
   └─ localhost:9999, 48kHz, Small buffers, Auto-reconnect OFF
The “Default” profile cannot be deleted and serves as your fallback configuration.

Testing Your Setup

Quick Test with Netcat

Before setting up a full server, test with netcat:
# Start a TCP listener on port 9999
nc -l 9999 > captured_audio.raw

Verifying Audio Format

TCP Streamer sends raw PCM with these specifications:
  • Format: Signed 16-bit little-endian (s16le)
  • Sample Rate: 44100 or 48000 Hz (as configured)
  • Channels: 2 (stereo)
  • Bitrate: ~1.4 Mbps (44.1kHz) or ~1.5 Mbps (48kHz)

Troubleshooting

Cannot Connect to Server

Cause: Server is not running or not listening on specified portSolution:
  • Verify server is running: netstat -an | grep 4953 (Linux/macOS)
  • Check firewall allows connections on the port
  • Try telnet 192.168.1.100 4953 to test connectivity
Cause: Network routing issue or wrong IP addressSolution:
  • Verify IP address: ping 192.168.1.100
  • Check if server is on same network/VLAN
  • Try using server hostname instead of IP
Cause: Firewall on client or server blocking TCP connectionSolution:
  • Windows: Allow TCP Streamer in Windows Firewall
  • macOS: System Settings → Network → Firewall → Allow TCP Streamer
  • Linux: sudo ufw allow out 4953/tcp (if using ufw)

No Audio Being Sent

Cause: No audio playing or threshold set too highSolution:
  • Play audio on your computer
  • Check volume meter shows activity
  • Lower silence threshold slider
  • Temporarily disable silence detection to test
Cause: Selected device is not capturing audioSolution:
  • Try different input device from dropdown
  • For system audio, verify loopback/monitor device is set up
  • Check device is not muted in system settings
Cause: Application lacks microphone permissionsSolution:
  • Grant microphone access in system settings
  • macOS: System Settings → Privacy & Security → Microphone
  • Windows: Settings → Privacy → Microphone
  • Restart TCP Streamer after granting permissions

Audio Stuttering or Dropouts

Cause: Ring buffer too small for network conditionsSolution:
  • Increase ring buffer size (try 6000ms or 8000ms)
  • Enable Adaptive Buffer with higher max (e.g., 12000ms)
  • Use WiFi (Poor) preset if on wireless
  • Check Stats tab for “Buffer Health” - should be 20-80%
Cause: Unstable network connectionSolution:
  • Switch to wired connection if possible
  • Increase chunk size (try 2048)
  • Enable High Priority Thread option
  • Check Stats tab - jitter should be <10ms
Cause: WASAPI loopback is more sensitive than VB-Audio CableSolution:
  • Application automatically uses 8000ms buffer for WASAPI
  • Enable Adaptive Buffer (4000-12000ms range)
  • Ensure speakers/headphones remain connected
  • Consider using VB-Audio Cable for more stability

Next Steps

Now that you’re streaming successfully:

Configuration Guide

Deep dive into advanced settings, profiles, and optimization

Snapcast Integration

Learn how to set up multi-room audio with Snapcast

Troubleshooting

Comprehensive solutions for common issues

API Reference

Technical details and Tauri command reference
Pro Tip: Create multiple profiles for different scenarios (home, work, testing) and use auto-reconnect for unattended operation. TCP Streamer is designed to run 24/7 with minimal intervention.

Build docs developers (and LLMs) love