#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Message {
ChannelVoice {
channel: u8,
message: ChannelVoiceMessage,
},
SystemCommon(SystemCommonMessage),
RealTime(RealTimeMessage),
SystemExclusive,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ChannelVoiceMessage {
NoteOff { note: u8, velocity: u8 },
NoteOn { note: u8, velocity: u8 },
PolyphonicPressure { note: u8, pressure: u8 },
ControlChange { control: u8, value: u8 },
ProgramChange { program: u8 },
ChannelPressure { pressure: u8 },
PitchBend { pitch_bend: u16 },
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum SystemCommonMessage {
MTCQuarterFrame { data: u8 },
SongPositionPointer { low: u8, high: u8 },
SongSelect { song: u8 },
Undefined1,
Undefined2,
TuneRequest,
EOX,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum RealTimeMessage {
TimingClock,
Undefined1,
Start,
Continue,
Stop,
Undefined2,
ActiveSensing,
SystemReset,
}