Enum midi_msg::MidiMsg [−][src]
The primary interface of this library. Used to encode MIDI messages.
Variants
Channel-level messages that act on a voice, such as turning notes on and off.
Fields of ChannelVoice
channel: Channel
msg: ChannelVoiceMsg
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: Channel
msg: ChannelVoiceMsg
Channel-level messages that should alter the mode of the receiver.
Fields of ChannelMode
channel: Channel
msg: ChannelModeMsg
Like RunningChannelVoice
but for ChannelMode
Fields of RunningChannelMode
channel: Channel
msg: ChannelModeMsg
A fairly limited set of messages, generally for device synchronization.
Fields of SystemCommon
msg: SystemCommonMsg
Another limited set of messages used for device synchronization.
Fields of SystemRealTime
msg: SystemRealTimeMsg
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]
m: &[u8],
ctx: &mut ReceiverContext
) -> Result<(Self, usize), ParseError>
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]
m: &[u8],
ctx: &mut ReceiverContext
) -> Result<(Self, usize), ParseError>
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 MidiMsg
s 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]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,