added CustomBaudRate example (#262)

* added CustomBaudRate example

- added customer baudrate example
- fixed old refs to examples in Doxygen

* fixed compile error for boards that have no Serial
This commit is contained in:
lathoub 2022-01-11 07:24:58 +01:00 committed by GitHub
parent 8f8c7cfcc6
commit 7c0d716641
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 38 additions and 6 deletions

View File

@ -23,6 +23,7 @@ jobs:
- Input - Input
- RPN_NRPN - RPN_NRPN
- SimpleSynth - SimpleSynth
- CustomBaudRate
board: board:
- uno - uno
- due - due

View File

@ -12,7 +12,7 @@
// Examples // Examples
/*! /*!
\example MIDI_Basic_IO.ino \example Basic_IO.ino
This example shows how to perform simple input and output MIDI. \n This example shows how to perform simple input and output MIDI. \n
\n \n
When any message arrives to the Arduino, the LED is turned on, When any message arrives to the Arduino, the LED is turned on,
@ -29,15 +29,15 @@
*/ */
/*! /*!
\example MIDI_Callbacks.ino \example Callbacks.ino
This example shows how to use callbacks for easier MIDI input handling. \n This example shows how to use callbacks for easier MIDI input handling. \n
*/ */
/*! /*!
\example MIDI_Bench.ino \example Bench.ino
\example MIDI_DualMerger.ino \example DualMerger.ino
\example MIDI_Input.ino \example Input.ino
\example MIDI_SimpleSynth.ino \example SimpleSynth.ino
*/ */
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------

View File

@ -0,0 +1,31 @@
#include <MIDI.h>
// Override the default MIDI baudrate to
// a decoding program such as Hairless MIDI (set baudrate to 115200)
struct CustomBaudRate : public MIDI_NAMESPACE::DefaultSettings {
static const long BaudRate = 115200;
};
#if defined(ARDUINO_SAM_DUE) || defined(USBCON) || defined(__MK20DX128__) || defined(__MK20DX256__) || defined(__MKL26Z64__)
// Leonardo, Due and other USB boards use Serial1 by default.
MIDI_CREATE_CUSTOM_INSTANCE(HardwareSerial, Serial1, MIDI, CustomBaudRate);
#else
MIDI_CREATE_CUSTOM_INSTANCE(HardwareSerial, Serial, MIDI, CustomBaudRate);
#endif
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
MIDI.begin(MIDI_CHANNEL_OMNI);
}
void loop() {
if (MIDI.read()) // If we have received a message
{
digitalWrite(LED_BUILTIN, HIGH);
MIDI.sendNoteOn(42, 127, 1); // Send a Note (pitch 42, velo 127 on channel 1)
delay(1000); // Wait for a second
MIDI.sendNoteOff(42, 0, 1); // Stop the note
digitalWrite(LED_BUILTIN, LOW);
}
}