From ec0cdc9438b44d4136a38449ba8006ad657aaff8 Mon Sep 17 00:00:00 2001 From: Ashley Strahle Date: Fri, 3 Jul 2026 07:04:40 +0000 Subject: [PATCH] Fix midi_tick_count declaration and 0xF8 detection: add proper extern + transport clock parsing --- include/midi_transport.h | 2 ++ src/midi_transport.cpp | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/include/midi_transport.h b/include/midi_transport.h index c38cff0..e2c8ece 100644 --- a/include/midi_transport.h +++ b/include/midi_transport.h @@ -3,6 +3,8 @@ #include #include +extern volatile uint32_t midi_tick_count; + struct MidiEvent { enum Type { NOTE_ON, diff --git a/src/midi_transport.cpp b/src/midi_transport.cpp index 8276b18..a6fa11f 100644 --- a/src/midi_transport.cpp +++ b/src/midi_transport.cpp @@ -2,6 +2,8 @@ #include #include "Adafruit_TinyUSB.h" +volatile uint32_t midi_tick_count = 0; + static Adafruit_USBD_MIDI usb_midi; UsbMidiTransport::UsbMidiTransport() : initialized(false) { @@ -51,6 +53,12 @@ void UsbMidiTransport::update() { while (usb_midi.available()) { uint8_t packet[4]; if (usb_midi.readPacket(packet)) { + uint8_t cin = packet[0] & 0x0F; + if (cin == 0x0F && packet[1] == 0xF8) { + midi_tick_count++; + continue; + } + MidiEvent event; parse_midi_packet(packet, 4, event);