How naresh-ashok-mali/syncwave works
SyncWave is a Windows desktop app that captures system audio, synchronizes it across selected output devices, and exposes per-device volume, delay, and live status controls. Its primary workflow is driven by MainViewModel, which starts capture and configures output streams using latency compensation. The README also documents waveform and buffer monitoring, device reconnection, echo prevention, saved profiles, and hotkey flyouts. Some subsystem links are based on README descriptions because the corresponding implementation was not fully sampled.
Main entry points: MainViewModel.cs Main view model · AudioOutputService.cs Multi-device output · MainWindow.xaml.cs Main window · ProcessLoopbackCaptureService.cs Process capture
Components 17
Audio pipeline
- Process capture
Core/ProcessLoopbackCaptureService.cs - WASAPI capture
Core/AudioCaptureService.cs - Latency compensation
Core/LatencyManager.cs - Multi-device output
Core/AudioOutputService.cs - Volume scaling
Core/VolumeWaveProvider.cs - Windows audio system
App and interface
- Main view model
ViewModels/MainViewModel.cs - Main window
Views/MainWindow.xaml.cs - Quick-volume flyout
Views/FlyoutWindow.xaml.cs - Device state
Models/AudioDeviceModel.cs
Preferences and integration
- Profile manager
Utils/DeviceProfileManager.cs - Saved profiles
- Global hotkeys
Utils/HotkeyManager.cs - Main-window hotkey
Utils/MainHotkeyManager.cs
Other components
- User
- Audio output devices
- Windows hotkey API
Connections 21
- User → Main window: operates
- Main window → Main view model: binds controls
- Main window → Quick-volume flyout: opens
- Quick-volume flyout → Main view model: binds controls
- Main view model → Device state: updates state
- Main view model → Process capture: starts capture
- Process capture → Windows audio system: captures system audio
- Process capture → Main view model: sends audio data
- Main view model → Latency compensation: sets delays
- Main view model → Multi-device output: configures streams
- Multi-device output → Latency compensation: requests delayed audio
- Multi-device output → Volume scaling: scales per-device audio
- Multi-device output → Windows audio system: enumerates devices
- Multi-device output → Audio output devices: streams audio
- Main view model → Profile manager: loads and saves settings
- Profile manager → Saved profiles: reads and writes
- Main window → Global hotkeys: registers flyout shortcut
- Main window → Main-window hotkey: registers main shortcut
- Global hotkeys → Windows hotkey API: registers shortcut
- Main-window hotkey → Windows hotkey API: registers shortcut
- WASAPI capture → Windows audio system: captures default output