Looks like no one’s replied in a while. To start the conversation again, simply ask a new question.

generic "usb midi device" in 10.9 / Mavericks

What does Mavericks need to use the product string from the USB descriptor as the name of the MIDI port? I have an assortment of USB Audio Class 2.0 compliant audio + MIDI interfaces. Some behave as they do in Mountain Lion and earlier: If manufacturer Foo makes a product Bar with audio and MIDI interfaces, then the Audio Midi Setup windows will show an audio interface named Bar, and a MIDI port named Bar. If you double-click on the MIDI port, it shows the Model, "Bar," and additional information, including the manufacturer Foo, as retrieved from the USB descriptor. This is expected and desired, especially with devices that unlock features in non-free software.


However, with Mavericks, some devices (staying with the Foo/Bar example), though the audio interface gets named Bar, show up in the MIDI Studio window of AMS as "USB MIDI Device," and double-clicking reveals the manufacturer and model to be "Generic" and "USB MIDI Device," respectively. If you use the drop down menu at the top of this window to switch to a different configuration, or define a new one, while the device is connected, it appears in the second configuration as Bar, with the correct manufacturer.


Now, according to https://developer.apple.com/library/mac/technotes/tn2274/_index.html, the Interface Association Descriptor needs to group all the audio descriptors together, they need to be contiguous, and they need to be ordered by Audio Control, then Audio Streaming, then MIDI streaming. The device that isn't coming up correctly meets those criteria, so I wonder what else is missing.


Here's a dump:


Information for device Bar (VID=0x0f00 PID=0x0baa):


Connection Information:

------------------------------

Connection status: Device connected

Device actual bus speed: High

Device is hub: No

Device address: 0x0001

Current configuration value: 0x01

Number of open pipes: 5


Device Descriptor:

------------------------------

0x12 bLength

0x01 bDescriptorType

0x0200 bcdUSB

0xEF bDeviceClass (Miscellaneous device)

0x02 bDeviceSubClass

0x01 bDeviceProtocol

0x40 bMaxPacketSize0 (64 Bytes)

0x0f00 idVendor

0x0baa idProduct

0x0010 bcdDevice

0x01 iManufacturer "Foo"

0x03 iProduct "Bar"

0x00 iSerialNumber

0x02 bNumConfigurations


Device Qualifier Descriptor:

------------------------------

0x0A bLength

0x06 bDescriptorType

0x0200 bcdUSB

0x00 bDeviceClass

0x00 bDeviceSubClass

0x00 bDeviceProtocol

0x40 bMaxPacketSize0 (64 Bytes)

0x01 bNumConfigurations

0x00 bReserved


Configuration Descriptor:

------------------------------

0x09 bLength

0x02 bDescriptorType

0x0169 wTotalLength

0x05 bNumInterfaces

0x01 bConfigurationValue

0x00 iConfiguration

0x80 bmAttributes (Bus-powered Device)

0xFA bMaxPower (500 mA)


Interface Association Descriptor:

------------------------------

0x08 bLength

0x0B bDescriptorType

0x00 bFirstInterface

0x04 bInterfaceCount

0x01 bFunctionClass (Audio Device Class)

0x00 bFunctionSubClass

0x20 bFunctionProtocol

0x00 iFunction


Interface Descriptor:

------------------------------

0x09 bLength

0x04 bDescriptorType

0x00 bInterfaceNumber

0x00 bAlternateSetting

0x00 bNumEndPoints

0x01 bInterfaceClass (Audio Device Class)

0x01 bInterfaceSubClass (Audio Control Interface)

0x20 bInterfaceProtocol

0x00 iInterface


AC Interface Header Descriptor:

------------------------------

0x09 bLength

0x24 bDescriptorType

0x01 bDescriptorSubtype

0x0200 bcdADC

0x08 bCategory

0x0087 wTotalLength

0x00 bmControls


AC Clock Source Descriptor:

------------------------------

0x08 bLength

0x24 bDescriptorType

0x0A bDescriptorSubtype

0x29 bClockID

0x03 bmAttributes

0x07 bmControls

0x00 bAssocTerminal

0x0E iClockSource "Foo Internal Clock"


AC Clock Selector Descriptor:

------------------------------

0x08 bLength

0x24 bDescriptorType

0x0B bDescriptorSubtype

0x28 bClockID

0x01 bNrInPins

0x29 baCSourceID(1)

0x03 bmControls

0x0D iClockSelector "Foo Clock Selector"


AC Input Terminal Descriptor:

------------------------------

0x11 bLength

0x24 bDescriptorType

