The driver reports back support for these features, so it would have to have a custom device driver. But I don't think you'll ever be able to really intelligently filter a list as most midi hardware has pass through support for classic (i.e. cable based) midi where the user could have anything connected.
You might be able to make it easier for the user by reading the incoming midi data and highlighting the entries in your list that are already sending MTC. Robert On Tue, Apr 4, 2017 at 4:00 AM Igor Clark <[email protected]> wrote: > Hi again, > > I checked with the maker of the device and he told me that he didn't > expect CoreMidi to know anything about this, as it's a USB class compliant > device, and the USB device descriptor spec doesn't say anything about > whether it transmits MTC. > > I guess that's why CoreMidi doesn't know anything about it? I'd assumed > (wrongly, it seems) that it was some kind of SysEx deal. > > That being said, do other/non-USB devices have a way of indicating to > CoreMidi (or for CoreMidi to interrogate them to find out) whether they > support MTC, or other properties? How else would CoreMidi know? > > Thanks, > Igor > > > On 31/03/2017 11:27, Igor Clark wrote: > > Hi folks, hope this is the right place to ask this CoreMidi question. > > I have a Rosendahl mif4 <http://www.rosendahl-studiotechnik.de/mif4.html> > which I'm using as an MTC source. I know it sends MTC because I can sync to > it and it works really well. > > However whenever I try to get the kMIDIPropertyTransmitsMTC property, so I > can have my app provide a filtered list of MIDI inputs that can act as MTC > sources, CoreMidi always returns 0: > > MIDIEndpointRef* dest_ptr; // passed in, definitely works as I can get > the device name and use it as a sync source > > CFStringRef name = CFSTR( "" ); > MIDIObjectGetStringProperty( *dest_ptr, kMIDIPropertyDisplayName, &name ); > const char *output_name = CFStringGetCStringPtr( name, > kCFStringEncodingUTF8 ); > > int transmits_mtc; > MIDIObjectGetIntegerProperty( *dest_ptr, kMIDIPropertyTransmitsMTC, > &transmits_mtc ); > printf( "%s transmits_mtc: %d\n", output_name, transmits_mtc ); > > // prints: "mif4 transmits_mtc: 0" > > Is this more likely because: > > - the device isn't providing information required for CoreMidi to know > that it transmits MTC; > - CoreMidi isn't doing what I expect; > - I'm doing something wrong or missing a setup call; > - something else? > > How would I go about finding out which is the case? > > Many thanks for any advice, > Igor > > > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Coreaudio-api mailing list ([email protected]) > Help/Unsubscribe/Update your Subscription: > > https://lists.apple.com/mailman/options/coreaudio-api/robert.chin%40gmail.com > > This email sent to [email protected] >
_______________________________________________ Do not post admin requests to the list. They will be ignored. Coreaudio-api mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/coreaudio-api/archive%40mail-archive.com This email sent to [email protected]
