Test program for MIDI Library (Nucleo F446RE)

Dependencies:   MIDI mbed

Committer:
ryood
Date:
Fri May 04 22:10:20 2018 +0000
Revision:
1:2380cb43b3ae
Parent:
0:418e035ba7e9
first MIDI OUT

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ryood 0:418e035ba7e9 1 #include "mbed.h"
ryood 0:418e035ba7e9 2 #include "MIDI.h"
ryood 0:418e035ba7e9 3
ryood 0:418e035ba7e9 4 #define TITLE_STR1 ("MIDI Message")
ryood 0:418e035ba7e9 5 #define TITLE_STR2 ("20180502")
ryood 0:418e035ba7e9 6
ryood 0:418e035ba7e9 7 MIDI midi(D10, D2); // Serail2
ryood 0:418e035ba7e9 8 Serial pc(D1, D0); // Serial1
ryood 0:418e035ba7e9 9
ryood 0:418e035ba7e9 10 // -----------------------------------------------------------------------------
ryood 0:418e035ba7e9 11
ryood 0:418e035ba7e9 12 void printNoteOnOff(const char* type, byte inChannel, byte inNote, byte inVelocity)
ryood 0:418e035ba7e9 13 {
ryood 0:418e035ba7e9 14 pc.printf("%s %3d %3d %3d\r\n", type, inChannel, inNote, inVelocity);
ryood 0:418e035ba7e9 15 }
ryood 0:418e035ba7e9 16
ryood 0:418e035ba7e9 17 void handleNoteOn(byte inChannel, byte inNote, byte inVelocity)
ryood 0:418e035ba7e9 18 {
ryood 1:2380cb43b3ae 19 midi.sendNoteOn(inNote, inVelocity, inChannel);
ryood 0:418e035ba7e9 20 printNoteOnOff("On ", inChannel, inNote, inVelocity);
ryood 0:418e035ba7e9 21 }
ryood 0:418e035ba7e9 22
ryood 0:418e035ba7e9 23 void handleNoteOff(byte inChannel, byte inNote, byte inVelocity)
ryood 0:418e035ba7e9 24 {
ryood 1:2380cb43b3ae 25 midi.sendNoteOff(inNote, inVelocity, inChannel);
ryood 0:418e035ba7e9 26 printNoteOnOff("Off", inChannel, inNote, inVelocity);
ryood 0:418e035ba7e9 27 }
ryood 0:418e035ba7e9 28
ryood 0:418e035ba7e9 29 // -----------------------------------------------------------------------------
ryood 0:418e035ba7e9 30
ryood 0:418e035ba7e9 31 int main()
ryood 0:418e035ba7e9 32 {
ryood 0:418e035ba7e9 33 midi.setHandleNoteOn(handleNoteOn);
ryood 0:418e035ba7e9 34 midi.setHandleNoteOff(handleNoteOff);
ryood 0:418e035ba7e9 35 midi.begin(MIDI_CHANNEL_OMNI);
ryood 0:418e035ba7e9 36
ryood 0:418e035ba7e9 37 pc.baud(115200);
ryood 0:418e035ba7e9 38
ryood 0:418e035ba7e9 39 for (;;) {
ryood 0:418e035ba7e9 40 if (midi.read()) {
ryood 0:418e035ba7e9 41 byte type = midi.getType();
ryood 0:418e035ba7e9 42 byte channel = midi.getChannel();
ryood 0:418e035ba7e9 43 byte data1 = midi.getData1();
ryood 0:418e035ba7e9 44 byte data2 = midi.getData2();
ryood 0:418e035ba7e9 45
ryood 0:418e035ba7e9 46 pc.printf("%2x %2x %2x %2x\r\n", type, channel, data1, data2);
ryood 0:418e035ba7e9 47 }
ryood 0:418e035ba7e9 48 }
ryood 0:418e035ba7e9 49 }