Mackie-Control-Universal-Reverse-Engineering
Sketch that reads the MIDI input from the USB MIDI Interface and prints it to the Serial monitor, including the Mackie Control Universal note names.
This is useful to discover what kinds of messages your DAW is sending.
- Boards: 🛈
- AVR, AVR USB, Nano Every, Due, Nano 33 IoT, Nano 33 BLE, UNO R4, Pi Pico, Teensy 3.x, ESP32, ESP8266
Serial << hex <<
cm.header <<
' ' <<
cm.data1 <<
' ' <<
cm.data2 << dec
<< F(
" on cable ") <<
cm.cable.getOneBased() <<
endl;
} else {
Serial << hex <<
cm.header <<
' ' <<
cm.data1 <<
' ' <<
cm.data2 << dec
<< F(
" on cable ") <<
cm.cable.getOneBased() <<
endl;
}
return false;
}
Serial << F(
"System Exclusive message: [") <<
se.length <<
"] "
<< F(
" on cable ") <<
se.cable.getOneBased() <<
endl;
return false;
}
Serial <<
F(
"System Common message: ") << hex <<
sc.getMessageType();
if (
sc.getNumberOfDataBytes() >= 1)
if (
sc.getNumberOfDataBytes() >= 2)
Serial << dec <<
F(
" on cable ") <<
sc.cable.getOneBased() <<
endl;
return false;
}
Serial <<
F(
"Real-Time: ") << hex <<
rt.message << dec <<
F(
" on cable ")
<<
rt.cable.getOneBased() <<
endl;
return false;
}
sysExMessageCallback,
sysCommonMessageCallback,
realTimeMessageCallback);
}
void loop() {
}
The main header file that includes all Control-Surface header files.
Control_Surface_ & Control_Surface
A predefined instance of the Control Surface to use in the Arduino sketches.
MIDIMessageType
All possible MIDI status byte values (without channel).
@ NoteOn
Note On Channel Voice message (3B).
@ NoteOff
Note Off Channel Voice message (3B).
void setMIDIInputCallbacks(ChannelMessageCallback channelMessageCallback, SysExMessageCallback sysExMessageCallback, SysCommonMessageCallback sysCommonMessageCallback, RealTimeMessageCallback realTimeMessageCallback)
Set the MIDI input callbacks.
void begin()
Initialize the Control_Surface.
void loop()
Update all MIDI elements, send MIDI events and read MIDI input.
A class for MIDI interfaces sending MIDI messages over a USB MIDI connection.
Array< T, N > copyAs(const Array< U, N > &src)
Copy an Array to an Array of a different type.
Print & endl(Print &printer)
FlashString_t getMCUNameFromNoteNumber(uint8_t note)
Convert a note number to the name of the corresponding Mackie Control Universal function.