Is it possible to programme Teensy to show up in a host as two(2) separate MIDI ports and sending over different “virtual MIDI cables”?
Eg. is it possible for Teensy to show up in MaxMSP and Reaper as ‘Teensy Midi Port 1’ and 'Teensy MIDI Port 2’?
The USB Device Class Definition for MIDI Devices says on page 16:
“MIDI data is transferred over USB using 32-bit USB-MIDI Event Packets. These packets provide an efficient method to transfer multiple MIDI streams with fixed length messages. The 32-bit USB-MIDI Event Packet allows multiple “virtual MIDI cables” routed over the same USB endpoint. This approach minimizes the number of required endpoints. It also makes parsing MIDI events easier by packetizing the separate bytes of a MIDI event into one parsed USB-MIDI event. The first byte in each 32-bit USB-MIDI Event Packet is a Packet Header contains a Cable Number (4 bits) followed by a Code Index Number (4 bits). The remaining three bytes contain the actual MIDI event.”
I need to design a hardware controller with 24 faders, each having at least 10bit resolution. It will be used as a sound diffusion controller in a multi-speaker setup. Which requires some data resolution / transmission rate. Going the Teensy & USB MIDI way (and avoiding OSC), one possible solution would be to divide the faders in 2 groups of 12 - similar to the physical appearance of the hardware device. Each group is sending in a separate MIDI Cable (0 & 1) and each fader as Pitch Bend in a separate MIDI Channel (0-11).
So, is it possible/efficient to programme Teensy to show up in MaxMSP and Reaper as 2 separate MIDI ports? Is it better to go the Teensy/OSC way. Or is it much simpler to built two separate hardware devises (even putting 2 Teensys in the case)?