Midir
Cross-platform realtime MIDI processing in Rust.
Install / Use
/learn @Boddlnagg/MidirREADME
midir 
Cross-platform, realtime MIDI processing in Rust.
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!
<sup>* With the exception of message queues, but these can be implemented on top of callbacks using e.g. Rust's channels.</sup>
midir currently supports the following platforms/backends:
- [x] ALSA (Linux)
- [x] WinMM (Windows)
- [x] CoreMIDI (macOS, iOS)
- [x] WinRT (Windows 8+), enable the
winrtfeature - [x] Jack (Linux, macOS), enable the
jackfeature - [x] Web MIDI (Chrome, Opera, perhaps others browsers)
- [x] Android (API 29+, NDK AMidi + JNI)
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.
Android
- Requires Android API 29+ and the Android NDK (r20b+).
- Build (example, to remove before merging):
- Install:
cargo install cargo-ndk - Targets:
rustup target add aarch64-linux-android - Build:
cargo ndk -t arm64-v8a -o ./app/src/main/jniLibs build --release
- Install:
- Permissions/features:
- Manifest should declare
<uses-feature android:name="android.software.midi" android:required="false" />(not needed for USB/BLE MIDI).
- Manifest should declare
Related Skills
himalaya
349.0kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
taskflow
349.0kname: taskflow description: Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layer
qqbot-channel
349.0kQQ 频道管理技能。查询频道列表、子频道、成员、发帖、公告、日程等操作。使用 qqbot_channel_api 工具代理 QQ 开放平台 HTTP 接口,自动处理 Token 鉴权。当用户需要查看频道、管理子频道、查询成员、发布帖子/公告/日程时使用。
docs-writer
100.3k`docs-writer` skill instructions As an expert technical writer and editor for the Gemini CLI project, you produce accurate, clear, and consistent documentation. When asked to write, edit, or revie
