Overview
Automation settings allow TCP Streamer to run unattended, making it ideal for headless setups, background audio distribution, and always-on streaming scenarios.Auto-Start on Boot
Launch TCP Streamer automatically when your system starts.Enable automatic launch on system startup
How It Works
TCP Streamer integrates with your operating system’s autostart mechanism:- Windows: Adds registry entry to
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run - macOS: Creates launch agent in
~/Library/LaunchAgents - Linux: Adds
.desktopfile to~/.config/autostart/
Behavior
When auto-start is enabled:- Application launches on system boot
- Window opens minimized to system tray
- No user interaction required
- Waits for user to start streaming OR auto-stream triggers
Use Cases
- Home audio server: Always available for streaming
- Headless systems: No manual launch required
- Multi-room audio: Ensures continuous availability
- Background monitoring: Audio capture without user interaction
Auto-Stream
Begin streaming immediately after application starts.Automatically start streaming on application launch
How It Works
When auto-stream is enabled:- Application loads saved configuration from current profile
- Waits 500ms for device initialization
- Automatically clicks “Start Streaming” button
- Begins streaming to configured IP:Port
Requirements
For auto-stream to work, you must have:- ✅ Valid input device selected
- ✅ IP address configured
- ✅ Port number configured
- ✅ TCP server running and accessible
If any required setting is missing, auto-stream will fail silently and the application will remain in “Ready” state.
Behavior
Combined with Auto-Start
For fully automated operation, enable both:Auto-Reconnect
Automatically retry connection when network errors occur.Enable automatic reconnection on connection failure
How It Works
When auto-reconnect is enabled:- Detects connection failures (write errors, timeouts, socket closure)
- Closes TCP connection gracefully (sends FIN packet)
- Waits with exponential backoff
- Attempts to reconnect to the same IP:Port
- Resumes streaming if successful
Reconnection Strategy
Exponential Backoff with Jitter:Behavior During Reconnection
Audio buffer:- Continues capturing audio during reconnection
- Drains stale audio (100ms chunks) to prevent sending old data
- Sends fresh audio once reconnected
- Status shows: “Reconnecting to [IP] (retry in Xs)…”
- “Stop Streaming” button remains active
- Statistics continue updating
- Remains running (does not exit)
- Uses strict pacing during disconnect to prevent CPU spin
- Clears buffer gradually to avoid blocking
Graceful Shutdown
When connection fails, TCP Streamer:Use Cases
Network Interruptions
- WiFi signal drops temporarily
- Router restarts
- Ethernet cable briefly unplugged
Server Restarts
- Snapcast server updates
- Server maintenance windows
- Temporary server crashes
Development
- Testing connection resilience
- Server debugging sessions
- Integration testing
Deep Sleep Mode
Automatic disconnection during prolonged silence to prevent zombie connections.Automatically disconnect after prolonged silence (always enabled)
How It Works
Introduced in v1.6.0, Deep Sleep prevents “zombie” connections:- Monitors audio RMS (Root Mean Square) levels
- Detects prolonged silence (no audio above threshold)
- Automatically disconnects after timeout period
- Reconnects when audio resumes (if auto-reconnect enabled)
Behavior
Silence detection:- Threshold: RMS < 50.0
- Timeout: Configurable (default: 60 seconds)
- Gracefully closes TCP connection
- Logs: “Deep sleep activated (no audio)”
- Stops sending data
- Automatically reconnects if auto-reconnect enabled
- Logs: “Audio detected, reconnecting…”
- Resumes streaming
Deep Sleep is always active and cannot be disabled. It’s a core reliability feature introduced in v1.6.0.
Configuration Profiles
Save different automation configurations for various scenarios.Creating Automation Profiles
Configure Settings
- Set IP address and port
- Select input device
- Enable auto-stream and auto-reconnect
Example Profiles
Always-On Home Server
Development Testing
Studio Monitor
System Tray Integration
TCP Streamer always runs in the system tray, never fully quits.Behavior
Window closing:- Clicking ❌ minimizes to tray (does not quit)
- Application continues running in background
- Streaming continues uninterrupted
- Right-click tray icon for options
- “Show” - Restore window
- “Quit” - Fully exit application
- Tray icon changes color when streaming
- Hover tooltip shows connection status
Unattended Operation
Complete setup guide for headless/unattended streaming.Setup Checklist
Optimize Settings
- Sample Rate: 48000 Hz
- Buffer Size: 1024
- Ring Buffer: 4000-8000ms (WiFi) or 2000ms (wired)
Monitoring Unattended Systems
Check logs remotely to verify operation:Troubleshooting
Auto-Start Not Working
Solutions:- Verify auto-start is enabled in settings
- Check system startup applications list
- Windows: Check registry entry exists
- macOS: Check Launch Agent is loaded (
launchctl list) - Linux: Check
~/.config/autostart/for.desktopfile - Grant necessary permissions (may require admin/root)
Auto-Stream Fails Silently
Solutions:- Verify device is selected
- Verify IP and port are configured
- Check TCP server is running before launching app
- Look for errors in logs after 500ms delay
- Test manual streaming first
Auto-Reconnect Not Retrying
Solutions:- Verify auto-reconnect is enabled
- Check logs for reconnection attempts
- Ensure network is accessible
- Verify firewall allows outbound connections
- Check if “Stop Streaming” was clicked (disables auto-reconnect)
Connection Storms (Too Many Retries)
Symptoms: Excessive connection attempts overwhelming server Explanation: Exponential backoff with jitter prevents this. If you’re seeing connection storms:- Verify you’re running v1.9.0 or later (minimum 2s delay)
- Check that multiple instances aren’t running
- Verify jitter is working (retry delays should vary by ±500ms)
Related Settings
- Audio Settings - Configure input devices
- Network Settings - Optimize connection reliability
- Advanced Settings - Enable adaptive buffer for unattended operation