[][src]Crate midi_control

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
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