A simple CLI tool to scan for speaker broadcasters (Google Cast, Sonos, AirPlay, Spotify Connect) in your local network and check their group sync status.
- Python 3.8+
- pip
# Clone the repository (if applicable)
cd Sonic_Boom
# Install dependencies
python3 -m pip install .sonic-boom scanThe tool will list all discovered speakers, including any active Sonic Boom Master nodes.
To start broadcasting audio from your microphone or system audio:
sonic-boom master --group MyParty- The tool will list all available audio input devices.
- Select the index of the device you want to broadcast (e.g., your Microphone for voice, or a Loopback device for system audio).
macOS does not allow direct capture of system audio. To broadcast system audio (e.g., from Spotify or YouTube):
- Install BlackHole:
brew install blackhole-2ch. - Audio MIDI Setup: Create a Multi-Output Device in macOS "Audio MIDI Setup" containing both "BlackHole 2ch" and your "Built-in Output".
- System Settings: Set your system's sound output to this new Multi-Output Device.
- Sonic Boom: Run
sonic-boom masterand select the BlackHole 2ch index.
To receive and play the audio broadcast on another device in the network:
sonic-boom slaveThe slave will automatically join the multicast group and play the incoming stream.
- Master: Captures audio using
PyAudio, packs it with a sequence number and timestamp, and broadcasts it to224.3.29.71:10000via UDP Multicast. - Slave: Listens on the multicast address, de-packets the audio, and uses a simple sequence-based sync logic to play the stream with minimal jitter.