My porting of USBHostMIDI library Example.

Dependencies:   F401RE-USBHost mbed

main.cpp

Committer:
hsgw
Date:
2014-06-25
Revision:
0:02a6abbd7331
Child:
1:a03b21ba2647

File content as of revision 0:02a6abbd7331:

#define _USB_TEST
#include "mbed.h"
#include "USBHostMIDI.h"

DigitalOut led(LED1);
 
void noteOn(unsigned char channel, unsigned char note, unsigned char velocity) {
    printf("note on channel: %d, note: %d, velocity: %d\r\n", channel, note, velocity);
}

void noteOff(unsigned char channel, unsigned char note, unsigned char velocity) {
    printf("note off channel: %d, note: %d, velocity: %d\r\n", channel, note, velocity);
}

void controlChange(unsigned char channel, unsigned char key, unsigned char value) {
    printf("control change channel: %d, key: %d, value: %d\r\n", channel, key, value);
}

void programChange(unsigned char channel, unsigned char program) {
    printf("progaram change channel: %d, program: %d\r\n", channel, program);
}

void pitchBend(unsigned char channel, unsigned int value) {
    printf("pitch bend channel: %d, value: %d\r\n", channel, value);
}
 
int main() {
    
    USBHostMIDI midi; 
    
    // attach midi event callbacks
    midi.attachNoteOn(noteOn);
    midi.attachNoteOff(noteOff);
    midi.attachControlChange(controlChange);
    midi.attachProgramChange(programChange);
    midi.attachPitchBend(pitchBend);

    while(1) {
        // try to connect a midi device
        while(!midi.connect())
            wait_ms(500);
        
        // if the device is disconnected, we try to connect it again
        while (1) {
            // if device disconnected, try to connect it again
            if (!midi.connected()) break;
            
            // polling USB task
            midi.poll();
        }
    }
}