Pages: [1]   Go Down
Author Topic: MIDI Library help  (Read 1063 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I'm having trouble using the MIDI Library.  Specifically the callback functions. 

http://arduinomidilib.fortyseveneffects.com/index.html

I downloaded this library and installed it.  Im trying to start from the example MIDI_Callbacks.  In order to see if the library is working, I'm simply trying to turn the pin 13 LED on and off on my Arduino UNO.  A midi note on would turn the LED on and a note off turns it off.  The only thing I've added to the example is a digitalWrite(led, HIGH) and a digitalWrite(led, LOW).

I'm using Hairless MIDI to serial bridge.  I can see the note on and off is getting to the arduino UNO.  the RX light lights up, but nothing ever lights up the pin13 LED.

I assume I'm missing something simple.  I'm new to this.  The code is below.  Any help would be greatly appreciated!
Clark

#include <MIDI.h>


int led = 13;

// This function will be automatically called when a NoteOn is received.
// It must be a void-returning function with the correct parameters,
// see documentation here:
// http://arduinomidilib.sourceforge.net/class_m_i_d_i___class.html

void HandleNoteOn(byte channel, byte pitch, byte velocity)
{
    // Do whatever you want when you receive a Note On.
    digitalWrite(led, HIGH);
 
    if (velocity == 0)
    {
        // This acts like a NoteOff.
        digitalWrite(led, LOW);
    }
   
    // Try to keep your callbacks short (no delays ect)
    // otherwise it would slow down the loop() and have a bad impact
    // on real-time performance.
}

// -----------------------------------------------------------------------------

void setup()
{
   pinMode(led, OUTPUT);
    // Initiate MIDI communications, listen to all channels
    MIDI.begin(MIDI_CHANNEL_OMNI);   
 
    // Connect the HandleNoteOn function to the library,
    // so it is called upon reception of a NoteOn.
    MIDI.setHandleNoteOn(HandleNoteOn);  // Put only the name of the function
}


void loop()
{
    // Call MIDI.read the fastest you can for real-time performance.
    MIDI.read();
   
    // There is no need to check if there are messages incoming
    // if they are bound to a Callback function.
    // The attached method will be called automatically
    // when the corresponding message has been received.
}
Logged

Pages: [1]   Go Up
Jump to: