MIDI note or control change

2 min read · updated 23 Jul 2026

Suits MIDI-capable studio consoles, button panels and class-compliant USB MIDI controllers.

ControlGuidance
DeviceSelect the MIDI input presented by the controller, console or USB MIDI device. If no inputs are listed, verify the device in Windows and restart BroadcastLogger after connecting it.
ChannelChoose the transmitting MIDI channel, or any while testing. MIDI channel numbering displayed by hardware may begin at 1.
Note / CCEnter the note number or control-change number to monitor. 60 is commonly known as Middle C when used as a note.
Run-onAdds a short tail after the release, Note Off or zero-value control state so the final audio is retained.

Basic Arduino example

Use a board that can appear as a class-compliant USB MIDI device, such as many Leonardo, Micro, Pro Micro or native-USB boards, with a compatible MIDIUSB library. This example sends Note On 60 while the button is pressed and Note Off 60 when released.

#include "MIDIUSB.h"
const int pin = 2;
bool lastState = false;

void sendTrigger(bool on) {
  byte status = on ? 0x90 : 0x80;
  midiEventPacket_t e = {byte(status >> 4), status,
                         60, byte(on ? 127 : 0)};
  MidiUSB.sendMIDI(e); MidiUSB.flush();
}

void setup() { pinMode(pin, INPUT_PULLUP); }

void loop() {
  bool on = (digitalRead(pin) == LOW);
  if (on != lastState) {
    sendTrigger(on); lastState = on; delay(25);
  }
}

Select the Arduino MIDI device, choose channel 1 or any, and set Note / CC to 60.

Some basic Uno or Nano boards do not present as native USB MIDI devices without additional firmware or hardware.

Was this page helpful?

Still stuck? Ask in the community forum .