My porting of USBHostMIDI library Example.

Dependencies:   F401RE-USBHost mbed

Committer:
hsgw
Date:
Thu Sep 18 10:52:13 2014 +0000
Revision:
2:0ed13d8db901
Parent:
1:a03b21ba2647
update F401RE-USBHost

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hsgw 0:02a6abbd7331 1 #define _USB_TEST
hsgw 0:02a6abbd7331 2 #include "mbed.h"
hsgw 0:02a6abbd7331 3 #include "USBHostMIDI.h"
hsgw 0:02a6abbd7331 4
hsgw 0:02a6abbd7331 5 DigitalOut led(LED1);
hsgw 1:a03b21ba2647 6 Serial midiOut(PC_6,PA_12);
hsgw 0:02a6abbd7331 7
hsgw 0:02a6abbd7331 8 void noteOn(unsigned char channel, unsigned char note, unsigned char velocity) {
hsgw 1:a03b21ba2647 9 led = 1;
hsgw 2:0ed13d8db901 10 //printf("note on channel: %d, note: %d, velocity: %d\r\n", channel, note, velocity);
hsgw 2:0ed13d8db901 11 printf("on\n");
hsgw 1:a03b21ba2647 12 midiOut.putc(0x90); // status:ch0,noteon
hsgw 1:a03b21ba2647 13 midiOut.putc(note); // data:noteNo
hsgw 1:a03b21ba2647 14 midiOut.putc(velocity);// data: velocity
hsgw 0:02a6abbd7331 15 }
hsgw 0:02a6abbd7331 16
hsgw 0:02a6abbd7331 17 void noteOff(unsigned char channel, unsigned char note, unsigned char velocity) {
hsgw 1:a03b21ba2647 18 led = 0;
hsgw 2:0ed13d8db901 19 //printf("note off channel: %d, note: %d, velocity: %d\r\n", channel, note, velocity);
hsgw 2:0ed13d8db901 20 printf("off\n");
hsgw 1:a03b21ba2647 21 midiOut.putc(0x80); // status:ch0,noteoff
hsgw 1:a03b21ba2647 22 midiOut.putc(note); // data:noteNo
hsgw 1:a03b21ba2647 23 midiOut.putc(velocity);// data: velocity
hsgw 0:02a6abbd7331 24 }
hsgw 0:02a6abbd7331 25
hsgw 1:a03b21ba2647 26 //void controlChange(unsigned char channel, unsigned char key, unsigned char value) {
hsgw 1:a03b21ba2647 27 // printf("control change channel: %d, key: %d, value: %d\r\n", channel, key, value);
hsgw 1:a03b21ba2647 28 //}
hsgw 1:a03b21ba2647 29 //
hsgw 1:a03b21ba2647 30 //void programChange(unsigned char channel, unsigned char program) {
hsgw 1:a03b21ba2647 31 // printf("progaram change channel: %d, program: %d\r\n", channel, program);
hsgw 1:a03b21ba2647 32 //}
hsgw 1:a03b21ba2647 33 //
hsgw 1:a03b21ba2647 34 //void pitchBend(unsigned char channel, unsigned int value) {
hsgw 1:a03b21ba2647 35 // printf("pitch bend channel: %d, value: %d\r\n", channel, value);
hsgw 1:a03b21ba2647 36 //}
hsgw 0:02a6abbd7331 37
hsgw 0:02a6abbd7331 38 int main() {
hsgw 1:a03b21ba2647 39 led = 1;
hsgw 1:a03b21ba2647 40 USBHostMIDI usbmidi;
hsgw 1:a03b21ba2647 41 midiOut.baud(31250);
hsgw 0:02a6abbd7331 42
hsgw 0:02a6abbd7331 43 // attach midi event callbacks
hsgw 1:a03b21ba2647 44 usbmidi.attachNoteOn(noteOn);
hsgw 1:a03b21ba2647 45 usbmidi.attachNoteOff(noteOff);
hsgw 1:a03b21ba2647 46 //usbmidi.attachControlChange(controlChange);
hsgw 1:a03b21ba2647 47 //usbmidi.attachProgramChange(programChange);
hsgw 1:a03b21ba2647 48 //usbmidi.attachPitchBend(pitchBend);
hsgw 0:02a6abbd7331 49
hsgw 0:02a6abbd7331 50 while(1) {
hsgw 0:02a6abbd7331 51 // try to connect a midi device
hsgw 1:a03b21ba2647 52 while(!usbmidi.connect()) {
hsgw 0:02a6abbd7331 53 wait_ms(500);
hsgw 1:a03b21ba2647 54 led = 0;
hsgw 1:a03b21ba2647 55 }
hsgw 1:a03b21ba2647 56
hsgw 1:a03b21ba2647 57 led = 1;
hsgw 1:a03b21ba2647 58 wait_ms(200);
hsgw 1:a03b21ba2647 59 led = 0;
hsgw 1:a03b21ba2647 60 wait_ms(200);
hsgw 1:a03b21ba2647 61 led = 1;
hsgw 1:a03b21ba2647 62 wait_ms(200);
hsgw 1:a03b21ba2647 63 led = 0;
hsgw 1:a03b21ba2647 64 wait_ms(200);
hsgw 1:a03b21ba2647 65 led = 1;
hsgw 1:a03b21ba2647 66 wait_ms(200);
hsgw 1:a03b21ba2647 67 led = 0;
hsgw 0:02a6abbd7331 68
hsgw 0:02a6abbd7331 69 // if the device is disconnected, we try to connect it again
hsgw 0:02a6abbd7331 70 while (1) {
hsgw 0:02a6abbd7331 71 // if device disconnected, try to connect it again
hsgw 1:a03b21ba2647 72 if (!usbmidi.connected()) break;
hsgw 0:02a6abbd7331 73
hsgw 0:02a6abbd7331 74 // polling USB task
hsgw 1:a03b21ba2647 75 USBHost::poll();
hsgw 0:02a6abbd7331 76 }
hsgw 2:0ed13d8db901 77 printf("end\n");
hsgw 0:02a6abbd7331 78 }
hsgw 0:02a6abbd7331 79 }