0x02 bDescriptorSubtype

0x02 bTerminalID

0x0101 wTerminalType (USB Streaming)

0x00 bAssocTerminal

0x28 bCSourceID

0x04 bNrChannels

0x00000000 bmChannelConfig

0x12 iChannelNames

0x00 bmControls

0x06 iTerminal "Bar "


AC Feature Unit Descriptor:

------------------------------

0x1A bLength

0x24 bDescriptorType

0x06 bDescriptorSubtype

0x0A bUnitID

0x02 bSourceID

0x0000000F bmaControls(0)

0x0000000F bmaControls(1)

0x0000000F bmaControls(2)

0x0000000F bmaControls(3)

0x0000000F bmaControls(4)

0x00 iFeature


AC Output Terminal Descriptor:

------------------------------

0x0C bLength

0x24 bDescriptorType

0x03 bDescriptorSubtype

0x14 bTerminalID

0x0301 wTerminalType (Speaker)

0x00 bAssocTerminal

0x0A bSourceID

0x28 bCSourceID

0x0000 bmControls

0x00 iTerminal


AC Input Terminal Descriptor:

------------------------------

0x11 bLength

0x24 bDescriptorType

0x02 bDescriptorSubtype

0x01 bTerminalID

0x0201 wTerminalType (Microphone)

0x00 bAssocTerminal

0x28 bCSourceID

0x04 bNrChannels

0x00000000 bmChannelConfig

0x16 iChannelNames

0x00 bmControls

0x00 iTerminal


AC Feature Unit Descriptor:

------------------------------

0x1A bLength

0x24 bDescriptorType

0x06 bDescriptorSubtype

0x0B bUnitID

0x01 bSourceID

0x0000000F bmaControls(0)

0x0000000F bmaControls(1)

0x0000000F bmaControls(2)

0x0000000F bmaControls(3)

0x0000000F bmaControls(4)

0x00 iFeature


AC Output Terminal Descriptor:

------------------------------

0x0C bLength

0x24 bDescriptorType

0x03 bDescriptorSubtype

0x16 bTerminalID

0x0101 wTerminalType (USB Streaming)

0x00 bAssocTerminal

0x0B bSourceID

0x28 bCSourceID

0x0000 bmControls

0x07 iTerminal "Bar "


Interface Descriptor:

------------------------------

0x09 bLength

0x04 bDescriptorType

0x01 bInterfaceNumber

0x00 bAlternateSetting

0x00 bNumEndPoints

0x01 bInterfaceClass (Audio Device Class)

0x02 bInterfaceSubClass (Audio Streaming Interface)

0x20 bInterfaceProtocol

0x00 iInterface


Interface Descriptor:

------------------------------

0x09 bLength

0x04 bDescriptorType

0x01 bInterfaceNumber

0x01 bAlternateSetting

0x02 bNumEndPoints

0x01 bInterfaceClass (Audio Device Class)

0x02 bInterfaceSubClass (Audio Streaming Interface)

0x20 bInterfaceProtocol

0x00 iInterface


AS Interface Descriptor:

------------------------------

0x10 bLength

0x24 bDescriptorType

0x01 bDescriptorSubtype

0x02 bTerminalLink

0x00 bmControls

0x01 bFormatType

0x00000001 bmFormats

0x04 bNrChannels

0x00000000 bmChannelConfig

0x12 iChannelNames


AS Format Type 1 Descriptor:

------------------------------

0x06 bLength

0x24 bDescriptorType

0x02 bDescriptorSubtype

0x01 bFormatType

0x04 bSubslotSize

0x18 bBitResolution (24 Bits/sample)


Endpoint Descriptor:

------------------------------

0x07 bLength

0x05 bDescriptorType

0x01 bEndpointAddress (OUT Endpoint)

0x05 bmAttributes (Transfer: Isochronous / Synch: Asynchronous / Usage: Data)

0x00D0 wMaxPacketSize (208 Bytes)

0x01 bInterval


AS Isochronous Data Endpoint Descriptor:

------------------------------

0x08 bLength

0x25 bDescriptorType

0x01 bDescriptorSubtype

0x00 bmAttributes

0x00 bmControls

0x02 bLockDelayUnits (Decoded PCM samples)

0x0008 wLockDelay


Endpoint Descriptor:

------------------------------

0x07 bLength

0x05 bDescriptorType

0x81 bEndpointAddress (IN Endpoint)

0x11 bmAttributes (Transfer: Isochronous / Synch: None / Usage: Feedback)

0x0004 wMaxPacketSize (4 Bytes)

0x04 bInterval


Interface Descriptor:

------------------------------

0x09 bLength

0x04 bDescriptorType

0x02 bInterfaceNumber

0x00 bAlternateSetting

0x00 bNumEndPoints

0x01 bInterfaceClass (Audio Device Class)

0x02 bInterfaceSubClass (Audio Streaming Interface)

0x20 bInterfaceProtocol

0x00 iInterface


Interface Descriptor:

------------------------------

0x09 bLength

0x04 bDescriptorType

0x02 bInterfaceNumber

0x01 bAlternateSetting

0x01 bNumEndPoints

0x01 bInterfaceClass (Audio Device Class)

0x02 bInterfaceSubClass (Audio Streaming Interface)

0x20 bInterfaceProtocol

0x00 iInterface


AS Interface Descriptor:

------------------------------

0x10 bLength

0x24 bDescriptorType

0x01 bDescriptorSubtype

0x16 bTerminalLink

0x00 bmControls

0x01 bFormatType

0x00000001 bmFormats

0x04 bNrChannels

0x00000000 bmChannelConfig

0x16 iChannelNames


AS Format Type 1 Descriptor:

------------------------------

0x06 bLength

0x24 bDescriptorType

0x02 bDescriptorSubtype

0x01 bFormatType

0x04 bSubslotSize

0x18 bBitResolution (24 Bits/sample)


Endpoint Descriptor:

------------------------------

0x07 bLength

0x05 bDescriptorType

0x82 bEndpointAddress (IN Endpoint)

0x05 bmAttributes (Transfer: Isochronous / Synch: Asynchronous / Usage: Data)

0x00D0 wMaxPacketSize (208 Bytes)

0x01 bInterval


AS Isochronous Data Endpoint Descriptor:

------------------------------

0x08 bLength

0x25 bDescriptorType

0x01 bDescriptorSubtype

0x00 bmAttributes

0x00 bmControls

0x02 bLockDelayUnits (Decoded PCM samples)

0x0008 wLockDelay


Interface Descriptor:

------------------------------

0x09 bLength

0x04 bDescriptorType

0x03 bInterfaceNumber

0x00 bAlternateSetting

0x02 bNumEndPoints

0x01 bInterfaceClass (Audio Device Class)

0x03 bInterfaceSubClass (MIDI Streaming Interface)

0x00 bInterfaceProtocol

0x00 iInterface


MS Interface Header Descriptor:

------------------------------

0x07 bLength

0x24 bDescriptorType

0x01 bDescriptorSubtype

0x0100 bcdMSC

0x0041 wTotalLength


MS MIDI IN Jack Descriptor:

------------------------------

0x06 bLength

0x24 bDescriptorType

0x02 bDescriptorSubtype

0x01 bJackType

0x01 bJackID

0x00 iJack


MS MIDI IN Jack Descriptor:

------------------------------

0x06 bLength

0x24 bDescriptorType

0x02 bDescriptorSubtype

0x02 bJackType

0x02 bJackID

0x00 iJack


MS MIDI OUT Jack Descriptor:

------------------------------

0x09 bLength

0x24 bDescriptorType

0x03 bDescriptorSubtype

0x01 bJackType

0x03 bJackID

0x01 bNrInputPins

0x02 baSourceID(1)

0x01 baSourcePin(1)

0x00 iJack


MS MIDI OUT Jack Descriptor:

------------------------------

0x09 bLength

0x24 bDescriptorType

0x03 bDescriptorSubtype

0x02 bJackType

0x04 bJackID

0x01 bNrInputPins

0x01 baSourceID(1)

0x01 baSourcePin(1)

0x00 iJack


Endpoint Descriptor (Audio/MIDI):

------------------------------

0x09 bLength

0x05 bDescriptorType

0x02 bEndpointAddress (OUT Endpoint)

0x02 bmAttributes (Transfer: Bulk / Synch: None / Usage: Data)

0x0200 wMaxPacketSize (512 Bytes)

0x00 bInterval

0x00 bRefresh

0x00 bSynchAddress


MS Bulk Data Endpoint Descriptor:

------------------------------

0x05 bLength

0x25 bDescriptorType

0x01 bDescriptorSubtype

0x01 bNumEmbMIDIJack

0x01 baAssocJackID(1)


Endpoint Descriptor (Audio/MIDI):

------------------------------

0x09 bLength

0x05 bDescriptorType

0x83 bEndpointAddress (IN Endpoint)

0x02 bmAttributes (Transfer: Bulk / Synch: None / Usage: Data)

0x0200 wMaxPacketSize (512 Bytes)

