Midi encoding and decoding library.
```rust use std::convert::TryFrom;
// Decoding messages from bytes. fn handlemidimessage(bytes: &[u8]) -> Result<(), wmidi::FromBytesError> { let message = wmidi::MidiMessage::tryfrom(bytes)?; if let wmidi::MidiMessage::NoteOn(, note, val) = message { let volume = u8::from(val) as u8 / 127.0; println!("Singing {} at volume {}", note, volume); } Ok(()) }
// Encoding messages to bytes.
fn miditobytes(message: wmidi::MidiMessage<'>) -> Vec
no_std
environments.MidiMessage
, except for MidiMessage::OwnedSysEx
.cargo build
.cargo test
.cargo bench
. The results will be under ./target/criterion/report/index.html
.MidiMessage::wire_size()
to MidiMessage::bytes_size()
.MidiMessage::copy_to_slice()
method.Note::try_from
and u8::from
.