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§

consts
Constants for dealing with midi events. Currently, only channel events are supported.
message
MIDI messages
note
Utilities to handle MIDI notes.
sysex
System Exclusive specific
transport
Transport for MIDI
vendor
Vendor specific MIDI support.

Functions§

channel_pressure
Create a Channel Pressure message
control_change
Create a Control Change message
non_rt_usysex
Create a non Realtime Universal SysEx message.
note_off
Create a Note Off message
note_on
Create a Note On message
pitch_bend
Create a Pitch Bend message
poly_key_pressure
Create a Poly Key Pressure message
program_change
Create a Program Change message