0x00 bInterval

0x00 bRefresh

0x00 bSynchAddress


MS Bulk Data Endpoint Descriptor:

------------------------------

0x05 bLength

0x25 bDescriptorType

0x01 bDescriptorSubtype

0x01 bNumEmbMIDIJack

0x03 baAssocJackID(1)


Interface Descriptor:

------------------------------

0x09 bLength

0x04 bDescriptorType

0x04 bInterfaceNumber

0x00 bAlternateSetting

0x00 bNumEndPoints

0xFE bInterfaceClass (Application Specific)

0x01 bInterfaceSubClass

0x01 bInterfaceProtocol

0x0F iInterface "Foo DFU"


Configuration Descriptor:

------------------------------

0x09 bLength

0x02 bDescriptorType

0x0169 wTotalLength

0x05 bNumInterfaces

0x01 bConfigurationValue

0x00 iConfiguration

0x80 bmAttributes (Bus-powered Device)

0xFA bMaxPower (500 mA)


Interface Association Descriptor:

------------------------------

0x08 bLength

0x0B bDescriptorType

0x00 bFirstInterface

0x04 bInterfaceCount

0x01 bFunctionClass (Audio Device Class)

0x00 bFunctionSubClass

0x20 bFunctionProtocol

0x00 iFunction


Interface Descriptor:

------------------------------

0x09 bLength

0x04 bDescriptorType

0x00 bInterfaceNumber

0x00 bAlternateSetting

0x00 bNumEndPoints

0x01 bInterfaceClass (Audio Device Class)

0x01 bInterfaceSubClass (Audio Control Interface)

0x20 bInterfaceProtocol

0x00 iInterface


AC Interface Header Descriptor:

------------------------------

0x09 bLength

0x24 bDescriptorType

0x01 bDescriptorSubtype

0x0200 bcdADC

0x08 bCategory

0x0087 wTotalLength

0x00 bmControls


AC Clock Source Descriptor:

------------------------------

0x08 bLength

0x24 bDescriptorType

0x0A bDescriptorSubtype

0x29 bClockID

0x03 bmAttributes

0x07 bmControls

0x00 bAssocTerminal

0x0E iClockSource "Foo Internal Clock"


AC Clock Selector Descriptor:

------------------------------

0x08 bLength

0x24 bDescriptorType

0x0B bDescriptorSubtype

0x28 bClockID

0x01 bNrInPins

0x29 baCSourceID(1)

0x03 bmControls

0x0D iClockSelector "Foo Clock Selector"


AC Input Terminal Descriptor:

------------------------------

0x11 bLength

0x24 bDescriptorType

0x02 bDescriptorSubtype

0x02 bTerminalID

0x0101 wTerminalType (USB Streaming)

0x00 bAssocTerminal

0x28 bCSourceID

0x04 bNrChannels

0x00000000 bmChannelConfig

0x12 iChannelNames

0x00 bmControls

0x06 iTerminal "Bar "


AC Feature Unit Descriptor:

------------------------------

0x1A bLength

0x24 bDescriptorType

0x06 bDescriptorSubtype

0x0A bUnitID

0x02 bSourceID

0x0000000F bmaControls(0)

0x0000000F bmaControls(1)

0x0000000F bmaControls(2)

0x0000000F bmaControls(3)

0x0000000F bmaControls(4)

0x00 iFeature


AC Output Terminal Descriptor:

------------------------------

0x0C bLength

0x24 bDescriptorType

0x03 bDescriptorSubtype

0x14 bTerminalID

0x0301 wTerminalType (Speaker)

0x00 bAssocTerminal

0x0A bSourceID

0x28 bCSourceID

0x0000 bmControls

0x00 iTerminal


AC Input Terminal Descriptor:

------------------------------

0x11 bLength

0x24 bDescriptorType

0x02 bDescriptorSubtype

0x01 bTerminalID

0x0201 wTerminalType (Microphone)

0x00 bAssocTerminal

0x28 bCSourceID

0x04 bNrChannels

0x00000000 bmChannelConfig

0x16 iChannelNames

0x00 bmControls

0x00 iTerminal


AC Feature Unit Descriptor:

------------------------------

0x1A bLength

0x24 bDescriptorType

0x06 bDescriptorSubtype

0x0B bUnitID

0x01 bSourceID

0x0000000F bmaControls(0)

0x0000000F bmaControls(1)

0x0000000F bmaControls(2)

0x0000000F bmaControls(3)

0x0000000F bmaControls(4)

0x00 iFeature


AC Output Terminal Descriptor:

------------------------------

0x0C bLength

0x24 bDescriptorType

0x03 bDescriptorSubtype

0x16 bTerminalID

0x0101 wTerminalType (USB Streaming)

0x00 bAssocTerminal

0x0B bSourceID

0x28 bCSourceID

0x0000 bmControls

0x07 iTerminal "Bar "


Interface Descriptor:

------------------------------

0x09 bLength

0x04 bDescriptorType

0x01 bInterfaceNumber

0x00 bAlternateSetting

0x00 bNumEndPoints

0x01 bInterfaceClass (Audio Device Class)

0x02 bInterfaceSubClass (Audio Streaming Interface)

0x20 bInterfaceProtocol

0x00 iInterface


Interface Descriptor:

------------------------------

0x09 bLength

0x04 bDescriptorType

0x01 bInterfaceNumber

0x01 bAlternateSetting

0x02 bNumEndPoints

0x01 bInterfaceClass (Audio Device Class)

0x02 bInterfaceSubClass (Audio Streaming Interface)

0x20 bInterfaceProtocol

0x00 iInterface


AS Interface Descriptor:

------------------------------

0x10 bLength

0x24 bDescriptorType

0x01 bDescriptorSubtype

0x02 bTerminalLink

0x00 bmControls

0x01 bFormatType

0x00000001 bmFormats

0x04 bNrChannels

0x00000000 bmChannelConfig

0x12 iChannelNames


AS Format Type 1 Descriptor:

------------------------------

0x06 bLength

0x24 bDescriptorType

0x02 bDescriptorSubtype

0x01 bFormatType

0x04 bSubslotSize

0x18 bBitResolution (24 Bits/sample)


Endpoint Descriptor:

------------------------------

0x07 bLength

0x05 bDescriptorType

0x01 bEndpointAddress (OUT Endpoint)

0x05 bmAttributes (Transfer: Isochronous / Synch: Asynchronous / Usage: Data)

0x00D0 wMaxPacketSize (208 Bytes)

0x01 bInterval


AS Isochronous Data Endpoint Descriptor:

------------------------------

0x08 bLength

0x25 bDescriptorType

0x01 bDescriptorSubtype

0x00 bmAttributes

0x00 bmControls

0x02 bLockDelayUnits (Decoded PCM samples)

0x0008 wLockDelay


Endpoint Descriptor:

------------------------------

0x07 bLength

0x05 bDescriptorType

0x81 bEndpointAddress (IN Endpoint)

0x11 bmAttributes (Transfer: Isochronous / Synch: None / Usage: Feedback)

0x0004 wMaxPacketSize (4 Bytes)

0x04 bInterval


Interface Descriptor:

------------------------------

0x09 bLength

0x04 bDescriptorType

0x02 bInterfaceNumber

0x00 bAlternateSetting

0x00 bNumEndPoints

0x01 bInterfaceClass (Audio Device Class)

0x02 bInterfaceSubClass (Audio Streaming Interface)

0x20 bInterfaceProtocol

0x00 iInterface


Interface Descriptor:

------------------------------

0x09 bLength

0x04 bDescriptorType

0x02 bInterfaceNumber

0x01 bAlternateSetting

0x01 bNumEndPoints

0x01 bInterfaceClass (Audio Device Class)

0x02 bInterfaceSubClass (Audio Streaming Interface)

0x20 bInterfaceProtocol

0x00 iInterface


AS Interface Descriptor:

------------------------------

0x10 bLength

0x24 bDescriptorType

0x01 bDescriptorSubtype

0x16 bTerminalLink

0x00 bmControls

0x01 bFormatType

0x00000001 bmFormats

0x04 bNrChannels

0x00000000 bmChannelConfig

0x16 iChannelNames


AS Format Type 1 Descriptor:

------------------------------

0x06 bLength

0x24 bDescriptorType

0x02 bDescriptorSubtype

0x01 bFormatType

0x04 bSubslotSize

0x18 bBitResolution (24 Bits/sample)


Endpoint Descriptor:

------------------------------

0x07 bLength

0x05 bDescriptorType

0x82 bEndpointAddress (IN Endpoint)

0x05 bmAttributes (Transfer: Isochronous / Synch: Asynchronous / Usage: Data)

0x00D0 wMaxPacketSize (208 Bytes)

0x01 bInterval


AS Isochronous Data Endpoint Descriptor:

------------------------------

0x08 bLength

0x25 bDescriptorType

0x01 bDescriptorSubtype

0x00 bmAttributes

0x00 bmControls

0x02 bLockDelayUnits (Decoded PCM samples)

0x0008 wLockDelay


Interface Descriptor:

------------------------------

0x09 bLength

0x04 bDescriptorType

0x03 bInterfaceNumber

0x00 bAlternateSetting

0x02 bNumEndPoints

0x01 bInterfaceClass (Audio Device Class)

0x03 bInterfaceSubClass (MIDI Streaming Interface)

0x00 bInterfaceProtocol

0x00 iInterface


MS Interface Header Descriptor:

------------------------------

0x07 bLength

0x24 bDescriptorType

0x01 bDescriptorSubtype

0x0100 bcdMSC

0x0041 wTotalLength


MS MIDI IN Jack Descriptor:

------------------------------

0x06 bLength

0x24 bDescriptorType

0x02 bDescriptorSubtype

0x01 bJackType

0x01 bJackID

0x00 iJack


MS MIDI IN Jack Descriptor:

------------------------------

0x06 bLength

0x24 bDescriptorType

0x02 bDescriptorSubtype

0x02 bJackType

0x02 bJackID

0x00 iJack


MS MIDI OUT Jack Descriptor:

------------------------------

0x09 bLength

0x24 bDescriptorType

0x03 bDescriptorSubtype

0x01 bJackType

0x03 bJackID

0x01 bNrInputPins

0x02 baSourceID(1)

0x01 baSourcePin(1)

0x00 iJack


MS MIDI OUT Jack Descriptor:

------------------------------

0x09 bLength

0x24 bDescriptorType

0x03 bDescriptorSubtype

0x02 bJackType

0x04 bJackID

0x01 bNrInputPins

0x01 baSourceID(1)

0x01 baSourcePin(1)

0x00 iJack


Endpoint Descriptor (Audio/MIDI):

------------------------------

0x09 bLength

0x05 bDescriptorType

0x02 bEndpointAddress (OUT Endpoint)

0x02 bmAttributes (Transfer: Bulk / Synch: None / Usage: Data)

0x0200 wMaxPacketSize (512 Bytes)

0x00 bInterval

0x00 bRefresh

0x00 bSynchAddress


MS Bulk Data Endpoint Descriptor:

------------------------------

0x05 bLength

0x25 bDescriptorType

0x01 bDescriptorSubtype

0x01 bNumEmbMIDIJack

0x01 baAssocJackID(1)


Endpoint Descriptor (Audio/MIDI):

------------------------------

0x09 bLength

0x05 bDescriptorType

0x83 bEndpointAddress (IN Endpoint)

0x02 bmAttributes (Transfer: Bulk / Synch: None / Usage: Data)

0x0200 wMaxPacketSize (512 Bytes)

0x00 bInterval

0x00 bRefresh

0x00 bSynchAddress


MS Bulk Data Endpoint Descriptor:

------------------------------

0x05 bLength

0x25 bDescriptorType

0x01 bDescriptorSubtype

0x01 bNumEmbMIDIJack

0x03 baAssocJackID(1)


Interface Descriptor:

------------------------------

0x09 bLength

0x04 bDescriptorType

0x04 bInterfaceNumber

0x00 bAlternateSetting

0x00 bNumEndPoints

0xFE bInterfaceClass (Application Specific)

0x01 bInterfaceSubClass

0x01 bInterfaceProtocol

0x0F iInterface "Foo DFU"


Other Speed Configuration Descriptor:

------------------------------

0x09 bLength

0x07 bDescriptorType

0x00DD wTotalLength

0x03 bNumInterfaces

0x01 bConfigurationValue

0x00 iConfiguration

0x80 bmAttributes (Bus-powered Device)

0xFA bMaxPower (500 mA)


Interface Descriptor:

------------------------------

0x09 bLength

0x04 bDescriptorType

0x00 bInterfaceNumber

0x00 bAlternateSetting

0x00 bNumEndPoints

0x01 bInterfaceClass (Audio Device Class)

0x01 bInterfaceSubClass (Audio Control Interface)

0x00 bInterfaceProtocol

0x08 iInterface "Bar"


AC Interface Header Descriptor:

------------------------------

0x0A bLength

0x24 bDescriptorType

0x01 bDescriptorSubtype

0x0100 bcdADC

0x0048 wTotalLength

0x02 bInCollection

0x01 baInterfaceNr(1)

0x02 baInterfaceNr(2)


AC Input Terminal Descriptor:

------------------------------

0x0C bLength

0x24 bDescriptorType

0x02 bDescriptorSubtype

0x01 bTerminalID

0x0101 wTerminalType (USB Streaming)

0x00 bAssocTerminal

