Peer-to-peer music collaboration system enabling real-time jamming over the internet using Iroh networking, OSC/MIDI protocols, and audio synthesis.
- P2P networking with automatic NAT traversal
- Multiple inputs: keyboard, MIDI files, MIDI devices
- Custom waveform synthesis + optional SoundFont rendering
- Bidirectional mode for collaborative jam sessions
- End-to-end encrypted via QUIC
- Cross-platform (Windows, macOS, Linux)
cargo build --release1. Start receiver:
cargo run --release --bin osc-receiver
# Copy the ticket that appears2. Connect with sender:
cargo run --release --bin osc-sender "<ticket>"1. Start receiver:
cargo run --release --bin midi-receiver
# Copy the ticket that appears2. Connect with sender:
cargo run --release --bin midi-sender "<ticket>"
# Options: MIDI playback (place .mid files in assets/) or connect to MIDI output device1. Start host:
cargo run --release --bin osc-peer host
# Copy the ticket that appears2. Connect peer:
cargo run --release --bin osc-peer connect "<ticket>"Notes:
A S D F G H J K- Lower octave (C4-C5)Q W E R T Y U I- Upper octave (C5-C6)
Instruments:
1-4- Custom synths (Piano, Organ, Strings, Bass)1-8- SoundFont instruments (requires SoundFont setup)
Controls:
O/L- Octave up/downM/N- Volume up/downESC- Quit
For realistic instruments (keys 1-8):
- Download a SoundFont (FluidR3_GM.sf2)
- Place in
assets/ - Build with SoundFont support:
cargo build --release --features soundfont