       Serial.print(" ");
       Serial.println(beep_time);
       Serial.send_now();
+    } else if (cmd == CMD_MIDI) {
+      midi.t = 0;
+      midi.count = 0;
+      midi.probe = true;
+      midi.autosend = true;
+      send_ack(CMD_MIDI);
     } else if (cmd == CMD_NOTE) {
       long note_time = time_us;
       usbMIDI.sendNoteOn(60, 99, 1);

  char tag;
};

#define TRIGGER_COUNT 4
struct trigger laser, screen, sound, gshock, zero_trigger, copy_trigger;
struct trigger * triggers[TRIGGER_COUNT] = {&laser, &screen, &sound, &gshock};

#define CLOCK_SYNC_N 9
struct clock_sync {

    }
  }

  // Probe MIDI
  if(midi.probe) {
    if(usbMIDI.read()) {
      midi.t = time_us;
      midi.count++;
      midi.probe = false;
      led_state = !led_state;
    }
  }

  // Probe screen
  if (screen.probe) {
    int v = analogRead(PD_SCREEN_PIN);
