MultiBluetooth Speaker System
A cross-platform software solution that allows one device to connect to multiple Bluetooth speakers simultaneously for synchronized audio playback across all connected speakers.
Features
- Multi-Speaker Connection: Connect up to 8 Bluetooth speakers simultaneously from a single device
- Synchronized Audio: Play audio in perfect sync across all connected speakers
- Real-time Monitoring: View the status and connection health of all speakers
- User-friendly Interface: Simple web interface to control your speaker network
- Cross-Platform Compatibility: Works on multiple operating systems
- Integrated Listening Server: Monitor and control your audio system remotely
How It Works
The MultiBluetooth Speaker System uses a Flask-based web application with WebSocket support to:
- Scan for available Bluetooth speakers in the vicinity
- Connect to multiple speakers simultaneously
- Distribute audio data to all connected speakers with precise timing for synchronized playback
- Provide real-time status updates and controls through an intuitive web interface
Requirements
- Python 3.6+
- Flask and Flask-SocketIO
- PyBluez (for Bluetooth connectivity)
- NumPy (for audio processing)
- Modern web browser
- Bluetooth-enabled device (computer or smartphone)
Installation
# Clone the repository
git clone https://github.com/karldm3/multibluetooth-speaker-system.git
cd multibluetooth-speaker-system
# Install Python dependencies
pip install -r requirements.txt
# Install system dependencies for PyBluez
# For Ubuntu/Debian:
sudo apt-get install libbluetooth-dev
# For macOS:
brew install bluez
# For Windows:
# PyBluez should work with the standard Windows Bluetooth stack
Usage
Start the application:
python main.pyOpen your web browser and navigate to:
http://localhost:5000Use the web interface to:
- Scan for available Bluetooth speakers
- Connect to desired speakers
- Control audio playback (play, pause, stop)
- Monitor the status of all connected speakers
Development
The system architecture consists of:
- Flask Web Application: Provides the user interface and API endpoints
- Bluetooth Manager: Handles device discovery, connections, and data transmission
- Audio Processor: Manages audio synchronization and distribution to multiple speakers
- Database: Stores speaker information and connection history
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Future Enhancements
- Support for custom audio files and streaming services
- Advanced audio synchronization algorithms
- Mobile app interface
- Support for speaker grouping and zone control
- Audio visualization features
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgements
- PyBluez for Bluetooth functionality
- Flask for the web framework
- Socket.IO for real-time communication
- Thato_Popotwane for proposing the idea/mind behind the idea
Note: This project is in development stage. For optimal performance, ensure all speakers support the same Bluetooth profiles and codecs.
Log in or sign up for Devpost to join the conversation.