Fix midi_tick_count declaration and 0xF8 detection: add proper extern + transport clock parsing
This commit is contained in:
@@ -3,6 +3,8 @@
|
||||
#include <cstdint>
|
||||
#include <functional>
|
||||
|
||||
extern volatile uint32_t midi_tick_count;
|
||||
|
||||
struct MidiEvent {
|
||||
enum Type {
|
||||
NOTE_ON,
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
#include <Arduino.h>
|
||||
#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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user