Enum midi_msg::MidiMsg[][src]

pub enum MidiMsg {
    ChannelVoice {
        channel: Channel,
        msg: ChannelVoiceMsg,
    },
    RunningChannelVoice {
        channel: Channel,
        msg: ChannelVoiceMsg,
    },
    ChannelMode {
        channel: Channel,
        msg: ChannelModeMsg,
    },
    RunningChannelMode {
        channel: Channel,
        msg: ChannelModeMsg,
    },
    SystemCommon {
        msg: SystemCommonMsg,
    },
    SystemRealTime {
        msg: SystemRealTimeMsg,
    },
    SystemExclusive {
        msg: SystemExclusiveMsg,
    },
}

The primary interface of this library. Used to encode MIDI messages.

Variants

ChannelVoice

Channel-level messages that act on a voice, such as turning notes on and off.

Fields of ChannelVoice

channel: Channelmsg: ChannelVoiceMsg
RunningChannelVoice

Like ChannelVoice, but with the first “status” byte of the message omitted. When these “running status” messages are sent, the receiver must treat them as implicitly referring to the previous “status” received.

For instance, if a ChannelVoiceMsg::NoteOn message is received, and then the next message does not contain a status byte, it implicitly refers to a ChannelVoiceMsg::NoteOn.

Fields of RunningChannelVoice

channel: Channelmsg: ChannelVoiceMsg
ChannelMode

Channel-level messages that should alter the mode of the receiver.

Fields of ChannelMode

channel: Channelmsg: ChannelModeMsg
RunningChannelMode

Like RunningChannelVoice but for ChannelMode

Fields of RunningChannelMode

channel: Channelmsg: ChannelModeMsg
SystemCommon

A fairly limited set of messages, generally for device synchronization.

Fields of SystemCommon

msg: SystemCommonMsg
SystemRealTime

Another limited set of messages used for device synchronization.

Fields of SystemRealTime

msg: SystemRealTimeMsg
SystemExclusive

The bulk of the MIDI spec lives here, in “Universal System Exclusive” messages. Also the home of manufacturer-specific messages.

Fields of SystemExclusive

msg: SystemExclusiveMsg

Implementations

impl MidiMsg[src]

pub fn to_midi(&self) -> Vec<u8>[src]

Turn a MidiMsg into a series of bytes.

pub fn from_midi(m: &[u8]) -> Result<(Self, usize), ParseError>[src]

Turn a series of bytes into a MidiMsg.

Ok results return a MidiMsg and the number of bytes consumed from the input.

pub fn from_midi_with_context(
    m: &[u8],
    ctx: &mut ReceiverContext
) -> Result<(Self, usize), ParseError>
[src]

Turn a series of bytes into a MidiMsg, given a ReceiverContext.

Consecutive messages that relate to each other will be collapsed into one MidiMsg. E.g. a ChannelVoiceMsg::ControlChange where the CC is the MSB and LSB of ControlChange::Volume will turn into a single ControlChange::Volume with both bytes turned into one. Use MidiMsg::from_midi_with_context_no_extensions to disable this behavior.

The ReceiverContext is also used to track the current TimeCode as sent through SystemCommonMsg::TimeCodeQuarterFrame messages, or UniversalRealTimeMsg::TimeCodeFull messages.

Ok results return a MidiMsg and the number of bytes consumed from the input.

pub fn from_midi_with_context_no_extensions(
    m: &[u8],
    ctx: &mut ReceiverContext
) -> Result<(Self, usize), ParseError>
[src]

Like MidiMsg::from_midi_with_context but does not turn multiple related consecutive messages into one MidiMsg.

pub fn messages_to_midi(msgs: &[Self]) -> Vec<u8>[src]

Turn a set of MidiMsgs into a series of bytes, with fewer allocations than repeatedly concatenating the results of to_midi.

pub fn extend_midi(&self, v: &mut Vec<u8>)[src]

Given a Vec<u8>, append this MidiMsg to it.

Trait Implementations

impl Clone for MidiMsg[src]

impl Debug for MidiMsg[src]

impl PartialEq<MidiMsg> for MidiMsg[src]

impl StructuralPartialEq for MidiMsg[src]

Auto Trait Implementations

impl RefUnwindSafe for MidiMsg

impl Send for MidiMsg

impl Sync for MidiMsg

impl Unpin for MidiMsg

impl UnwindSafe for MidiMsg

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.