Overview
TCP Streamer’s profile system allows you to save and switch between multiple complete configurations. Each profile stores all settings, including device selection, network parameters, buffer sizes, and advanced options. This enables you to quickly adapt to different streaming scenarios without reconfiguring settings manually.Storage Backend: Profiles are persisted using the Tauri Plugin Store (v2), which stores settings in a binary file (
store.bin) in the application’s data directory. Settings are automatically saved and synchronized across app sessions.Profile Structure
Each profile contains a complete snapshot of all configurable settings:Stored Settings
Profile Data Model
The
device and loopback_mode settings are stored both globally (for convenience) and per-profile (for scenario-specific configurations).Managing Profiles
Default Profile
Every installation starts with a Default profile that cannot be deleted:Creating a New Profile
Click New Profile Button
In the Connection tab, click the ➕ New button next to the profile dropdown.
Enter Profile Name
Type a unique name for your profile (e.g., “Office-WiFi”, “Home-Ethernet”, “Snapcast-Bedroom”).
Confirm Creation
Click the ✓ Create button. The new profile is created by copying the current profile’s settings.
Switching Profiles
Saving Changes to Profile
Settings are saved automatically whenever you modify any input field:saveSettings() function, which updates the current profile in the store.
Deleting a Profile
Use Cases
Example Profile Configurations
- Home-Snapcast
- Studio-Monitor
- Testing-Localhost
- Office-Remote
Scenario: Streaming to a Snapcast server on home WiFi for multi-room audio.Settings:Why This Works:
- WiFi preset provides 3-10s adaptive buffer range
- VoIP DSCP tagging for QoS priority
- Auto-reconnect ensures resilience to brief network hiccups
- 48kHz sample rate for high-fidelity music
Profile Workflows
Scenario-Based Workflow
Identify Your Scenarios
List the different environments or use cases where you stream audio:
- Home WiFi multi-room
- Office wired network
- Laptop on WiFi (portable)
- Testing/development setup
Create Profile for Each Scenario
For each scenario, create a dedicated profile with appropriate settings.
Test Each Profile
Start streaming with each profile and verify stability:
- Monitor quality score (should stay >70)
- Watch for “Buffer resized” log messages
- Check for audio dropouts
Tune Settings
Adjust buffer sizes, chunk sizes, and network presets based on real-world performance.
Quick Switching Example
Morning: At home on WiFi- Select “Home-Snapcast” profile
- Click Start Streaming
- Quality score: 85-95 (Good-Excellent)
- Stop stream
- Select “Office-Ethernet” profile
- Click Start Streaming
- Quality score: 95-100 (Excellent)
- Stop stream
- Select “Home-Snapcast-Poor” profile (custom variant with higher buffers)
- Click Start Streaming
- Quality score: 70-80 (Good, no dropouts)
Persistence and Reliability
Automatic Saving
All profile changes are immediately persisted to disk:Storage Location
| Platform | Store File Path |
|---|---|
| Windows | C:\Users\<User>\AppData\Roaming\com.tcp-streamer.app\store.bin |
| macOS | ~/Library/Application Support/com.tcp-streamer.app/store.bin |
| Linux | ~/.local/share/com.tcp-streamer.app/store.bin |
The store file is a binary format managed by the Tauri plugin. It’s not human-readable, but it’s portable across systems. You can back up this file to preserve your profiles.
Backup and Restore
To Backup Profiles:- Locate the
store.binfile (see paths above) - Copy it to a safe location (e.g., Dropbox, USB drive)
- Optionally rename with timestamp:
store.bin.backup-2024-03-04
- Close TCP Streamer
- Replace
store.binwith your backup file - Restart TCP Streamer
- Verify profiles loaded correctly in dropdown
Advanced: Manual Profile Export/Import
While TCP Streamer doesn’t provide a built-in export/import UI, you can manually extract profile settings:Exporting Profile Settings (Manual)
- Open Developer Tools in the app (if enabled in development mode)
- Run in console:
- Copy the JSON output and save to a text file
Importing Profile Settings (Manual)
- Open Developer Tools
- Run in console:
- Reload the app to see the new profile
This workflow is intended for advanced users and developers. A future release may add a built-in export/import UI feature.
Troubleshooting
Profile not saving changes
Profile not saving changes
Symptoms:
- Change settings, but they revert after app restart
- Console shows errors like “Failed to save settings”
- Store file permissions issue
- Disk full
- Antivirus blocking file writes
- Check file permissions on the store.bin directory
- Verify sufficient disk space
- Add TCP Streamer to antivirus whitelist
- Try running app as administrator (Windows) to test if it’s a permission issue
Profile dropdown is empty
Profile dropdown is empty
Symptoms:
- No profiles appear in dropdown
- UI shows “No profiles found”
- Corrupted store file
- First-time initialization failed
- Delete the store.bin file and restart the app (creates fresh Default profile)
- Check browser console for JavaScript errors
- Verify Tauri Store plugin is loaded correctly
Cannot switch to specific profile
Cannot switch to specific profile
Symptoms:
- Selecting profile from dropdown has no effect
- Settings don’t change
- Profile data is corrupted or incomplete
- JavaScript event listener not attached
- Delete the problematic profile and recreate it
- Check browser console for errors during profile switch
- Verify profile exists in store:
store.get("profiles").then(console.log)
Profiles lost after update
Profiles lost after update
Symptoms:
- After updating TCP Streamer, all profiles are gone
- Only Default profile remains
- Update changed store file location
- Store file was not migrated
- Check old store location (if app ID changed)
- Restore from backup if available
- Manually recreate profiles (use backup text notes if you documented settings)
Best Practices
Descriptive Names
Use clear, descriptive profile names that indicate the scenario:
- ✅ “Home-WiFi-Snapcast”
- ✅ “Office-Ethernet-Monitor”
- ❌ “Profile1”
- ❌ “Test”
Document Settings
Keep a separate text file documenting your profile configurations, especially if they’re finely tuned. This serves as a backup if profiles are lost.
Test Before Relying
After creating a new profile, thoroughly test it under real conditions before depending on it for critical use.
Regular Backups
Periodically back up your store.bin file, especially after creating or modifying important profiles.
Future Enhancements
Export/Import UI
Built-in export/import feature for sharing profiles or backing up to JSON files.
Profile Templates
Pre-configured templates for common scenarios (Snapcast, live monitoring, remote streaming, etc.).
Cloud Sync
Optional cloud synchronization of profiles across multiple devices.
Profile Hotkeys
Keyboard shortcuts to quickly switch between frequently-used profiles.
Related Features
Audio Streaming
Understand the settings you’re configuring in profiles
Adaptive Buffering
Learn about the buffer settings saved in each profile
Quickstart
Get started with your first profile configuration