Name Description Size
any_object.rs 5137
client.rs 12428
device.rs 771
endpoints
entity.rs 774
events.rs 17377
lib.rs ! This is a [CoreMIDI](https://developer.apple.com/documentation/coremidi) library for Rust built on top of the low-level bindings [coremidi-sys](https://github.com/jonas-k/coremidi-sys). CoreMIDI is a macOS framework that provides APIs for communicating with MIDI (Musical Instrument Digital Interface) devices, including hardware keyboards and synthesizers. This library preserves the fundamental concepts behind the CoreMIDI framework, while being Rust idiomatic. This means that if you already know CoreMIDI, you will find very easy to start using it. Please see the [examples](https://github.com/chris-zen/coremidi/tree/master/examples) for getting an idea of how it looks like, but if you are eager to see an example, this is how you would send some note: ```rust,no_run use coremidi::{Client, Destination, EventBuffer, Protocol}; use std::time::Duration; use std::thread; fn main() { let client = coremidi::Client::new("example-client").unwrap(); let output_port = client.output_port("example-port").unwrap(); let destination = Destination::from_index(0).unwrap(); let note_on = EventBuffer::new(Protocol::Midi10).with_packet(0, &[0x2090407f]); let note_off = EventBuffer::new(Protocol::Midi10).with_packet(0, &[0x2080407f]); output_port.send(&destination, &note_on).unwrap(); thread::sleep(Duration::from_millis(1000)); output_port.send(&destination, &note_off).unwrap(); } ``` If you are looking for a portable MIDI library then you can look into: - [midir](https://github.com/Boddlnagg/midir) (which is using this lib) - [portmidi-rs](https://github.com/musitdev/portmidi-rs) For handling low level MIDI data you may look into: - [midi-rs](https://github.com/samdoshi/midi-rs) - [rimd](https://github.com/RustAudio/rimd) 3962
notifications.rs 12436
object.rs 2855
packets.rs 18646
ports.rs 7087
properties.rs 22352
protocol.rs 1456