Add padtest command - tests each pad individually with 3s delay

This commit is contained in:
2026-06-24 04:22:34 +00:00
parent 6ec306bbf7
commit 83e9e29520
+40 -1
View File
@@ -130,7 +130,8 @@ void handle_serial_command(const String& cmd) {
Serial.println(" gpiotest - raw GPIO pin diagnostic");
Serial.println(" rawled - bit-bang WS2812 (no library)");
Serial.println(" anim - re-run startup animation from loop");
Serial.println(" miditest - simulate MIDI IN for common Launchpad layouts");
Serial.println(" miditest - simulate MIDI IN for common Launchpad layouts (fast)");
Serial.println(" padtest - test each pad individually (3s per pad, slow)");
Serial.println(" mapping - show current pad->note mapping");
} else if (cmd == "anim") {
Serial.println("[CMD] Running animation...");
@@ -272,6 +273,44 @@ void handle_serial_command(const String& cmd) {
controller.process_midi_event(event);
Serial.println("[CMD] MIDI test complete");
} else if (cmd == "padtest") {
Serial.println("[CMD] Testing each pad individually (3s each)...");
// Test Launchpad X mapping (notes 36-45, ch1)
Serial.println("[CMD] Layout: Launchpad X (notes 36-45, ch1)");
for (int i = 0; i < 10; i++) {
Serial.printf("[CMD] Pad %d: note=%d ch=1\n", i, 36+i);
MidiEvent event;
event.type = MidiEvent::NOTE_ON;
event.channel = 1;
event.data1 = 36 + i;
event.data2 = 64;
controller.process_midi_event(event);
vTaskDelay(pdMS_TO_TICKS(3000));
event.type = MidiEvent::NOTE_OFF;
event.data2 = 0;
controller.process_midi_event(event);
vTaskDelay(pdMS_TO_TICKS(500));
}
// Test Launchpad Mini mapping (notes 0-9, ch1)
Serial.println("[CMD] Layout: Launchpad Mini (notes 0-9, ch1)");
for (int i = 0; i < 10; i++) {
Serial.printf("[CMD] Pad %d: note=%d ch=1\n", i, i);
MidiEvent event;
event.type = MidiEvent::NOTE_ON;
event.channel = 1;
event.data1 = i;
event.data2 = 64;
controller.process_midi_event(event);
vTaskDelay(pdMS_TO_TICKS(3000));
event.type = MidiEvent::NOTE_OFF;
event.data2 = 0;
controller.process_midi_event(event);
vTaskDelay(pdMS_TO_TICKS(500));
}
Serial.println("[CMD] Pad test complete");
} else if (cmd == "mapping") {
Serial.println("[CMD] Current pad mapping:");
for (int i = 0; i < 10; i++) {