Skip to content

Commit

Permalink
added CustomBaudRate example (#262)
Browse files Browse the repository at this point in the history
* added CustomBaudRate example

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

* fixed compile error for boards that have no Serial
  • Loading branch information
lathoub committed Jan 11, 2022
1 parent 8f8c7cf commit 7c0d716
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 6 deletions.
1 change: 1 addition & 0 deletions .github/workflows/platformio.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ jobs:
- Input
- RPN_NRPN
- SimpleSynth
- CustomBaudRate
board:
- uno
- due
Expand Down
12 changes: 6 additions & 6 deletions doc/midi_DoxygenMainPage.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
// Examples

/*!
\example MIDI_Basic_IO.ino
\example Basic_IO.ino
This example shows how to perform simple input and output MIDI. \n
\n
When any message arrives to the Arduino, the LED is turned on,
Expand All @@ -29,15 +29,15 @@
*/

/*!
\example MIDI_Callbacks.ino
\example Callbacks.ino
This example shows how to use callbacks for easier MIDI input handling. \n
*/

/*!
\example MIDI_Bench.ino
\example MIDI_DualMerger.ino
\example MIDI_Input.ino
\example MIDI_SimpleSynth.ino
\example Bench.ino
\example DualMerger.ino
\example Input.ino
\example SimpleSynth.ino
*/

// -----------------------------------------------------------------------------
Expand Down
31 changes: 31 additions & 0 deletions examples/CustomBaudRate/CustomBaudRate.ino
Original file line number Diff line number Diff line change
@@ -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);
}
}

0 comments on commit 7c0d716

Please sign in to comment.