USB MIDI is working fine with my Teensy 2, so (noticing that it is currently disabled with the Teensy 3.0 beta 6) I thought I would have a go at enabling it, to see what breaks and what needs to be changed.
I made the following changes. In hardware/teensy/boards.txt, these three lines were commented out and I uncommented them:
teensy3.menu.usb.midi.name=MIDI
teensy3.menu.usb.midi.build.define0=-DUSB_MIDI
teensy3.menu.usb.midi.fake_serial=teensy_gateway
In hardware/teensy/cores/usb_midi/usb_private.h I wasn't sure what to add by way of a processor define, so instead I brutally commented out the following check:
// #if defined(__AVR_ATmega32U4__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)
and
// #endif
I had sort of expected that to be it; the actual code loked pretty same, with abundant use of explicitly sized types. On starting up the IDE, MIDI is there in the menu. However, on verifying a sketch which works on Teensy 2, I get
MIDI_multicontroller_USB_T3.ino: In function 'void loop()':
MIDI_multicontroller_USB_T3:34: error: 'usbMIDI' was not declared in this scope
so presumably I need to do something else to enable it. I would appreciate guidance on what that might be.
It would also be interesting to hear of any known problems with the USB MIDI on Teensy 3.0. I assume it is disabled because of known problems, though it could of course be disabled just due to not having been well tested (in which case my experiments might help).