Ah, I see. Thanks Robert. That makes sense.
For my particular app I'd need to know in advance, as I'm trying to
establish which devices can both receive MMC (I was thinking
via kMIDIPropertySupportsMMC) and send MTC, so that the user can choose
a device from the filtered list and say "yep, tell that device when to
start, and sync to its timecode". The app could even just not bother
with the whole sync-option scenario if it knew no capable devices were
attached.
Anyway - seems like that's not going to happen, but at least I
understand why now!
Thanks,
Igor
On 04/04/2017 16:13, Robert Chin wrote:
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]
<mailto:[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]
<mailto:[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]
<mailto:[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]