How to create a midi "device"

I probably can’t explain this right as I am just trying to figure it out. I have a Xojo app that connects to a remote ( non midi ) device via a USB driver chip. The driver chip does not enumerate as a keyboard or midi, and it does not show up in Protools as a Midi input option. I do not want it to show up in Protools as an option however, because the chip can only connect to one app at a time. So what I am wanting to find out is, can I drop some type of code or module into my existing Xojo app (MBS plugin?) and have it show up in Protools as a midi device that can be selected as a midi input source. In this case, I can still use my remote device with the Xojo app for non midi purposes, but when needed, have the Xojo app send some midi commands back and forth to the Protools. This should involve the ability to give the virtual device a name so that Protools will show the name in it’s list of found devices.

I assumed Christian would already be familiar with this since he has a ton of notes on it.

Actually I may have already solved this with the MBS MacOSXCF Midi Send Keys example. It is sending midi commands direct to Protools and it allows me to choose one of the active ports already visible on in the Protools input selection. I was hoping to be able to create a new device and name it and have Protools be able to find that new midi device name, but maybe that is not how the plugin works. But this may be a nice compromise.


MBS Plugin can create virtual sources and destinations.

In the Midi Send Keys example, it will locate any available midi inputs that are available to protools. I can select one of those inputs and send commands to protools this way. But the better idea is to name my own device so that it shows up in protools as in i/o. I did not see an example of this, do you know if an example exists?

I think the “MIDI Source” example project creates a virtual source which you should see in other apps.

Yes the Midi Source worked great for creating a unique device ID and having it show up in Protools as an Input with the name I gave it. I haven’t looked at it that long, but as of right now I cannot get Protools to see the device as an output option, only input. I will work on it more tomorrow. The good news is that the device is working perfectly for what I need for the critical inputs. It will be nice to get the device to show as an output though, since Protools requires you assign an output in the peripherals option. I had other devices in there so I picked some other unused devices as outputs for now.

Well, for an output destination, check the Midi Destination example.

That shows up! I do not understand how you have written so much code, it boggles the mind!