0x02 bNrChannels

0x0003 wChannelConfig

0x00 iChannelNames

0x0B iTerminal "Bar Output"


AC Feature Unit Descriptor:

------------------------------

0x0A bLength

0x24 bDescriptorType

0x06 bDescriptorSubtype

0x0A bUnitID

0x01 bSourceID

0x01 bControlSize

bmaControls:

0x00 Channel(0)

0x03 Channel(1)

0x03 Channel(2)

0x00 iFeature



AC Output Terminal Descriptor:

------------------------------

0x09 bLength

0x24 bDescriptorType

0x03 bDescriptorSubtype

0x06 bTerminalID

0x0301 wTerminalType (Speaker)

0x00 bAssocTerminal

0x0A bSourceID

0x00 iTerminal


AC Input Terminal Descriptor:

------------------------------

0x0C bLength

0x24 bDescriptorType

0x02 bDescriptorSubtype

0x02 bTerminalID

0x0201 wTerminalType (Microphone)

0x00 bAssocTerminal

0x02 bNrChannels

0x0003 wChannelConfig

0x00 iChannelNames

0x0C iTerminal "Bar Input"


AC Output Terminal Descriptor:

------------------------------

0x09 bLength

0x24 bDescriptorType

0x03 bDescriptorSubtype

0x07 bTerminalID

0x0101 wTerminalType (USB Streaming)

0x01 bAssocTerminal

0x0B bSourceID

0x00 iTerminal


AC Feature Unit Descriptor:

------------------------------

0x0A bLength

0x24 bDescriptorType

0x06 bDescriptorSubtype

0x0B bUnitID

0x02 bSourceID

0x01 bControlSize

bmaControls:

0x00 Channel(0)

0x03 Channel(1)

0x03 Channel(2)

0x00 iFeature



Interface Descriptor:

------------------------------

0x09 bLength

0x04 bDescriptorType

0x01 bInterfaceNumber

0x00 bAlternateSetting

0x00 bNumEndPoints

0x01 bInterfaceClass (Audio Device Class)

0x02 bInterfaceSubClass (Audio Streaming Interface)

0x00 bInterfaceProtocol

0x09 iInterface "Bar Output"


Interface Descriptor:

------------------------------

0x09 bLength

0x04 bDescriptorType

0x01 bInterfaceNumber

0x01 bAlternateSetting

0x02 bNumEndPoints

0x01 bInterfaceClass (Audio Device Class)

0x02 bInterfaceSubClass (Audio Streaming Interface)

0x00 bInterfaceProtocol

0x04 iInterface "Bar "


AS Interface Descriptor:

------------------------------

0x07 bLength

0x24 bDescriptorType

0x01 bDescriptorSubtype

0x01 bTerminalLink

0x01 bDelay

0x0001 wFormatTag (PCM)


AS Format Type 1 Descriptor:

------------------------------

0x14 bLength

0x24 bDescriptorType

0x02 bDescriptorSubtype

0x01 bFormatType

0x02 bNrChannels

0x03 bSubframeSize

0x18 bBitResolution (24 Bits/sample)

0x04 bSamFreqType (Discrete sampling frequencies)

0x00AC44 tSamFreq(1) (44100 Hz)

0x00BB80 tSamFreq(2) (48000 Hz)

0x00BB80 tSamFreq(3) (48000 Hz)

0x00BB80 tSamFreq(4) (48000 Hz)


Endpoint Descriptor (Audio/MIDI):

------------------------------

0x09 bLength

0x05 bDescriptorType

0x01 bEndpointAddress (OUT Endpoint)

0x05 bmAttributes (Transfer: Isochronous / Synch: Asynchronous / Usage: Data)

0x0126 wMaxPacketSize (294 Bytes)

0x01 bInterval

0x00 bRefresh

0x81 bSynchAddress


AS Isochronous Data Endpoint Descriptor:

------------------------------

0x07 bLength

0x25 bDescriptorType

0x01 bDescriptorSubtype

0x01 bmAttributes (Sampling Frequency)

0x02 bLockDelayUnits (Decoded PCM samples)

0x0000 wLockDelay


Endpoint Descriptor (Audio/MIDI):

------------------------------

0x09 bLength

0x05 bDescriptorType

0x81 bEndpointAddress (IN Endpoint)

0x01 bmAttributes (Transfer: Isochronous / Synch: None / Usage: Data)

0x0003 wMaxPacketSize (3 Bytes)

0x01 bInterval

0x04 bRefresh

0x00 bSynchAddress


Interface Descriptor:

------------------------------

0x09 bLength

