Browse Source

main_osp.cc - Log MIDI msg in midi_dispatch directly. stop using buffered MidiLoggerBuffered for that.

MidiLoggerBuffered only for realtime msg's handled in ISR.
master
heck 8 months ago
parent
commit
ae95e03792
  1. 25
      src/main_osp.cc

25
src/main_osp.cc

@ -169,21 +169,33 @@ namespace Heck::OSP {
{
switch (msg.type) {
case ld::MidiMessageType::NoteOn: {
ld::DaisySeed::PrintLine(
"MIDI from seq=%i : NOTE - ch: %i, nr: %i, val: %i",
from_seq,
msg.channel,
msg.AsNoteOn().note,
msg.AsNoteOn().velocity);
if (msg.channel >= 0 && msg.channel < Constants::TRACK_COUNT) {
tracks[msg.channel].trigger();
}
} break;
case ld::MidiMessageType::ControlChange: {
ld::ControlChangeEvent cc = msg.AsControlChange();
ld::DaisySeed::PrintLine(
"MIDI from seq=%i : CC - ch: %i, nr: %i, val: %i",
from_seq,
msg.channel,
msg.AsControlChange().control_number,
msg.AsControlChange().value);
const ld::ControlChangeEvent cc = msg.AsControlChange();
if (State::clear_mode && !from_seq) {
ld::ControlChangeEvent cc = msg.AsControlChange();
ld::DaisySeed::PrintLine("Clear: ch: %i, cc: %i", cc.channel, cc.control_number);
sequencer.clear_track_cc(cc.channel, cc.control_number);
} else {
if (!from_seq) {
sequencer.midi_in(msg);
}
float val_normalized = cc.value / 127.;
const float val_normalized = cc.value / 127.;
switch (cc.control_number) {
// Pots
case Constants::MIDI_Mapping::TRACK_PITCH:
@ -225,6 +237,10 @@ namespace Heck::OSP {
}
} break;
default: {
ld::DaisySeed::PrintLine(
"UNHANDLED MIDI UNHANDLED MIDI from seq=%i : CC - ch: %i",
from_seq,
msg.channel);
// Other MIDI message
} break;
}
@ -234,9 +250,6 @@ namespace Heck::OSP {
{
while (midi.HasEvents()) {
ld::MidiEvent msg = midi.PopEvent();
if constexpr (Constants::Developer::LOG_MIDI_UART_POLLING) {
logger_midi.push(msg);
}
midi_dispatch(msg, false);
}
}

Loading…
Cancel
Save