Crate midi_control
source ·Expand description
MIDI control is a crate to allow creating MIDI message to control MIDI messages.
Example
To simply prepare a Note On message for note 60 (Middle C) at maximum velocity:
use midi_control::*;
let message = midi_control::note_on(Channel::Ch1, 60, 127);
let buffer: Vec<u8> = message.into();
/* send the buffer to your MIDI device */
If you have the transport
feature enabled, you can use midir directly
to send the same message.
use midi_control::*;
use midi_control::transport::MidiMessageSend; // to use the trait
let message = midi_control::note_on(Channel::Ch1, 60, 127);
// midi_out is a midir::MidiOutputConnection
midi_out.send_message(message);
Re-exports
pub use crate::message::Channel;
pub use crate::message::ControlEvent;
pub use crate::message::KeyEvent;
pub use crate::message::MidiMessage;
pub use crate::message::SysExEvent;
pub use crate::note::MidiNote;
pub use crate::transport::MidiMessageSend;
Modules
- Constants for dealing with midi events. Currently, only channel events are supported.
- MIDI messages
- Utilities to handle MIDI notes.
- System Exclusive specific
- Transport for MIDI
- Vendor specific MIDI support.
Functions
- Create a Channel Pressure message
- Create a Control Change message
- Create a non Realtime Universal SysEx message.
- Create a Note Off message
- Create a Note On message
- Create a Pitch Bend message
- Create a Poly Key Pressure message
- Create a Program Change message