Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Boddlnagg/midir
Cross-platform realtime MIDI processing in Rust.
https://github.com/Boddlnagg/midir
audio cross-platform library midi rust rust-bindings
Last synced: about 1 month ago
JSON representation
Cross-platform realtime MIDI processing in Rust.
- Host: GitHub
- URL: https://github.com/Boddlnagg/midir
- Owner: Boddlnagg
- License: mit
- Created: 2015-08-08T08:51:13.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-10-18T15:11:06.000Z (2 months ago)
- Last Synced: 2024-10-31T11:47:54.207Z (about 2 months ago)
- Topics: audio, cross-platform, library, midi, rust, rust-bindings
- Language: Rust
- Size: 296 KB
- Stars: 622
- Watchers: 11
- Forks: 77
- Open Issues: 36
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# midir [![crates.io](https://img.shields.io/crates/v/midir.svg)](https://crates.io/crates/midir) [![Build Status](https://dev.azure.com/Boddlnagg/midir/_apis/build/status/Boddlnagg.midir?branchName=master)](https://dev.azure.com/Boddlnagg/midir/_build/latest?definitionId=1)
Cross-platform, realtime MIDI processing in Rust.
## Features
**midir** is inspired by [RtMidi](https://github.com/thestk/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:
- [x] ALSA (Linux)
- [x] WinMM (Windows)
- [x] CoreMIDI (macOS, iOS (untested))
- [x] WinRT (Windows 8+), enable the `winrt` feature
- [x] Jack (Linux, macOS), enable the `jack` feature
- [x] Web MIDI (Chrome, Opera, perhaps others browsers)A higher-level API for parsing and assembling MIDI messages might be added in the future.
## Documentation & Example
API docs can be found at [docs.rs](https://docs.rs/crate/midir/). You can find some examples in the [`examples`](examples/) directory. Or simply run `cargo run --example test_play` after cloning this repository.