midi-io
A portable library for encoding, sending, decoding and streaming MIDI
Features
- Send and receive strongly-typed MIDI 1 messages
- Async-first API with any runtime
- Receive messages as individual streams: MIDI, SysEx, backend notifications, errors
- Connection management: receive and react to connection/disconnection event notifications
Supported Platforms
| OS | Platform | Library |
|---|---|---|
| macOS 10.15+ | CoreMIDI | coremidi |
| iOS 15+ | CoreMIDI | coremidi |
| Linux 3.x+ | ALSA sequencer | alsa |
If you need a platform that isn't yet supported, check out midir.
Example
Connect to the first MIDI source and print every message as it arrives:
use Client;
async
See examples for more.
Installation
For codec-only use, disable default features:
midi-io = { version = "0.1", default-features = false }.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.