A Python application that allows routing audio to multiple output devices simultaneously on Windows. Perfect for streaming setups or when you need to output audio to both speakers and headphones.
- Windows 10/11
- Python 3.8 or higher
- Virtual Audio Cable (required for routing audio between applications)
-
Install Python Dependencies
pip install -r requirements.txt
-
Install Virtual Audio Cable
- Download VB-Audio Virtual Cable from https://vb-audio.com/Cable/
- Run the installer
- Restart your computer to ensure the virtual devices are properly initialized
To route all system audio through the virtual cable:
-
Open Windows Sound Settings
- Right-click the speaker icon in the taskbar and select "Sound settings"
- Or navigate to
System > Sound
-
Configure the system audio routing:
- Under "Output", select
CABLE Input (VB-Audio Virtual Cable)
- Under "Input", select
CABLE Output (VB-Audio Virtual Cable)
- Under "Output", select
This will route all system audio through the virtual cable.
To route specific applications through the virtual cable:
-
Open Windows Sound Settings by right-clicking the speaker icon in the taskbar and selecting "Sound settings"
- Or navigate to
System > Sound > Volume Mixer
- Or navigate to
-
In the Volume Mixer, locate your desired application (e.g., Spotify, Chrome, etc.)
-
Configure the audio routing:
- Set "Input device" to
CABLE Output (VB-Audio Virtual Cable)
- Set "Output device" to
CABLE Input (VB-Audio Virtual Cable)
- Set "Input device" to
This setup allows you to isolate and capture audio from specific applications while other system sounds continue playing through your default output device.
-
First Run
python audio_split.py
- On first run, you'll be prompted to select your output devices
- You can choose to create a desktop shortcut for easy access
-
Configuration The
settings.cfg
file contains your device settings:[Devices] device_1 = Speakers (Realtek(R) Audio) device_2 = Headphones (USB Main Audio) [Settings] device_count = 2 device_1_volume = 1.0 device_1_latency = 0.08 device_2_volume = 1.0 device_2_latency = 0.0
volume
: Range 0.0 to 1.0 (0% to 100%)latency
: Delay in seconds (e.g., 0.08 = 80ms)
-
Commands
- List available devices:
python audio_split.py --list-devices
- Reset configuration:
python audio_split.py --reset-config
- Show version:
python audio_split.py --version
- List available devices:
-
Controls
Ctrl+C
: Stop the application- Edit
settings.cfg
to adjust volumes and latency (changes apply immediately)
-
No Audio Output
- Ensure you have selected the
Virtual Cable
as both input and output device in Windows. If you want to apply it per application; use theVolume Mixer
to route the application to theVirtual Cable
input and output. - Check that the device names in settings.cfg match your system exactly
- Try resetting the config:
python audio_split.py --reset-config
- Ensure you have selected the
-
Audio Delay
- Adjust the latency setting in settings.cfg (lower = less delay, but may cause stuttering)
- Default latency is 0.0 seconds
- Try values between 0.05 and 0.1 if experiencing issues
-
Application Crashes
- Check the logs in the
logs
directory for error details - Ensure all required Python packages are installed
- Verify your audio devices are properly connected and recognized by Windows
- Check the logs in the
Feel free to open issues or submit pull requests on GitHub.
This project is licensed under the MIT License - see the LICENSE file for details.