on the subject of Virtual MIDI

Skip to first unread message

Ben Kamen

Nov 21, 2013, 5:22:42 PM11/21/13
to open-music-app...@googlegroups.com
This list seems dormant, but anyways... 

A lot more apps (Magellan, Animoog) are publishing their Virtual MIDI inputs nowadays. 

Obviously, to send MIDI to one of these MIDI ports, we need to be able to distinguish if it is a "virtual" port to begin with, since sending virtual MIDI is different than sending "normal" MIDI.  

Can anyone tell me how to do this?  I've looked at the MIDI Services reference, but I don't see how to query this property on an EndpointRef.   

Thanks for any help. 


Rob Fielding

Nov 21, 2013, 5:27:37 PM11/21/13
to open-music-app...@googlegroups.com
In my apps, I had written my MIDI-out code before Virtual MIDI existed, and it just worked when Virtual MIDI apps came out.  So, there is nothing to do for sending; at least in some cases.

For MIDI-in it's a different matter, but others can point you to what you need to do.

You received this message because you are subscribed to the Google Groups "Open Music App Collaboration" group.
To unsubscribe from this group and stop receiving emails from it, send an email to open-music-app-colla...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Jesse Chappell

Nov 21, 2013, 5:30:35 PM11/21/13
to open-music-app...@googlegroups.com
I think the distinction you are actually making is between virtual
midi ports exposed by apps and "hardware" midi ports. Virtual midi
endpoints don't have entities, so the way I tell them apart is the

BOOL IsHardwareEndpoint(MIDIEndpointRef ref)
MIDIEntityRef entity = 0;

MIDIEndpointGetEntity(ref, &entity);
if (entity) {
return YES;
else {
return NO;


Ben Kamen

Nov 21, 2013, 7:27:26 PM11/21/13
to open-music-app...@googlegroups.com, je...@essej.net
Ah, thank you that seems to do it!

Reply all
Reply to author
0 new messages