0x04 bDescriptorType

0x02 bInterfaceNumber

0x00 bAlternateSetting

0x00 bNumEndPoints

0x01 bInterfaceClass (Audio Device Class)

0x02 bInterfaceSubClass (Audio Streaming Interface)

0x00 bInterfaceProtocol

0x05 iInterface "Bar "


Interface Descriptor:

------------------------------

0x09 bLength

0x04 bDescriptorType

0x02 bInterfaceNumber

0x01 bAlternateSetting

0x01 bNumEndPoints

0x01 bInterfaceClass (Audio Device Class)

0x02 bInterfaceSubClass (Audio Streaming Interface)

0x00 bInterfaceProtocol

0x0A iInterface "Bar Input"


AS Interface Descriptor:

------------------------------

0x07 bLength

0x24 bDescriptorType

0x01 bDescriptorSubtype

0x07 bTerminalLink

0x01 bDelay

0x0001 wFormatTag (PCM)


AS Format Type 1 Descriptor:

------------------------------

0x14 bLength

0x24 bDescriptorType

0x02 bDescriptorSubtype

0x01 bFormatType

0x02 bNrChannels

0x03 bSubframeSize

0x18 bBitResolution (24 Bits/sample)

0x04 bSamFreqType (Discrete sampling frequencies)

0x00AC44 tSamFreq(1) (44100 Hz)

0x00BB80 tSamFreq(2) (48000 Hz)

0x00BB80 tSamFreq(3) (48000 Hz)

0x00BB80 tSamFreq(4) (48000 Hz)


Endpoint Descriptor (Audio/MIDI):

------------------------------

0x09 bLength

0x05 bDescriptorType

0x82 bEndpointAddress (IN Endpoint)

0x05 bmAttributes (Transfer: Isochronous / Synch: Asynchronous / Usage: Data)

0x0126 wMaxPacketSize (294 Bytes)

0x01 bInterval

0x00 bRefresh

0x00 bSynchAddress


AS Isochronous Data Endpoint Descriptor:

------------------------------

0x07 bLength

0x25 bDescriptorType

0x01 bDescriptorSubtype

0x01 bmAttributes (Sampling Frequency)

0x00 bLockDelayUnits (Undefined)

0x0000 wLockDelay


String Descriptor Table

--------------------------------

Index LANGID String

0x00 0x0000 0x0409

0x01 0x0409 "Foo"

0x03 0x0409 "Bar"

0x0E 0x0409 "Foo Internal Clock"

0x0D 0x0409 "Foo Clock Selector"

0x12 0x0409 "Analogue 1"

0x13 0x0409 "Analogue 2"

0x14 0x0409 "Analogue 3"

0x15 0x0409 "Analogue 4"

0x06 0x0409 "Bar "

0x16 0x0409 "Analogue 1"

0x17 0x0409 "Analogue 2"

0x18 0x0409 "Analogue 3"

0x19 0x0409 "Analogue 4"

0x07 0x0409 "Bar "

0x0F 0x0409 "Foo DFU"

0x08 0x0409 "Bar"

0x0B 0x0409 "Bar Output"

0x0C 0x0409 "Bar Input"

0x09 0x0409 "Bar Output"

0x04 0x0409 "Bar "

0x05 0x0409 "Bar "

0x0A 0x0409 "Bar Input"

0xEE 0x0000 Request failed with 0x0000001F


------------------------------


Connection path for device:

Intel(R) ICH10 Family USB Enhanced Host Controller - 3A3C

Root Hub

Bar (VID=0x0f00 PID=0x0baa)


Brought to you by TDD v1.83.0, Mar 7 2014, 14:22:05

Posted on Jul 31, 2014 3:45 PM

Reply
3 replies

Oct 7, 2015 4:56 PM in response to HellOnWeelz

It seemed to be a bug in Mavericks, and also presented in Yosemite at the time; I can't speak for later on. If it is a USB composite device (in my described case, there is a DFU descriptor in addition to the audio), and you enumerate the first time while a MIDI-aware application (like AMS or a DAW) is running, "Generic MIDI Device" tends to be the result. In addition to the "new configuration" workaround I described, you can also perform the following:


1. Disconnect your device

2. Delete it from the AMS MIDI window.

3. Close any and all MIDI-aware applications (like AMS, Live, Reason, Garageband, Pro Tools, whatever)

4. Reconnect your device, and wait for a few seconds to let it enumerate.

5. It should now show up with the correct MIDI device name when you open AMS or whatever.

generic "usb midi device" in 10.9 / Mavericks

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple ID.