How hachikovn/audioroute works
xAudioRoute is a Windows desktop audio router. Users scan active sessions, connect app or captured-browser-tab cards to one or more output devices, adjust volume and synchronization, and retain executable-based routes and sync presets. The UI coordinates scanning, routing, mirroring, Chrome capture, persistence, tray operation, and optional update checks. The README documents capabilities whose wiring is not shown in the sampled excerpts; those are represented only where their owning module or directory is supported, without asserting unverified call paths.
Main entry points: MainWindow.xaml.cs Router UI · AudioScanner.cs Session scanner · AudioMirrorService.cs PCM mirroring · ChromeTabAudioService.cs Tab audio bridge
Components 22
Desktop router
- Router UI
src/xAudioRoute/MainWindow.xaml.cs - Audio models
src/xAudioRoute/Models/AudioSnapshots.cs
Audio runtime
- Session scanner
src/xAudioRoute/Services/AudioScanner.cs - Per-app routing
src/xAudioRoute/Services/AudioRoutingService.cs - PCM mirroring
src/xAudioRoute/Services/AudioMirrorService.cs - Adaptive PCM
src/xAudioRoute/Services/AdaptivePcmWaveProvider.cs - Output synchronization
src/xAudioRoute/Services/AudioOutputSynchronizer.cs - Device volume
src/xAudioRoute/Services/AudioVolumeService.cs
Browser capture
- Tab audio bridge
src/xAudioRoute/Services/ChromeTabAudioService.cs - Audio bridge worker
extension/chrome/audio-bridge-worker.js - Extension controller
extension/chrome/service-worker.js - Offscreen capture
extension/chrome/offscreen.js
Preferences
- Route rules
src/xAudioRoute/Services/RouteStore.cs - Sync presets
src/xAudioRoute/Services/SynchronizationPresetStore.cs
App operations
- Tray controls
src/xAudioRoute/Services/TrayIconService.cs - Startup settings
src/xAudioRoute/Services/StartupService.cs - Update checker
src/xAudioRoute/Services/UpdateService.cs
Other components
- User
- GitHub Releases
- Windows audio
- Browser user
- Chrome APIs
Connections 27
- User → Router UI: operates
- Router UI → Session scanner: requests scan
- Session scanner → Windows audio: enumerates sessions
- Session scanner → Router UI: returns snapshot
- Router UI → Audio models: uses snapshots
- Router UI → Per-app routing: sets routes
- Per-app routing → Windows audio: sets app endpoint
- Router UI → PCM mirroring: manages extra outputs
- PCM mirroring → Adaptive PCM: feeds PCM
- PCM mirroring → Output synchronization: synchronizes outputs
- Router UI → Device volume: adjusts devices
- Device volume → Windows audio: controls volume
- Browser user → Extension controller: toggles capture
- Extension controller → Chrome APIs: captures tab
- Extension controller → Offscreen capture: sends commands
- Offscreen capture → Audio bridge worker: starts bridge
- Audio bridge worker → Tab audio bridge: streams PCM
- Tab audio bridge → Router UI: provides tab sources
- Tab audio bridge → Adaptive PCM: buffers tab PCM
- Router UI → Route rules: loads and saves
- Router UI → Sync presets: loads and saves
- Router UI → Tray controls: provides window actions
- Tray controls → Router UI: invokes actions
- Router UI → Startup settings: configures startup
- Router UI → Update checker: checks for updates
- Update checker → GitHub Releases: fetches release and installer
- Update checker → Router UI: returns verified installer