better quality midi
This commit is contained in:
@@ -56,6 +56,13 @@ pub enum MidiCommand {
|
||||
NoteOn { channel: u8, note: u8, velocity: u8 },
|
||||
NoteOff { channel: u8, note: u8 },
|
||||
CC { channel: u8, cc: u8, value: u8 },
|
||||
PitchBend { channel: u8, value: u16 },
|
||||
Pressure { channel: u8, value: u8 },
|
||||
ProgramChange { channel: u8, program: u8 },
|
||||
Clock,
|
||||
Start,
|
||||
Stop,
|
||||
Continue,
|
||||
}
|
||||
|
||||
pub enum SeqCommand {
|
||||
@@ -1049,6 +1056,28 @@ fn parse_midi_command(cmd: &str) -> Option<(MidiCommand, Option<f64>)> {
|
||||
None,
|
||||
))
|
||||
}
|
||||
"bend" => {
|
||||
// /midi/bend/<value>/chan/<chan>
|
||||
let value: u16 = parts.get(2)?.parse().ok()?;
|
||||
let chan: u8 = parts.get(4)?.parse().ok()?;
|
||||
Some((MidiCommand::PitchBend { channel: chan, value }, None))
|
||||
}
|
||||
"pressure" => {
|
||||
// /midi/pressure/<value>/chan/<chan>
|
||||
let value: u8 = parts.get(2)?.parse().ok()?;
|
||||
let chan: u8 = parts.get(4)?.parse().ok()?;
|
||||
Some((MidiCommand::Pressure { channel: chan, value }, None))
|
||||
}
|
||||
"program" => {
|
||||
// /midi/program/<value>/chan/<chan>
|
||||
let program: u8 = parts.get(2)?.parse().ok()?;
|
||||
let chan: u8 = parts.get(4)?.parse().ok()?;
|
||||
Some((MidiCommand::ProgramChange { channel: chan, program }, None))
|
||||
}
|
||||
"clock" => Some((MidiCommand::Clock, None)),
|
||||
"start" => Some((MidiCommand::Start, None)),
|
||||
"stop" => Some((MidiCommand::Stop, None)),
|
||||
"continue" => Some((MidiCommand::Continue, None)),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user