better quality midi

This commit is contained in:
2026-01-31 23:23:36 +01:00
parent 03c0baf5b5
commit dfd024cab7
4 changed files with 78 additions and 46 deletions

View File

@@ -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,
}
}