Bitwave is a high-fidelity, developer-friendly, future-proof audio format designed for modern sound experiences — including spatial audio, dynamic tempo adjustment, and multi-track support.
Minimal. Powerful. Immersive.
- 🎚️ Multi-channel support – From stereo to 7.1+, ambisonic, and 3D formats
- ⏱️ Dynamic tempo control – Ideal for DJs, generative music, and interactive environments
- 🌐 Spatial-ready – Built-in XYZ positioning for VR/AR and immersive experiences
- 🧠 AI-enhanced compatibility – Ready for real-time audio transformation and neural mixing
- 💾 Compact & efficient – Optimized binary format with optional lossless compression
- 📁 Modern file extension: .bwx
- 🐍 Python SDK – Easy-to-use Python implementation for rapid development
Bitwave comes with a modern, feature-rich player that works on both macOS and Windows:
- 🎨 Modern UI – Clean, intuitive interface with dark mode support
- 📊 Waveform Visualization – Real-time waveform display with playback position
- 🎚️ Volume Control – Smooth volume adjustment with keyboard shortcuts
- 📋 Playlist Support – Create, save, and load playlists (M3U format)
- 🌐 Spatial Audio Visualization – 3D visualization of spatial audio data
- 📝 Metadata Display – View track information, duration, and BPM
- ⌨️ Keyboard Shortcuts – Quick access to all playback controls
- 🎯 System Tray Integration – Control playback from the system tray
| Action | Keyboard Shortcut | Description | 
|---|---|---|
| Play/Pause | Space | Toggle playback | 
| Next Track | Right Arrow | Play next track | 
| Previous Track | Left Arrow | Play previous track | 
| Volume Up | Up Arrow | Increase volume | 
| Volume Down | Down Arrow | Decrease volume | 
| Open File | Ctrl+O | Open Bitwave file | 
| Save Playlist | Ctrl+S | Save current playlist | 
| Load Playlist | Ctrl+L | Load saved playlist | 
# Install dependencies
pip install -r requirements.txt
# Run the player
python player/run.py| Extension | Description | 
|---|---|
| .bw2 | Bitwave v2 – Latest version with enhanced features | 
| .bwx | Bitwave eXtended – Multichannel, 3D, spatial audio | 
| .bwa | Bitwave Audio – Standard audio content | 
| .bwm | Bitwave Master – Mastering / studio-level quality | 
| .bwd | Bitwave Dynamic – Tempo & rhythm adaptive version | 
| .bwl | Bitwave Light – Lightweight, streaming optimized | 
| .bwf | Bitwave Full – Includes full metadata and spatial data | 
| .bwr | Bitwave Raw – Uncompressed or minimally processed | 
| .bwi | Bitwave Immersive – VR/AR ready, full 3D audio | 
| .bwt | Bitwave Track – Optimized for music tracks | 
| .bwp | Bitwave Pro – Professional content & production ready | 
| Section | Description | 
|---|---|
| BWX_HEADER | Magic bytes, version, flags | 
| META_BLOCK | Sample rate, channels, duration, bpm | 
| SPATIAL_BLOCK | Positional data (x, y, z) per channel | 
| AUDIO_STREAM | Encoded audio frames | 
| FOOTER | Checksum & optional tags | 
# Create and activate virtual environment
python -m venv venv
source venv/bin/activate  # On Unix/macOS
# or
.\venv\Scripts\activate  # On Windows
# Install dependencies
pip install -r requirements.txt
# Install package in development mode
pip install -e .# Navigate to the Rust implementation
cd rust
# Build the project
cargo build
# Run tests
cargo test
# Build documentation
cargo doc --open# Get information about a Bitwave file
bitwave info file.bwx
# Convert audio files (coming soon)
bitwave convert input.wav output.bwx --bpm 120from bitwave import BitwaveFile
# Read a Bitwave file
bw_file = BitwaveFile("track.bwx")
bw_file.read()
metadata = bw_file.get_metadata()
# Write a Bitwave file
bw_file.write(
    audio_data=np.array(...),  # 2D array (samples x channels)
    sample_rate=44100,
    bpm=120,
    spatial_data=np.array(...)  # Optional spatial data
)use bitwave::{BitwaveFile, Metadata, SpatialData};
// Read a Bitwave file
let file = BitwaveFile::read("track.bwx")?;
let metadata = file.metadata();
// Write a Bitwave file
let metadata = Metadata {
    sample_rate: 44100,
    channels: 2,
    duration: 0.0,
    bpm: Some(120.0),
};
let file = BitwaveFile::new(metadata, None, audio_data);
file.write("output.bwx")?;- 🎮 Game Audio Engines (Unity, Unreal, Godot)
- 🎧 VR / AR Experiences
- 🎛️ Live DJ sets with tempo-controlled transitions
- 🎼 Immersive installations & 3D soundscapes
- 📡 Real-time streaming with spatial audio
- CLI tools for encoding/decoding (bwencode,bwdecode)
- Python SDK with NumPy integration
- Plugin support for DAWs (Ableton, FL, Reaper, etc.)
- Cross-platform player with advanced features
-  Core .bwxformat & parser
- Python SDK implementation
- Open source cross-platform player
- Lossless & hybrid compression support
- Realtime tempo-sync with MIDI/OSC
- Plugin SDK for audio software
We're building Bitwave in the open. Feedback, feature requests, and contributors are welcome!
👉 Issues • Discussions
MIT License — use it freely, contribute openly, play it loud.
Built for creators, coders, and cosmic listeners.
→ Bitwave: Redefining the sound of the future.