Cross-platform, realtime MIDI processing in Rust.
midir is inspired by RtMidi and supports the same features*, including virtual ports (except on Windows) and full SysEx support โ but with a rust-y API!
* With the exception of message queues, but these can be implemented on top of callbacks using e.g. Rust's channels.
midir currently supports the following platforms/backends:
- ALSA (Linux)
- WinMM (Windows)
- CoreMIDI (macOS, iOS (untested))
- WinRT (Windows 8+), enable the
winrt
feature - Jack (Linux, macOS), enable the
jack
feature
A higher-level API for parsing and assembling MIDI messages might be added in the future.
API docs can be found at docs.rs. You can find some examples in the examples
directory. Or simply run cargo run --example test_play
after cloning this repository.