just to update, I was able to play some notes with a Due + the rugged Circuits MIDI shield (converted to 3.3v), using this simple code:
void setup() {
// Set MIDI baud rate:
Serial.begin(31250);
pinMode(A5, OUTPUT); // sets the digital pin as output, D19 on Rugged circuits MIDI shield = A5 on Mega/Due.
digitalWrite(A5, HIGH);
}
void loop() {
// play notes from F#-0 (0x1E) to F#-5 (0x5A):
for (int note = 0x1E; note < 0x5A; note ++) {
//Note on channel 1 (0x90), some note value (note), middle velocity (0x45):
noteOn(0x90, note, 0x45);
delay(100);
//Note on channel 1 (0x90), some note value (note), silent velocity (0x00):
noteOn(0x90, note, 0x00);
delay(100);
}
}
// plays a MIDI note. Doesn't check to see that
// cmd is greater than 127, or that data values are less than 127:
void noteOn(int cmd, int pitch, int velocity) {
Serial.write(cmd);
Serial.write(pitch);
Serial.write(velocity);
}