I have been using the example that I shared with Paul & the PJRC community to build an interface to the Korg Monotron Duo:
int ledPin = 13;
void OnNoteOn(byte channel, byte note, byte velocity)
{
digitalWrite(ledPin, HIGH);
}
void OnNoteOff(byte channel, byte note, byte velocity)
{
digitalWrite(ledPin, LOW);
}
void setup()
{
pinMode(ledPin, OUTPUT);
// usbMIDI.setHandleNoteOff(OnNoteOff);
//usbMIDI.setHandleNoteOn(OnNoteOn) ;
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(1000);
usbMIDI.sendNoteOn(60, 99, 1);
}
void loop()
{
usbMIDI.read();
}
This works great when I control the Teensy from Midi Wrench (which is an iPad app), but when I connect the Teensy 3.1 to my MIDI controller (Arturia Analog Factory) the above code does not recognize the NoteOn and NoteOff events from that keyboard. Note that I am powering up the keyboard.
I also used a USB monitor with my MAC to see the midi messages coming out from the MIDI controller, but again, the Teensy does not seem to recognize the NoteOn/NoteOff events.
EDIT
More information. I started the official Arturia SW and "snoop" this MIDI exchange:
====
11:43:15.307 To Teensy MIDI SysEx Universal Non-Real Time 6 bytes
11:43:16.077 To Analog Factory Experience SysEx Universal Non-Real Time 6 bytes
11:43:16.078 From Analog Factory Experience SysEx Universal Non-Real Time 17 bytes
11:43:16.282 To Analog Factory Experience SysEx Arturia 9 bytes
11:43:16.283 From Analog Factory Experience SysEx Arturia 84 bytes
11:43:16.305 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.307 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.310 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.312 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.314 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.316 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.318 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.320 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.322 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.324 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.326 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.328 To Analog Factory Experience SysEx Arturia 8 bytes
11:43:16.414 To Analog Factory Experience SysEx Arturia 9 bytes
11:43:16.497 From Analog Factory Experience SysEx Arturia 9 bytes
11:43:16.497 From Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.514 To Analog Factory Experience SysEx Arturia 9 bytes
11:43:16.515 From Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.613 To Analog Factory Experience SysEx Arturia 9 bytes
11:43:16.614 From Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.681 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.692 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.692 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.692 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.692 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.692 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.693 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.695 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.697 To Analog Factory Experience SysEx Arturia 9 bytes
11:43:16.698 From Analog Factory Experience SysEx Arturia 10 bytes
11:43:58.602 From Analog Factory Experience Note On 1 F2 84
11:43:58.676 From Analog Factory Experience Note Off 1 F2 81
====
So it appears that I need to manage this SysEx message exchange between the controller and the Teensy 3.1.
Does anybody know how to do this ?
Also, my MIDI monitor does not show me the content of these SysEx messages, so while I have a better sense of what's going on I am still flying bind...
Thank you
int ledPin = 13;
void OnNoteOn(byte channel, byte note, byte velocity)
{
digitalWrite(ledPin, HIGH);
}
void OnNoteOff(byte channel, byte note, byte velocity)
{
digitalWrite(ledPin, LOW);
}
void setup()
{
pinMode(ledPin, OUTPUT);
// usbMIDI.setHandleNoteOff(OnNoteOff);
//usbMIDI.setHandleNoteOn(OnNoteOn) ;
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(1000);
usbMIDI.sendNoteOn(60, 99, 1);
}
void loop()
{
usbMIDI.read();
}
This works great when I control the Teensy from Midi Wrench (which is an iPad app), but when I connect the Teensy 3.1 to my MIDI controller (Arturia Analog Factory) the above code does not recognize the NoteOn and NoteOff events from that keyboard. Note that I am powering up the keyboard.
I also used a USB monitor with my MAC to see the midi messages coming out from the MIDI controller, but again, the Teensy does not seem to recognize the NoteOn/NoteOff events.
EDIT
More information. I started the official Arturia SW and "snoop" this MIDI exchange:
====
11:43:15.307 To Teensy MIDI SysEx Universal Non-Real Time 6 bytes
11:43:16.077 To Analog Factory Experience SysEx Universal Non-Real Time 6 bytes
11:43:16.078 From Analog Factory Experience SysEx Universal Non-Real Time 17 bytes
11:43:16.282 To Analog Factory Experience SysEx Arturia 9 bytes
11:43:16.283 From Analog Factory Experience SysEx Arturia 84 bytes
11:43:16.305 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.307 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.310 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.312 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.314 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.316 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.318 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.320 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.322 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.324 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.326 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.328 To Analog Factory Experience SysEx Arturia 8 bytes
11:43:16.414 To Analog Factory Experience SysEx Arturia 9 bytes
11:43:16.497 From Analog Factory Experience SysEx Arturia 9 bytes
11:43:16.497 From Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.514 To Analog Factory Experience SysEx Arturia 9 bytes
11:43:16.515 From Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.613 To Analog Factory Experience SysEx Arturia 9 bytes
11:43:16.614 From Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.681 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.692 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.692 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.692 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.692 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.692 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.693 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.695 To Analog Factory Experience SysEx Arturia 10 bytes
11:43:16.697 To Analog Factory Experience SysEx Arturia 9 bytes
11:43:16.698 From Analog Factory Experience SysEx Arturia 10 bytes
11:43:58.602 From Analog Factory Experience Note On 1 F2 84
11:43:58.676 From Analog Factory Experience Note Off 1 F2 81
====
So it appears that I need to manage this SysEx message exchange between the controller and the Teensy 3.1.
Does anybody know how to do this ?
Also, my MIDI monitor does not show me the content of these SysEx messages, so while I have a better sense of what's going on I am still flying bind...
Thank you
Last edited: