Files
loopy_midi_controller/src/main.cpp
T
ash 4d81386f78 Fix USB MIDI, add LED startup animation, improve logging
- Use ArduinoUSBMIDI library for proper USB MIDI device recognition
- Add LED startup colour cycle (red, green, blue, yellow, magenta, cyan, white)
- Add comprehensive console logging for all MIDI in/out and switch events
- Log unmapped MIDI messages
2026-06-23 13:06:57 +00:00

62 lines
1.4 KiB
C++

// Loopy MIDI Controller - Phase 1
// ESP32-S3 USB MIDI Foot Controller
#include <Arduino.h>
#include "midi_transport.h"
#include "led_stub.h"
#include "switch_stub.h"
#include "app_task.h"
DefaultLedStub led_driver;
DefaultSwitchStub switch_driver;
UsbMidiTransport midi_transport;
AppTask controller(&led_driver, &switch_driver, &midi_transport);
TaskHandle_t midi_task_handle = NULL;
void midi_task(void* parameter) {
Serial.println("[TASK] MIDI task started on core 0");
while (true) {
midi_transport.update();
vTaskDelay(1);
}
}
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println("=================================");
Serial.println(" Loopy MIDI Controller v0.1");
Serial.println(" Phase 1: USB MIDI");
Serial.println("=================================");
led_driver.begin();
switch_driver.begin();
midi_transport.begin();
controller.begin();
xTaskCreatePinnedToCore(
midi_task,
"midi_task",
4096,
NULL,
3,
&midi_task_handle,
0
);
Serial.println("=================================");
Serial.println(" All systems ready");
Serial.println(" Waiting for USB connection...");
Serial.println("=================================");
}
void loop() {
controller.update();
delay(10);
}