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