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]

Reply via email to