https://github.com/polygon/midimaxe
Synchronizes everything
https://github.com/polygon/midimaxe
Last synced: 11 months ago
JSON representation
Synchronizes everything
- Host: GitHub
- URL: https://github.com/polygon/midimaxe
- Owner: polygon
- License: gpl-3.0
- Created: 2024-05-08T23:23:14.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-01T13:34:02.000Z (over 1 year ago)
- Last Synced: 2025-06-23T19:11:31.973Z (12 months ago)
- Language: Rust
- Size: 97.7 KB
- Stars: 11
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Midimaxe
MIDI master clock for the synthie jam session
[](https://asciinema.org/a/EvLaL88JvkaVTNHCR4e7L5J2I)
## Introduction
Midimaxe is a MIDI master clock for multiple MIDI devices. Clients can join and leave during a session. Clients joining late will be started precisely at a multiple of a definable Quantum (usually 1, 4, 8, or 16 bars).
It also comes with a beat and quantum display that can be put on a screen in the session room. No one has an excuse not to play on the correct beat now.
## Motivation
I regularly join a synthesizer jam session where I used my DAW (Bitwig Studio) to synchronize all the hardware synths and laptops. This turned out problematic sometimes. Loading a particularly CPU intensive patch could desync the whole session. People join and leave during the session, cables get janked out, people press the wrong button on their device, usually requiring a full restart to get everything back in sync. I wanted a sync solution that could:
* Provide a synchronized MIDI clock to many connected USB MIDI devices
* Allow devices to join and leave during the session
* Joining devices do so at a specified quantum (e.g. 4, 8, 16 bars)
This will allow resuming single devices that lost synchronization without stopping the whole session.
## Building
Install Rust by your preferred means. Then build as usual:
```
cargo build --release
cargo run --bin midimaxe --release
cargo run --bin sync_checker --release
```