Forum Rule: Always post complete source code & details to reproduce any issue!
Results 1 to 7 of 7

Thread: Does Serial + Midi ≠ Class Compliant?

  1. #1

    Does Serial + Midi ≠ Class Compliant?

    I'm using Teensy 3.2 in a midi controller that also has an LCD screen for serial communication coming from Max for Live. When I program the board, I need to use "USB Type: Serial + Midi" (or one of the Serial + Midi options). I still see my midi controller in Ableton, etc, but it doesn't show up as a midi device when cooperating with iConnectivity PlayAudio12's unique input. The folks at iConnectivity say it's because it's not a class-compliant device but I'm not sure that's true.

    For what it's worth, I can program the same device without Serial functionality and it's recognized by the PlayAudio12.

    So, my question is, does programming with a Serial + Midi USB type affect class compliance? Is there an obvious explanation I'm missing? Thanks!

  2. #2
    Senior Member oddson's Avatar
    Join Date
    Feb 2013
    Location
    Isle in the Salish Sea
    Posts
    1,238
    https://forum.pjrc.com/threads/42546...-RawHID-Device

    Maybe the iConnect can't accept multiple protocol on the same device.

  3. #3
    Thanks for the link to that post. Perhaps you're right about those devices accepting multiple protocols.

  4. #4
    Member
    Join Date
    Aug 2019
    Location
    Melbourne Australia
    Posts
    37
    I'm using an iConnectivity MIO-10 and have run into the same issue with it's USB host not recognizing Teensy multi-cable USB Midi.

    The MIO-10 ordinarily recognizes multi-cable class compliant USB-Midi devices eg. it sees both Midi ports of an Arturia Beatstep Pro.
    The MIO-10 recognizes Teensy Midi but unfortunately not Teensy Midi x 4 or 16.

    The same issue is referred to here:-

    https://forum.pjrc.com/threads/53371...l=1#post184800

  5. #5
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    20,808
    I'm pretty sure Teensy's USB MIDI implementation is class compliant. I wrote the code using the USBIF's "USB Device Class Definition for MIDI Devices" document, version 1.0 from Nov 1, 1999, and also the Audio class spec, version 1.0. If you look at the descriptors in usb_desc.c, you'll see I put comments with the page numbers in that spec where each piece of the descriptor data is defined.

    My guess is these products have limited (or "lame") USB host implementations which only recognize a subset of what the MIDI & audio class allow. Those documents do have a pretty huge number of features, specially the MIDI "jacks" in the descriptors.

    If anyone has a multiple cable/port USB MIDI device which does work with those products, maybe we could capture its descriptors to see an example of what those hosts will recognize?

  6. #6
    Member
    Join Date
    Aug 2019
    Location
    Melbourne Australia
    Posts
    37
    If anyone has a multiple cable/port USB MIDI device which does work with those products, maybe we could capture its descriptors to see an example of what those hosts will recognize?
    Is there a way of doing that without a USB Protocol Analyser?

  7. #7
    Senior Member
    Join Date
    Oct 2012
    Location
    Portland OR
    Posts
    677
    The most convincing way to decide would be if there was an industry-accepted "class compliance test suite" that could test a device or host for every officially defined feature, and say yes or no. I recall that existed for some kinds of standards, but not sure about USB MIDI.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •