Cross-platform realtime MIDI processing in Rust.
Перейти к файлу
Gabriele Svelto 85156e360a
Merge pull request #8 from glandium/alsa
Upgrade alsa to 0.8
2023-09-29 09:37:25 +02:00
examples WebMIDI Example: Prompt user if multiple inputs are available (#65) 2020-08-01 09:26:28 +02:00
src Upgrade bitflags to version 2 2023-09-08 06:15:52 +09:00
tests Fix wasm-pack test, disable test_forward/systex. 2019-09-17 18:55:40 +02:00
.gitignore Fixes for latest nightly 2015-10-21 11:23:04 +02:00
CHANGELOG.md Add a changelog 2020-11-09 17:08:34 +01:00
Cargo.toml Merge pull request #8 from glandium/alsa 2023-09-29 09:37:25 +02:00
LICENSE Added license (MIT) 2015-08-10 13:23:11 +02:00
README.md Changes required for vendoring the midir crate into mozilla-central 2021-09-28 10:23:03 +02:00
azure-pipelines-template.yml Test WebMIDI backend in CI 2019-09-17 19:31:40 +02:00
azure-pipelines.yml Migrate Azure Pipelines configuration to ubuntu-latest 2021-08-28 15:53:20 +02:00

README.md

midir crates.io Build Status

Cross-platform, realtime MIDI processing in Rust. This is a friendly fork with small changes required for vendoring the crate in Firefox. It will go away as soon as we will be able to vendor the upstream crate.

Features

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
  • 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. You can find some examples in the examples directory. Or simply run cargo run --example test_play after cloning this repository.