* snd-usb-audio - Driver for M-Audio Fast Track Pro @ 2006-08-08 16:16 peter.oehry 2006-08-08 17:02 ` Clemens Ladisch 0 siblings, 1 reply; 18+ messages in thread From: peter.oehry @ 2006-08-08 16:16 UTC (permalink / raw) To: alsa-devel Hello My Name is Peter Oehry and I own a Fast Track Pro USB interface from M-Audio. Maybe you can help me to improve the usb driver to support the 24-Bit capability of this device. What I found out so far: The device has two configuration sets. The first one (chosen by default) supports only 16-Bit. This mode works without any problems. As I switched to the second configuration (by writint 2 to /sys/bus/usb/devices/1-1/bConfigurationValue) more Interface alternatives can be seen. I could mail the complete device description. How can I add a quirk that the Configuration set is chosen by default? In this configuration I was able to connect and get some sound through the 24-Bit mode. But the sound seems to be a little bit scrambled up. One chanel has only a bit of the propper sound with very high distortion and the other channel has almost the right sound. But also higher distortion than in 16-Bit mode. Does any body know this sort of problems? Maybe another device has a similar problem. Maybe one of the existent quirks will do the job? Where can I start to debug the problem? Thanks in advance Peter Oehry -- Peter Oehry Electronic Engineer peter.oehry@gmx.li ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: snd-usb-audio - Driver for M-Audio Fast Track Pro 2006-08-08 16:16 snd-usb-audio - Driver for M-Audio Fast Track Pro peter.oehry @ 2006-08-08 17:02 ` Clemens Ladisch 2006-08-08 18:23 ` Thibault Le Meur 2006-08-08 18:47 ` Peter Oehry 0 siblings, 2 replies; 18+ messages in thread From: Clemens Ladisch @ 2006-08-08 17:02 UTC (permalink / raw) To: peter.oehry, alsa-devel peter.oehry@gmx.li wrote: > My Name is Peter Oehry and I own a Fast Track Pro USB interface from > M-Audio. > > Maybe you can help me to improve the usb driver to support the 24-Bit > capability of this device. > > What I found out so far: > > The device has two configuration sets. The first one (chosen by > default) supports only 16-Bit. This mode works without any problems. > As I switched to the second configuration (by writint 2 to > /sys/bus/usb/devices/1-1/bConfigurationValue) more Interface > alternatives can be seen. I could mail the complete device > description. Please do show the "lsusb -v" output. > How can I add a quirk that the Configuration set is chosen by default? There is no predefined quirk for this. I guess you'd need another boot quirk. > In this configuration I was able to connect and get some sound through > the 24-Bit mode. But the sound seems to be a little bit scrambled up. > One chanel has only a bit of the propper sound with very high > distortion and the other channel has almost the right sound. But also > higher distortion than in 16-Bit mode. > > Does any body know this sort of problems? Maybe another device has a > similar problem. Some other M-Audio USB devices use big-endian samples. Regards, Clemens ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: snd-usb-audio - Driver for M-Audio Fast Track Pro 2006-08-08 17:02 ` Clemens Ladisch @ 2006-08-08 18:23 ` Thibault Le Meur 2006-08-09 3:19 ` Thierry Vignaud 2006-08-08 18:47 ` Peter Oehry 1 sibling, 1 reply; 18+ messages in thread From: Thibault Le Meur @ 2006-08-08 18:23 UTC (permalink / raw) To: alsa-devel >> In this configuration I was able to connect and get some sound through >> the 24-Bit mode. But the sound seems to be a little bit scrambled up. >> One chanel has only a bit of the propper sound with very high >> distortion and the other channel has almost the right sound. But also >> higher distortion than in 16-Bit mode. >> >> Does any body know this sort of problems? Maybe another device has a >> similar problem. > > Some other M-Audio USB devices use big-endian samples. It might not be only a problem with BigEndian devices. For instance I had to introduce the device_setup module parameter in order to make my Audiophile USB pre-select 16bits OR 24bits mode because switching between the two modes while the device is turned on doesn't work: In fact there is a 3 bytes sample sequence such as A-B-C D-E-F is read B-C-D E-F-G leading to a highly distorted sound. If it turned out to be the same issue, you should add a quirk equivalent to the one I introduced for the Audiophile-USB device (See the Audiopghile-USB.txt docs from the docs directory for details). Regards, Thibault ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: snd-usb-audio - Driver for M-Audio Fast Track Pro 2006-08-08 18:23 ` Thibault Le Meur @ 2006-08-09 3:19 ` Thierry Vignaud 2006-08-09 8:26 ` Thibault Le Meur 0 siblings, 1 reply; 18+ messages in thread From: Thierry Vignaud @ 2006-08-09 3:19 UTC (permalink / raw) To: Thibault Le Meur; +Cc: alsa-devel Thibault Le Meur <Thibault.LeMeur@supelec.fr> writes: > For instance I had to introduce the device_setup module parameter in > order to make my Audiophile USB pre-select 16bits OR 24bits mode > because switching between the two modes while the device is turned > on doesn't work: is it a linux kernel limitation or an harware issue (eg does switching fork under windows)? ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: snd-usb-audio - Driver for M-Audio Fast Track Pro 2006-08-09 3:19 ` Thierry Vignaud @ 2006-08-09 8:26 ` Thibault Le Meur 0 siblings, 0 replies; 18+ messages in thread From: Thibault Le Meur @ 2006-08-09 8:26 UTC (permalink / raw) To: Thierry Vignaud; +Cc: alsa-devel >> For instance I had to introduce the device_setup module parameter in >> order to make my Audiophile USB pre-select 16bits OR 24bits mode >> because switching between the two modes while the device is turned >> on doesn't work: > > is it a linux kernel limitation or an harware issue (eg does switching > fork under windows)? Difficult to say... The Audiophile USB manual for Windows says that it is required to close any application when switching sample depth modes in the M-Audio Control Panel: but it is not necessary to turn off/on the device under windows. Under linux however, it is necessary to turn the device off, then initialize the module to only activate the Interfaces/AltSettings corresponding to the sample depth chosen and then turn on the device again ! I checked the USB messages sent and it seems that they are "equivalent" in windows/linux: I mean all Interfaces/AltSet are initialized to AltSet 0 then the Interfaces/AltSettings corresponding to the sample depth chosen are activated with a SELECT_INTERFACE message. However under windows when switching modes, there are 'sometimes' (I haven't investigated enough to analyze this)several AltSet resettings (Interfaces/AltSet initialized to AltSet 0) before setting again the correct Interfaces/AltSet. I tried several patches in order to avoid this limitation (reset the usb device, reset all interfaces to AltSet 0 several times before re-setting them...) but nothing proved to be usefull for this issue. Even if there is a hardware limitation, we should be able to avoid the Turn Off/On limitation by better looking at the windows driver... Thibault ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: snd-usb-audio - Driver for M-Audio Fast Track Pro 2006-08-08 17:02 ` Clemens Ladisch 2006-08-08 18:23 ` Thibault Le Meur @ 2006-08-08 18:47 ` Peter Oehry 2006-08-08 20:22 ` Thibault Le Meur 1 sibling, 1 reply; 18+ messages in thread From: Peter Oehry @ 2006-08-08 18:47 UTC (permalink / raw) To: Clemens Ladisch; +Cc: alsa-devel On Tue, 08 Aug 2006 19:02:28 +0200 "Clemens Ladisch" <cladisch@fastmail.net> wrote: > peter.oehry@gmx.li wrote: > > What I found out so far: > > > > The device has two configuration sets. The first one (chosen by > > default) supports only 16-Bit. This mode works without any problems. > > As I switched to the second configuration (by writint 2 to > > /sys/bus/usb/devices/1-1/bConfigurationValue) more Interface > > alternatives can be seen. I could mail the complete device > > description. > > Please do show the "lsusb -v" output. see at the end of the mail. What I know from the manual is that the device can do either 4X4 (2 stereo in and 2 stereo out) in 16-Bit mode up to 48kHz or 4x2 2 stereo in and 1 stero out in 24-Bit mode up to 48kHz or 2X4 1 stereo in and 2 stereo out in 24-Bit mode up to 48kHz some more limitations are present when using higher sampling rates up to 96kHz thus I belive that normally in 24-Bit mode the alternate settings 3 and 6 should not be used. At least I had no output witch setting 3 and I had an output with setting 2. > > > How can I add a quirk that the Configuration set is chosen by default? > > There is no predefined quirk for this. > I guess you'd need another boot quirk. Do you know which calls are necessary to switch the config of a usb device? > > > In this configuration I was able to connect and get some sound through > > the 24-Bit mode. But the sound seems to be a little bit scrambled up. > > One chanel has only a bit of the propper sound with very high > > distortion and the other channel has almost the right sound. But also > > higher distortion than in 16-Bit mode. > > > > Does any body know this sort of problems? Maybe another device has a > > similar problem. > > Some other M-Audio USB devices use big-endian samples. I have to investigate this further. It can not be a general problem because the 16-Bit mode is working. But it can be that the alignment of 24-Bit is different. > > > Regards, > Clemens > > Output of lsusb -v Bus 004 Device 002: ID 0763:2012 Midiman Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x0763 Midiman idProduct 0x2012 bcdDevice 1.00 iManufacturer 1 M-Audio iProduct 2 FastTrack Pro iSerial 0 bNumConfigurations 2 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 326 bNumInterfaces 5 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 MaxPower 200mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 1 Control Device bInterfaceProtocol 0 iInterface 2 FastTrack Pro AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 1 (HEADER) bcdADC 1.00 wTotalLength 75 bInCollection 4 baInterfaceNr( 0) 2 baInterfaceNr( 1) 3 baInterfaceNr( 2) 4 baInterfaceNr( 3) 1 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 5 wTerminalType 0x0101 USB Streaming bAssocTerminal 0 bNrChannels 2 wChannelConfig 0x0003 Left Front (L) Right Front (R) iChannelNames 0 iTerminal 0 AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 6 wTerminalType 0x0601 Analog Connector bAssocTerminal 0 bSourceID 5 iTerminal 0 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 7 wTerminalType 0x0101 USB Streaming bAssocTerminal 0 bNrChannels 2 wChannelConfig 0x0003 Left Front (L) Right Front (R) iChannelNames 0 iTerminal 0 AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 8 wTerminalType 0x0601 Analog Connector bAssocTerminal 0 bSourceID 7 iTerminal 0 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 1 wTerminalType 0x0601 Analog Connector bAssocTerminal 0 bNrChannels 2 wChannelConfig 0x0003 Left Front (L) Right Front (R) iChannelNames 0 iTerminal 0 AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 2 wTerminalType 0x0101 USB Streaming bAssocTerminal 0 bSourceID 1 iTerminal 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 1 Audio bInterfaceSubClass 3 MIDI Streaming bInterfaceProtocol 0 iInterface 2 FastTrack Pro MIDIStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (HEADER) bcdADC 1.00 wTotalLength 65 MIDIStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (MIDI_IN_JACK) bJackType 1 Embedded bJackID 1 iJack 0 MIDIStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (MIDI_IN_JACK) bJackType 2 External bJackID 2 iJack 0 MIDIStreaming Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (MIDI_OUT_JACK) bJackType 1 Embedded bJackID 3 bNrInputPins 1 baSourceID( 0) 2 BaSourcePin( 0) 1 iJack 0 MIDIStreaming Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (MIDI_OUT_JACK) bJackType 2 External bJackID 4 bNrInputPins 1 baSourceID( 0) 1 BaSourcePin( 0) 1 iJack 0 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0010 1x 16 bytes bInterval 0 bRefresh 0 bSynchAddress 0 MIDIStreaming Endpoint Descriptor: bLength 5 bDescriptorType 37 bDescriptorSubtype 1 (GENERAL) bNumEmbMIDIJack 1 baAssocJackID( 0) 1 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0010 1x 16 bytes bInterval 0 bRefresh 0 bSynchAddress 0 MIDIStreaming Endpoint Descriptor: bLength 5 bDescriptorType 37 bDescriptorSubtype 1 (GENERAL) bNumEmbMIDIJack 1 baAssocJackID( 0) 3 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 5 bDelay 1 frames wFormatTag 1 PCM AudioStreaming Interface Descriptor: bLength 11 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 2 bBitResolution 16 bSamFreqType 1 Discrete tSamFreq[ 0] 44100 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 9 Transfer Type Isochronous Synch Type Adaptive Usage Type Data wMaxPacketSize 0x00c8 1x 200 bytes bInterval 1 bRefresh 0 bSynchAddress 0 AudioControl Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x01 Sampling Frequency bLockDelayUnits 0 Undefined wLockDelay 0 Undefined Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 7 bDelay 1 frames wFormatTag 1 PCM AudioStreaming Interface Descriptor: bLength 11 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 2 bBitResolution 16 bSamFreqType 1 Discrete tSamFreq[ 0] 44100 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 9 Transfer Type Isochronous Synch Type Adaptive Usage Type Data wMaxPacketSize 0x00c8 1x 200 bytes bInterval 1 bRefresh 0 bSynchAddress 0 AudioControl Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x01 Sampling Frequency bLockDelayUnits 0 Undefined wLockDelay 0 Undefined Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 4 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 4 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 2 bDelay 1 frames wFormatTag 1 PCM AudioStreaming Interface Descriptor: bLength 14 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 2 bBitResolution 16 bSamFreqType 0 Continuous tLowerSamFreq 8000 tUpperSamFreq 48000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x00c8 1x 200 bytes bInterval 1 bRefresh 0 bSynchAddress 0 AudioControl Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bLockDelayUnits 0 Undefined wLockDelay 0 Undefined Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 1165 bNumInterfaces 6 bConfigurationValue 2 iConfiguration 0 bmAttributes 0x80 MaxPower 200mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 1 Control Device bInterfaceProtocol 0 iInterface 2 FastTrack Pro AudioControl Interface Descriptor: bLength 13 bDescriptorType 36 bDescriptorSubtype 1 (HEADER) bcdADC 1.00 wTotalLength 97 bInCollection 5 baInterfaceNr( 0) 2 baInterfaceNr( 1) 3 baInterfaceNr( 2) 4 baInterfaceNr( 3) 5 baInterfaceNr( 4) 1 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 5 wTerminalType 0x0101 USB Streaming bAssocTerminal 0 bNrChannels 2 wChannelConfig 0x0003 Left Front (L) Right Front (R) iChannelNames 0 iTerminal 0 AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 6 wTerminalType 0x0601 Analog Connector bAssocTerminal 0 bSourceID 5 iTerminal 0 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 7 wTerminalType 0x0101 USB Streaming bAssocTerminal 0 bNrChannels 2 wChannelConfig 0x0003 Left Front (L) Right Front (R) iChannelNames 0 iTerminal 0 AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 8 wTerminalType 0x0601 Analog Connector bAssocTerminal 0 bSourceID 7 iTerminal 0 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 1 wTerminalType 0x0601 Analog Connector bAssocTerminal 0 bNrChannels 2 wChannelConfig 0x0003 Left Front (L) Right Front (R) iChannelNames 0 iTerminal 0 AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 2 wTerminalType 0x0101 USB Streaming bAssocTerminal 0 bSourceID 1 iTerminal 0 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 3 wTerminalType 0x0601 Analog Connector bAssocTerminal 0 bNrChannels 2 wChannelConfig 0x0003 Left Front (L) Right Front (R) iChannelNames 0 iTerminal 0 AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 4 wTerminalType 0x0101 USB Streaming bAssocTerminal 0 bSourceID 3 iTerminal 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 1 Audio bInterfaceSubClass 3 MIDI Streaming bInterfaceProtocol 0 iInterface 2 FastTrack Pro MIDIStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (HEADER) bcdADC 1.00 wTotalLength 65 MIDIStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (MIDI_IN_JACK) bJackType 1 Embedded bJackID 1 iJack 0 MIDIStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (MIDI_IN_JACK) bJackType 2 External bJackID 2 iJack 0 MIDIStreaming Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (MIDI_OUT_JACK) bJackType 1 Embedded bJackID 3 bNrInputPins 1 baSourceID( 0) 2 BaSourcePin( 0) 1 iJack 0 MIDIStreaming Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (MIDI_OUT_JACK) bJackType 2 External bJackID 4 bNrInputPins 1 baSourceID( 0) 1 BaSourcePin( 0) 1 iJack 0 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0010 1x 16 bytes bInterval 0 bRefresh 0 bSynchAddress 0 MIDIStreaming Endpoint Descriptor: bLength 5 bDescriptorType 37 bDescriptorSubtype 1 (GENERAL) bNumEmbMIDIJack 1 baAssocJackID( 0) 1 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0010 1x 16 bytes bInterval 0 bRefresh 0 bSynchAddress 0 MIDIStreaming Endpoint Descriptor: bLength 5 bDescriptorType 37 bDescriptorSubtype 1 (GENERAL) bNumEmbMIDIJack 1 baAssocJackID( 0) 3 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 5 bDelay 1 frames wFormatTag 1 PCM AudioStreaming Interface Descriptor: bLength 14 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 2 bBitResolution 16 bSamFreqType 2 Discrete tSamFreq[ 0] 44100 tSamFreq[ 1] 48000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 9 Transfer Type Isochronous Synch Type Adaptive Usage Type Data wMaxPacketSize 0x00c8 1x 200 bytes bInterval 1 bRefresh 0 bSynchAddress 0 AudioControl Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x01 Sampling Frequency bLockDelayUnits 0 Undefined wLockDelay 0 Undefined Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 2 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 5 bDelay 1 frames wFormatTag 1 PCM AudioStreaming Interface Descriptor: bLength 14 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 3 bBitResolution 24 bSamFreqType 2 Discrete tSamFreq[ 0] 44100 tSamFreq[ 1] 48000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 9 Transfer Type Isochronous Synch Type Adaptive Usage Type Data wMaxPacketSize 0x0128 1x 296 bytes bInterval 1 bRefresh 0 bSynchAddress 0 AudioControl Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x01 Sampling Frequency bLockDelayUnits 0 Undefined wLockDelay 0 Undefined Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 3 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 5 bDelay 1 frames wFormatTag 1 PCM AudioStreaming Interface Descriptor: bLength 20 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 3 bBitResolution 24 bSamFreqType 4 Discrete tSamFreq[ 0] 44100 tSamFreq[ 1] 48000 tSamFreq[ 2] 88200 tSamFreq[ 3] 96000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 9 Transfer Type Isochronous Synch Type Adaptive Usage Type Data wMaxPacketSize 0x0248 1x 584 bytes bInterval 1 bRefresh 0 bSynchAddress 0 AudioControl Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x01 Sampling Frequency bLockDelayUnits 0 Undefined wLockDelay 0 Undefined Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 4 bNumEndpoints 2 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 5 bDelay 1 frames wFormatTag 1 PCM AudioStreaming Interface Descriptor: bLength 14 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 2 bBitResolution 16 bSamFreqType 0 Continuous tLowerSamFreq 8000 tUpperSamFreq 48000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x00c8 1x 200 bytes bInterval 1 bRefresh 0 bSynchAddress 131 AudioControl Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bLockDelayUnits 0 Undefined wLockDelay 0 Undefined Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0003 1x 3 bytes bInterval 1 bRefresh 6 bSynchAddress 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 5 bNumEndpoints 2 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 5 bDelay 1 frames wFormatTag 1 PCM AudioStreaming Interface Descriptor: bLength 14 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 3 bBitResolution 24 bSamFreqType 0 Continuous tLowerSamFreq 8000 tUpperSamFreq 48000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0128 1x 296 bytes bInterval 1 bRefresh 0 bSynchAddress 131 AudioControl Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bLockDelayUnits 0 Undefined wLockDelay 0 Undefined Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0003 1x 3 bytes bInterval 1 bRefresh 6 bSynchAddress 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 6 bNumEndpoints 2 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 5 bDelay 1 frames wFormatTag 1 PCM AudioStreaming Interface Descriptor: bLength 14 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 3 bBitResolution 24 bSamFreqType 0 Continuous tLowerSamFreq 8000 tUpperSamFreq 96000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0248 1x 584 bytes bInterval 1 bRefresh 0 bSynchAddress 131 AudioControl Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bLockDelayUnits 0 Undefined wLockDelay 0 Undefined Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0003 1x 3 bytes bInterval 1 bRefresh 6 bSynchAddress 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 7 bDelay 1 frames wFormatTag 1 PCM AudioStreaming Interface Descriptor: bLength 14 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 2 bBitResolution 16 bSamFreqType 2 Discrete tSamFreq[ 0] 44100 tSamFreq[ 1] 48000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 9 Transfer Type Isochronous Synch Type Adaptive Usage Type Data wMaxPacketSize 0x00c8 1x 200 bytes bInterval 1 bRefresh 0 bSynchAddress 0 AudioControl Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x01 Sampling Frequency bLockDelayUnits 0 Undefined wLockDelay 0 Undefined Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 2 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 7 bDelay 1 frames wFormatTag 1 PCM AudioStreaming Interface Descriptor: bLength 14 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 3 bBitResolution 24 bSamFreqType 2 Discrete tSamFreq[ 0] 44100 tSamFreq[ 1] 48000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 9 Transfer Type Isochronous Synch Type Adaptive Usage Type Data wMaxPacketSize 0x0128 1x 296 bytes bInterval 1 bRefresh 0 bSynchAddress 0 AudioControl Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x01 Sampling Frequency bLockDelayUnits 0 Undefined wLockDelay 0 Undefined Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 3 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 7 bDelay 1 frames wFormatTag 1 PCM AudioStreaming Interface Descriptor: bLength 20 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 3 bBitResolution 24 bSamFreqType 4 Discrete tSamFreq[ 0] 44100 tSamFreq[ 1] 48000 tSamFreq[ 2] 88200 tSamFreq[ 3] 96000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 9 Transfer Type Isochronous Synch Type Adaptive Usage Type Data wMaxPacketSize 0x0248 1x 584 bytes bInterval 1 bRefresh 0 bSynchAddress 0 AudioControl Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x01 Sampling Frequency bLockDelayUnits 0 Undefined wLockDelay 0 Undefined Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 4 bNumEndpoints 2 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 7 bDelay 1 frames wFormatTag 1 PCM AudioStreaming Interface Descriptor: bLength 14 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 2 bBitResolution 16 bSamFreqType 0 Continuous tLowerSamFreq 8000 tUpperSamFreq 48000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x00c8 1x 200 bytes bInterval 1 bRefresh 0 bSynchAddress 132 AudioControl Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bLockDelayUnits 0 Undefined wLockDelay 0 Undefined Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0003 1x 3 bytes bInterval 1 bRefresh 6 bSynchAddress 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 5 bNumEndpoints 2 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 7 bDelay 1 frames wFormatTag 1 PCM AudioStreaming Interface Descriptor: bLength 14 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 3 bBitResolution 24 bSamFreqType 0 Continuous tLowerSamFreq 8000 tUpperSamFreq 48000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0128 1x 296 bytes bInterval 1 bRefresh 0 bSynchAddress 132 AudioControl Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bLockDelayUnits 0 Undefined wLockDelay 0 Undefined Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0003 1x 3 bytes bInterval 1 bRefresh 6 bSynchAddress 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 6 bNumEndpoints 2 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 7 bDelay 1 frames wFormatTag 1 PCM AudioStreaming Interface Descriptor: bLength 14 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 3 bBitResolution 24 bSamFreqType 0 Continuous tLowerSamFreq 8000 tUpperSamFreq 96000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0248 1x 584 bytes bInterval 1 bRefresh 0 bSynchAddress 132 AudioControl Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bLockDelayUnits 0 Undefined wLockDelay 0 Undefined Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0003 1x 3 bytes bInterval 1 bRefresh 6 bSynchAddress 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 7 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 7 bDelay 1 frames wFormatTag 8193 IEC1937_AC-3 AudioStreaming Interface Descriptor: bLength 14 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 3 (FORMAT_TYPE_III) bNrChannels 2 bSubframeSize 2 bBitResolution 16 bSamFreqType 2 Discrete tSamFreq[ 0] 44100 tSamFreq[ 1] 48000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 9 Transfer Type Isochronous Synch Type Adaptive Usage Type Data wMaxPacketSize 0x00c8 1x 200 bytes bInterval 1 bRefresh 0 bSynchAddress 0 AudioControl Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x01 Sampling Frequency bLockDelayUnits 0 Undefined wLockDelay 0 Undefined Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 4 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 4 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 2 bDelay 1 frames wFormatTag 1 PCM AudioStreaming Interface Descriptor: bLength 14 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 2 bBitResolution 16 bSamFreqType 0 Continuous tLowerSamFreq 8000 tUpperSamFreq 48000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x00c8 1x 200 bytes bInterval 1 bRefresh 0 bSynchAddress 0 AudioControl Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bLockDelayUnits 0 Undefined wLockDelay 0 Undefined Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 4 bAlternateSetting 2 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 2 bDelay 1 frames wFormatTag 1 PCM AudioStreaming Interface Descriptor: bLength 14 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 3 bBitResolution 24 bSamFreqType 0 Continuous tLowerSamFreq 8000 tUpperSamFreq 48000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0128 1x 296 bytes bInterval 1 bRefresh 0 bSynchAddress 0 AudioControl Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bLockDelayUnits 0 Undefined wLockDelay 0 Undefined Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 4 bAlternateSetting 3 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 2 bDelay 1 frames wFormatTag 1 PCM AudioStreaming Interface Descriptor: bLength 14 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 3 bBitResolution 24 bSamFreqType 0 Continuous tLowerSamFreq 8000 tUpperSamFreq 96000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0248 1x 584 bytes bInterval 1 bRefresh 0 bSynchAddress 0 AudioControl Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bLockDelayUnits 0 Undefined wLockDelay 0 Undefined Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 5 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 5 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 4 bDelay 1 frames wFormatTag 1 PCM AudioStreaming Interface Descriptor: bLength 14 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 2 bBitResolution 16 bSamFreqType 0 Continuous tLowerSamFreq 8000 tUpperSamFreq 48000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x86 EP 6 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x00c8 1x 200 bytes bInterval 1 bRefresh 0 bSynchAddress 0 AudioControl Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bLockDelayUnits 0 Undefined wLockDelay 0 Undefined Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 5 bAlternateSetting 2 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 4 bDelay 1 frames wFormatTag 1 PCM AudioStreaming Interface Descriptor: bLength 14 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 3 bBitResolution 24 bSamFreqType 0 Continuous tLowerSamFreq 8000 tUpperSamFreq 48000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x86 EP 6 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0128 1x 296 bytes bInterval 1 bRefresh 0 bSynchAddress 0 AudioControl Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bLockDelayUnits 0 Undefined wLockDelay 0 Undefined Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 5 bAlternateSetting 3 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 4 bDelay 1 frames wFormatTag 1 PCM AudioStreaming Interface Descriptor: bLength 14 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 3 bBitResolution 24 bSamFreqType 0 Continuous tLowerSamFreq 8000 tUpperSamFreq 96000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x86 EP 6 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0248 1x 584 bytes bInterval 1 bRefresh 0 bSynchAddress 0 AudioControl Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bLockDelayUnits 0 Undefined wLockDelay 0 Undefined ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: snd-usb-audio - Driver for M-Audio Fast Track Pro 2006-08-08 18:47 ` Peter Oehry @ 2006-08-08 20:22 ` Thibault Le Meur 2006-08-08 21:41 ` Peter Oehry 0 siblings, 1 reply; 18+ messages in thread From: Thibault Le Meur @ 2006-08-08 20:22 UTC (permalink / raw) To: Peter Oehry; +Cc: alsa-devel > What I know from the manual is that the device can do > > either 4X4 (2 stereo in and 2 stereo out) in 16-Bit mode up to 48kHz > or 4x2 2 stereo in and 1 stero out in 24-Bit mode up to 48kHz > or 2X4 1 stereo in and 2 stereo out in 24-Bit mode up to 48kHz Same thing for Audiophile USB. > some more limitations are present when using higher sampling rates up > to 96kHz > thus I belive that normally in 24-Bit mode the alternate settings 3 > and 6 should not > be used. At least I had no output witch setting 3 and I had an output > with setting 2. I had to find out which mapping is used for my device as well. I used usb sniff under windows and played with the M-Audio control panel... My conclusions are described in Documentation/Audiophile-Usb.txt which can give you ideas about how M-Audio implements usb interfaces. > > Do you know which calls are necessary to switch the config of a usb device? In my case I use a device_setup parameter at the module initialization, because it seems that switching from AltSettings corresponding to 16bits endpoints to AltSettings corresponding to 24bits endpoints causes allignment errors. > I have to investigate this further. It can not be a general problem > because the 16-Bit mode is working. But it can be that the alignment > of 24-Bit is different. Yes looks like it is.... you can have a look at the patch I proposed, you may find interresting info: http://hg-mirror.alsa-project.org/alsa-kernel?cmd=changeset;node=4249e5ffdb3f;style=gitweb Regards, Thibault ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: snd-usb-audio - Driver for M-Audio Fast Track Pro 2006-08-08 20:22 ` Thibault Le Meur @ 2006-08-08 21:41 ` Peter Oehry 2006-08-08 22:07 ` Thibault Le Meur 0 siblings, 1 reply; 18+ messages in thread From: Peter Oehry @ 2006-08-08 21:41 UTC (permalink / raw) To: Thibault Le Meur, alsa-devel On Tue, 08 Aug 2006 22:22:50 +0200 Thibault Le Meur <Thibault.LeMeur@supelec.fr> wrote: > > What I know from the manual is that the device can do > > > > either 4X4 (2 stereo in and 2 stereo out) in 16-Bit mode up to 48kHz > > or 4x2 2 stereo in and 1 stero out in 24-Bit mode up to 48kHz > > or 2X4 1 stereo in and 2 stereo out in 24-Bit mode up to 48kHz > > Same thing for Audiophile USB. > > > Yes looks like it is.... you can have a look at the patch I proposed, > you may find interresting info: > > http://hg-mirror.alsa-project.org/alsa-kernel?cmd=changeset;node=4249e5ffdb3f;style=gitweb > > Regards, > Thibault > > Thank you for all this information! I'll need some time to check what is needed for the Fast Track Pro. I think there is a big chance that many things are handled the same way like Audiophile. At least the number of Channels and also the mapping of digital an analog interfaces are the same. I tried to connect directly to the 24-Bit mode after startup of the USB device and I had the same "wrong" signal on both channels. This makes me positve to believe that the byte alignement (like you described) gets mixed up after mode switching. The distortion I head on both channels could have something to do with endianess. Instead of a sine wave I had a 3rd Harmonic at level of about -55dB (in the range of one byte) and the noise level was about -80dB (the range of the second byte). Regards, Peter ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: snd-usb-audio - Driver for M-Audio Fast Track Pro 2006-08-08 21:41 ` Peter Oehry @ 2006-08-08 22:07 ` Thibault Le Meur 2006-08-10 21:33 ` Peter Oehry 0 siblings, 1 reply; 18+ messages in thread From: Thibault Le Meur @ 2006-08-08 22:07 UTC (permalink / raw) To: Peter Oehry; +Cc: alsa-devel > Thank you for all this information! You're welcome, I had that much difficulties in finding these mapping that I'm happy to see it can be usefull for other devices ;-) > I'll need some time to check what is needed for the Fast Track Pro. In fact it's not that tricky: just install a usb sniffer under windows, then play with the control panel and check the SELECT_INTERFACE messages for Interface/AlternateSetting. With the audiophile USB, it only changes: * if you change the bit depth * if you change the sampling rate * if you enable/disable the SPDIF input > I think there is a big chance that many things are handled the same > way like Audiophile. At least the number of Channels and also the > mapping of digital an analog interfaces are the same. I tried to > connect directly to the 24-Bit mode after startup of the USB device > and I had the same "wrong" signal on both channels. This makes me > positve to believe that the byte alignement (like you described) gets > mixed up after mode switching. Yes that sounds exactly the same... > The distortion I head on both channels could have something to do > with endianess. Instead of a sine wave I had a 3rd Harmonic at level > of about -55dB (in the range of one byte) and the noise level was > about -80dB (the range of the second byte). The relevant section in usbaudio.c is the "is_big_endian_format" function. Maybe just testing by adding your usb_id in this function will correct endianness ? See: 2297 /* 2298 * check if the device uses big-endian samples 2299 */ 2300 static int is_big_endian_format(struct snd_usb_audio *chip, struct audioformat *fp) 2301 { 2302 switch (chip->usb_id) { 2303 case USB_ID(0x0763, 0x2001): /* M-Audio Quattro: captured data only */ 2304 if (fp->endpoint & USB_DIR_IN) 2305 return 1; 2306 break; 2307 case USB_ID(0x0763, 0x2003): /* M-Audio Audiophile USB */ 2308 return 1; 2309 } 2310 return 0; 2311 } Regards, Thibault ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: snd-usb-audio - Driver for M-Audio Fast Track Pro 2006-08-08 22:07 ` Thibault Le Meur @ 2006-08-10 21:33 ` Peter Oehry 2006-08-11 9:20 ` Thibault Le Meur 0 siblings, 1 reply; 18+ messages in thread From: Peter Oehry @ 2006-08-10 21:33 UTC (permalink / raw) To: Thibault Le Meur, alsa-devel > > I'll need some time to check what is needed for the Fast Track Pro. > > In fact it's not that tricky: just install a usb sniffer under windows, > then play with the control panel and check the SELECT_INTERFACE > messages for Interface/AlternateSetting. With the audiophile USB, it > only changes: > * if you change the bit depth > * if you change the sampling rate > * if you enable/disable the SPDIF input > I'll do some investigations on that this weekend. > > I think there is a big chance that many things are handled the same > > way like Audiophile. At least the number of Channels and also the > > mapping of digital an analog interfaces are the same. I tried to > > connect directly to the 24-Bit mode after startup of the USB device > > and I had the same "wrong" signal on both channels. This makes me > > positve to believe that the byte alignement (like you described) gets > > mixed up after mode switching. > > Yes that sounds exactly the same... > > > The distortion I head on both channels could have something to do > > with endianess. Instead of a sine wave I had a 3rd Harmonic at level > > of about -55dB (in the range of one byte) and the noise level was > > about -80dB (the range of the second byte). > I can say now a bit more about the actual signal I get. It has not only to do with little or big endian. One problem is that it is dependant on something todo with initialisation. So the signal I get is not allways the same. Sometimes even the working 16-Bit signal is messed up. We talked about that the byte ordering might be mixed up. Basically I got to differt sorts of signals. I recorded a sine and looked at the actual samples. Lets assume that if we have little endian the right samples would be organised like that: L1-L2-L3 R1-R2-R3 (L1 is left least significant byte and R3 is right most sig. byte) Can someone comfirm that this would be right? wat I get look like that: L3-L3-L3 R3-R3-R3 in one case and L3-L2-L3 R2-R3-R2 in the other case the second case is nearly right for the left chanel. In many case you won't be able to hear the wrong byte in the least significat position. But what I can say for shure is that all wrong signals are not wrong because of byte alignment. Sometimes I'm not shure who (which application) I can believe or not. Does anybody now a way to check what realy comes from the USB device? Regards, Peter ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: snd-usb-audio - Driver for M-Audio Fast Track Pro 2006-08-10 21:33 ` Peter Oehry @ 2006-08-11 9:20 ` Thibault Le Meur 2006-08-13 21:48 ` Peter Oehry 0 siblings, 1 reply; 18+ messages in thread From: Thibault Le Meur @ 2006-08-11 9:20 UTC (permalink / raw) To: Peter Oehry; +Cc: alsa-devel >> > I'll need some time to check what is needed for the Fast Track Pro. >> >> In fact it's not that tricky: just install a usb sniffer under windows, >> then play with the control panel and check the SELECT_INTERFACE >> messages for Interface/AlternateSetting. With the audiophile USB, it >> only changes: >> * if you change the bit depth >> * if you change the sampling rate >> * if you enable/disable the SPDIF input >> > > I'll do some investigations on that this weekend. Also note that when the SPDIF input is enabled, the device might try to synchronize to the external digital signal. This leads to additionnal synch errors when no signal is read on this digital input. >> > I think there is a big chance that many things are handled the same >> > way like Audiophile. At least the number of Channels and also the >> > mapping of digital an analog interfaces are the same. I tried to >> > connect directly to the 24-Bit mode after startup of the USB device >> > and I had the same "wrong" signal on both channels. This makes me >> > positve to believe that the byte alignement (like you described) gets >> > mixed up after mode switching. >> >> Yes that sounds exactly the same... >> >> > The distortion I head on both channels could have something to do >> > with endianess. Instead of a sine wave I had a 3rd Harmonic at level >> > of about -55dB (in the range of one byte) and the noise level was >> > about -80dB (the range of the second byte). >> > > I can say now a bit more about the actual signal I get. It has not only to do > with little or big endian. > > One problem is that it is dependant on something todo with initialisation. So > the signal I get is not allways the same. My problem was also dependent on initialization, and I didn't get extactly the same result each time: see https://bugtrack.alsa-project.org/alsa-bug/view.php?id=1801 > Sometimes even the working 16-Bit > signal is messed up. We talked about that the byte ordering might be > mixed up. I hadn't any problem with 16bits signals but I remember having seen some quirks for my device in the code in order to select usb interfaces by order of preference depending of their synchronization (adpative/synchronous, asynch). However, these quirks are no longer needed if the device is correctly initialized with device_setup because adaptive/synchronous interfaces are correctly choosen depending on the SPDIF input status. If the Interfaces/AltSets mappings are exactly the same for your device and the audiophile usb, why not try to recompile the usbaudio.c driver with: * the big-endian patch (adding your usb_id to the previously mentionned function) * add your usb_id (already used for the audiophile usb) to the following code: + + /* audiophile usb: skip altsets incompatible with device_setup + */ + if (chip->usb_id == USB_ID(0x0763, 0x2003) && + audiophile_skip_setting_quirk(chip, iface_no, altno)) + continue; > Basically I got to differt sorts of signals. I recorded a sine and > looked at the actual samples. > Lets assume that if we have little endian the right samples would be > organised > like that: > L1-L2-L3 R1-R2-R3 > (L1 is left least significant byte and R3 is right most sig. byte) > Can someone comfirm that this would be right? > > wat I get look like that: > L3-L3-L3 R3-R3-R3 in one case and > L3-L2-L3 R2-R3-R2 in the other case Could this be linked to the fact that the Interface/AltSet used is in fact synched to the inexistant signl on SPDIF input ? > Sometimes I'm not shure who (which application) I can believe or not. > Does anybody > now a way to check what realy comes from the USB device? Under linux if you eable debugfs and usbmon at the kernel compilation time you can read the usb bus data: see http://www.mjmwired.net/kernel/Documentation/usb/usbmon.txt Regards, Thibault ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: snd-usb-audio - Driver for M-Audio Fast Track Pro 2006-08-11 9:20 ` Thibault Le Meur @ 2006-08-13 21:48 ` Peter Oehry 2006-08-14 9:57 ` Thibault Le Meur 2006-08-14 11:16 ` Clemens Ladisch 0 siblings, 2 replies; 18+ messages in thread From: Peter Oehry @ 2006-08-13 21:48 UTC (permalink / raw) To: Thibault Le Meur; +Cc: alsa-devel On Fri, 11 Aug 2006 11:20:18 +0200 Thibault Le Meur <Thibault.LeMeur@supelec.fr> wrote: I was able to get some sound in with real 24-Bit :-) > > If the Interfaces/AltSets mappings are exactly the same for your > device and the audiophile usb, why not try to recompile the usbaudio.c > driver with: > * the big-endian patch (adding your usb_id to the previously mentionned > function) > * add your usb_id (already used for the audiophile usb) to the following code: > + + /* audiophile usb: skip altsets incompatible with device_setup + */ > + if (chip->usb_id == USB_ID(0x0763, 0x2003) && + > audiophile_skip_setting_quirk(chip, iface_no, altno)) + continue;t The problem, why your patch didn't work in the first try has different reasons: 1. The mapping of the altsets is not the same: The Fast Track Pro has an aditional 96k altset, the 16-Bit alstest ist 1 (or 4)... and so on. You can see it in the lsusb that I posted. 2. Another interesting thing is that in fact the device sensds the data little endian in 16-Bit mode and big endian in 24-Bit mode. It ist possible that the unused digital input caused some sync problems. But I can not fully test this. I found two solutions to get the desired mode working. 1. Is the way you were going. With some parameters given to the module, the driver decides which settings are kept and which are thrown away. This will result to a working device in the given mode. 2. It was also possible to enter the right mode by doing the same thing the windows driver does. First reset all interfaces to altset zero. And then initialize ALL interfaces used for the desired mode with the right altset. For what I think it should be possible to switch modes without restarting the kernel module and switch on and off the device. It should be possible to switch the mode by resetting all interfaces and setting up the new altsets like the windows driver does. This would eventually need a new proc interace that reads the configuration word instead of the module parameter. Would this be an idea for you. It will take me some more time to do testing in different modes. I'll also complete as much of the different settings as I can so that I can post an almost complete patch to support the Fast Track Pro. I'd have most problems with thesting the digital interface. How do I know if I also need a quirk for the midi devices? The devices are regonized by alsa now without any quirk but I was not able to test them if they are working. Regards, Peter Oehry ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: snd-usb-audio - Driver for M-Audio Fast Track Pro 2006-08-13 21:48 ` Peter Oehry @ 2006-08-14 9:57 ` Thibault Le Meur 2006-08-14 11:16 ` Clemens Ladisch 1 sibling, 0 replies; 18+ messages in thread From: Thibault Le Meur @ 2006-08-14 9:57 UTC (permalink / raw) To: Peter Oehry; +Cc: alsa-devel > On Fri, 11 Aug 2006 11:20:18 +0200 > Thibault Le Meur <Thibault.LeMeur@supelec.fr> wrote: > > I was able to get some sound in with real 24-Bit :-) Great news.. > The problem, why your patch didn't work in the first try has > different reasons: > > 1. The mapping of the altsets is not the same: > The Fast Track Pro has an aditional 96k altset, the 16-Bit alstest > ist 1 (or 4)... > and so on. You can see it in the lsusb that I posted. Yes I should have been able to see, but I was too busy (and lazy) to have a look ;-) sorry. > 2. Another interesting thing is that in fact the device sensds the > data little endian in 16-Bit mode and big endian in 24-Bit mode. Strange... but M-Audio is used to having strange usb device ;-) The issue, here, is that the current usbaudio driver expect a device to be fully big endian or little endian. I haven't seen anywhere a support for partially big-endian devices... this will require a small bit of code to change that. > It ist possible that the unused digital input caused some sync > problems. But I can not fully test this. This will not be an issue if the correct Interfaces/AltSet are activated. > I found two solutions to get the desired mode working. > > 1. Is the way you were going. With some parameters given to the > module, the driver decides which settings are kept and which are > thrown away. This will result to a working device in the given mode. This is not really beautiful but this was the smallest and simplest patch I found ;-) > 2. It was also possible to enter the right mode by doing the same > thing the windows driver does. First reset all interfaces to altset > zero. And then initialize ALL interfaces used for the desired mode > with the right altset. That would be really great, I would be very interested in such a patch, and it could be adapted to the audiophile usb as well. > For what I think it should be possible to switch modes without > restarting the kernel module and switch on and off the device. It > should be possible to switch the mode by resetting all interfaces and > setting up the new altsets like the windows driver does. should work (unless I had no luck in trying such thing) > This would eventually need a new proc interace that reads the > configuration word instead of the module parameter. Would this be an > idea for you. For me it would be fantastic, but I'm not the maintainer of the module: Clemens and Takashi will have better reply on this. However I remember a talk with Takashi just before posting my patch, at that time he would have prefered a completly new module driver for the audiophile usb device. He finally accepted my patch because it was small and didn't change things for other devices. I'm just afraid that your new patch would be much longer, so that the question to add it to the general module or to create a new specific one (as it had been done for the us-12x driver) might be at stake. If a new driver is planned, It would be great to make it generic for M-Audio usb devices since they should have the same constraints. > It will take me some more time to do testing in different modes. I'll > also complete as much of the different settings as I can so that I > can post an almost complete patch to support the Fast Track Pro. I'd > have most problems with thesting the digital interface. Same for me... I had to find other users of the device on the Internet to get feedbacks on this. > How do I know if I also need a quirk for the midi devices? The > devices are regonized by alsa now without any quirk but I was not > able to test them if they are working. Why not ? Don't you have a midi device ? As far as the audiophile usb is concerned MIDI is working without any new patch, and I would be surprised if M-Audio had choosen a different MIDI implementation for the FastTrack Pro interface, but who knows... Regards, Thibault ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: snd-usb-audio - Driver for M-Audio Fast Track Pro 2006-08-13 21:48 ` Peter Oehry 2006-08-14 9:57 ` Thibault Le Meur @ 2006-08-14 11:16 ` Clemens Ladisch 2006-08-14 12:14 ` peter.oehry 2006-08-20 12:19 ` Peter Oehry 1 sibling, 2 replies; 18+ messages in thread From: Clemens Ladisch @ 2006-08-14 11:16 UTC (permalink / raw) To: Peter Oehry, Thibault Le Meur; +Cc: alsa-devel Peter Oehry wrote: > Thibault Le Meur <Thibault.LeMeur@supelec.fr> wrote: > 2. Another interesting thing is that in fact the device sensds the data > little endian in 16-Bit mode and big endian in 24-Bit mode. IIRC other M-Audio devices to that, too. The reasons seems to be that the device is basically big-endian, but the 16-bit interfaces are designed to work with Windows' usbaudio.sys. > For what I think it should be possible to switch modes without restarting > the kernel module and switch on and off the device. It should be possible > to switch the mode by resetting all interfaces and setting up the new > altsets like the windows driver does. This would eventually need a new > proc interace Why proc? If the configuration needs to be changed at runtime, and if the driver cannot do this automatically, a mixer control would be the best solution. > How do I know if I also need a quirk for the midi devices? You need a quirk when there aren't any class-specific descriptors for the MIDI port. Regards, Clemens ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: snd-usb-audio - Driver for M-Audio Fast Track Pro 2006-08-14 11:16 ` Clemens Ladisch @ 2006-08-14 12:14 ` peter.oehry 2006-08-20 12:19 ` Peter Oehry 1 sibling, 0 replies; 18+ messages in thread From: peter.oehry @ 2006-08-14 12:14 UTC (permalink / raw) To: Clemens Ladisch; +Cc: alsa-devel, Thibault Le Meur Quoting Clemens Ladisch <cladisch@fastmail.net>: > Peter Oehry wrote: >> Thibault Le Meur <Thibault.LeMeur@supelec.fr> wrote: >> 2. Another interesting thing is that in fact the device sensds the data >> little endian in 16-Bit mode and big endian in 24-Bit mode. > > IIRC other M-Audio devices to that, too. The reasons seems to be that > the device is basically big-endian, but the 16-bit interfaces are > designed to work with Windows' usbaudio.sys. > >> For what I think it should be possible to switch modes without restarting >> the kernel module and switch on and off the device. It should be possible >> to switch the mode by resetting all interfaces and setting up the new >> altsets like the windows driver does. This would eventually need a new >> proc interace > > Why proc? > > If the configuration needs to be changed at runtime, and if the driver > cannot do this automatically, a mixer control would be the best solution. > This sounds good to me :-) Is the mixer interace good to understand or is there some documentation on it? So I could try to do some testing on that. Would such a solution be accepted in the driver? >> How do I know if I also need a quirk for the midi devices? > > You need a quirk when there aren't any class-specific descriptors for > the MIDI port. Thank you. That will mean that it should work with the Fast Track. I'll organise a MIDI device and thest this. :-) > > > Regards, > Clemens > > > ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: snd-usb-audio - Driver for M-Audio Fast Track Pro 2006-08-14 11:16 ` Clemens Ladisch 2006-08-14 12:14 ` peter.oehry @ 2006-08-20 12:19 ` Peter Oehry 2006-08-28 14:31 ` Thierry Vignaud 1 sibling, 1 reply; 18+ messages in thread From: Peter Oehry @ 2006-08-20 12:19 UTC (permalink / raw) To: Clemens Ladisch; +Cc: alsa-devel, Thibault.LeMeur [-- Attachment #1: Type: text/plain, Size: 2299 bytes --] On Mon, 14 Aug 2006 13:16:36 +0200 "Clemens Ladisch" <cladisch@fastmail.net> wrote: > Peter Oehry wrote: > > Thibault Le Meur <Thibault.LeMeur@supelec.fr> wrote: > > 2. Another interesting thing is that in fact the device sensds the data > > little endian in 16-Bit mode and big endian in 24-Bit mode. > > IIRC other M-Audio devices to that, too. The reasons seems to be that > the device is basically big-endian, but the 16-bit interfaces are > designed to work with Windows' usbaudio.sys. > > > For what I think it should be possible to switch modes without restarting > > the kernel module and switch on and off the device. It should be possible > > to switch the mode by resetting all interfaces and setting up the new > > altsets like the windows driver does. This would eventually need a new > > proc interace > > Why proc? > > If the configuration needs to be changed at runtime, and if the driver > cannot do this automatically, a mixer control would be the best solution. I have some questions to the idea of mixer control: - Which controls would be appropriate to select either 16 or 24 Bit? - Is it possible to make the restriction that controls can only be changed when the interface is not used? The windows driver has the following controls: - Check or uncheck each interface [AnIn DigIn AnOut DigOut] - Selection of either 16Bit or 24Bit These controls can only be changed if the card is not used. If the settings are applied all enpoints are set to altsetting 0 and then the used endpoints are configured to the desired altsetting. Is such a behaviour possible with alsa mixer controls? > > > How do I know if I also need a quirk for the midi devices? > > You need a quirk when there aren't any class-specific descriptors for > the MIDI port. > I could also test the MIDI interface and it works fine without any changes. So I submit a patch that makes all basic functions of the Fast Track Pro available. I've chosen the same concept as for the Audiophile. The boot quirk can only be used as soon as the usb_driver_set_configuration() is made available in the <linux/usb.h> header. If this function is not available the driver will only work with 16-Bit by default. But the user can change the device configuration to config #2 by a UDEV or hotplug rule. Peter Oehry [-- Attachment #2: FastTrackPro.patch --] [-- Type: text/x-patch, Size: 3530 bytes --] diff -urN alsa-driver-1.0.12rc3/alsa-kernel/usb/usbaudio.c alsa-driver-1.0.12rc3_patch/alsa-kernel/usb/usbaudio.c --- alsa-driver-1.0.12rc3/alsa-kernel/usb/usbaudio.c 2006-08-14 12:55:28.000000000 +0200 +++ alsa-driver-1.0.12rc3_patch/alsa-kernel/usb/usbaudio.c 2006-08-20 12:46:30.000000000 +0200 @@ -2306,7 +2306,15 @@ break; case USB_ID(0x0763, 0x2003): /* M-Audio Audiophile USB */ return 1; - } + + case USB_ID(0x0763, 0x2012): /* M-Audio Fast Track Pro */ + /* it depends on altsetting wether the device is big-endian or not */ + if(fp->altsetting==2 || fp->altsetting==3 || + fp->altsetting==5 || fp->altsetting==6) + return 1; + break; + + } return 0; } @@ -2551,6 +2559,8 @@ static int audiophile_skip_setting_quirk(struct snd_usb_audio *chip, int iface, int altno); +static int fasttrackpro_skip_setting_quirk(struct snd_usb_audio *chip, + int iface, int altno); static int parse_audio_endpoints(struct snd_usb_audio *chip, int iface_no) { struct usb_device *dev; @@ -2592,6 +2602,11 @@ audiophile_skip_setting_quirk(chip, iface_no, altno)) continue; + /* M-Audio Fast Track Pro: skip alsets incompatible with device_setup */ + if (chip->usb_id == USB_ID(0x0763, 0x2012) && + fasttrackpro_skip_setting_quirk(chip, iface_no, altno)) + continue; + /* get audio formats */ fmt = snd_usb_find_csint_desc(alts->extra, alts->extralen, NULL, AS_GENERAL); if (!fmt) { @@ -3118,6 +3133,28 @@ return snd_usb_cm106_write_int_reg(dev, 2, 0x8004); } +static int snd_usb_fasttrackpro_boot_quirk(struct usb_device *dev, int ifnum) +{ + int err; + + if(dev->actconfig->desc.bConfigurationValue==1) { + if(ifnum==0) { + snd_printk(KERN_INFO "Switching to config #2\n"); + /* This function has to be available by the usb core module. + if it is not avialable the boot quirk has to be left out and the + configuration has to be set by udev or hotplug rules */ + err=usb_driver_set_configuration(dev,2); + if(err < 0) { + snd_printdd("error usb_driver_set_configuration: %d\n", err); + return -ENODEV; + } + } + } else { + snd_printk(KERN_INFO "Fast Track Pro config OK\n"); + } + + return 0; +} /* * Setup quirks @@ -3159,6 +3196,39 @@ return 0; /* keep this altsetting */ } +static int fasttrackpro_skip_setting_quirk(struct snd_usb_audio *chip, + int iface, int altno) +{ + + /* possible configuration where both inputs and only one output is + used is not supported by the current setup */ + + if (device_setup[chip->index] & (AUDIOPHILE_SET | AUDIOPHILE_SET_24B)) { + if(device_setup[chip->index] & AUDIOPHILE_SET_96K){ + if((altno != 3) && (altno != 6)) + return 1; + }else if(device_setup[chip->index] & AUDIOPHILE_SET_DI){ + if(iface == 4) + return 1; /* no analog input */ + + if((altno != 2) && (altno != 5)) + return 1; /* enable only altsets 2 and 5 */ + }else{ + if(iface == 5) + return 1; /* disable digialt input */ + + if((altno != 2) && (altno != 5)) + return 1; /* enalbe only altsets 2 and 5 */ + } + }else{ + /* keep only 16-Bit mode */ + if(altno !=1) + return 1; + } + + return 0; /* keep this altsetting */ +} + /* * audio-interface quirks * @@ -3394,6 +3464,12 @@ if (snd_usb_cm106_boot_quirk(dev) < 0) goto __err_val; } + + /* M-Audio Fast Track Pro */ + if (id == USB_ID(0x0763, 0x2012)) { + if (snd_usb_fasttrackpro_boot_quirk(dev, ifnum) < 0) + goto __err_val; + } /* * found a config. now register to ALSA [-- Attachment #3: Type: text/plain, Size: 373 bytes --] ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 [-- Attachment #4: Type: text/plain, Size: 161 bytes --] _______________________________________________ Alsa-devel mailing list Alsa-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/alsa-devel ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: snd-usb-audio - Driver for M-Audio Fast Track Pro 2006-08-20 12:19 ` Peter Oehry @ 2006-08-28 14:31 ` Thierry Vignaud 2006-08-29 20:53 ` Peter Oehry 0 siblings, 1 reply; 18+ messages in thread From: Thierry Vignaud @ 2006-08-28 14:31 UTC (permalink / raw) To: Peter Oehry; +Cc: alsa-devel, Thibault.LeMeur Peter Oehry <peter.oehry@gmx.li> writes: > > If the configuration needs to be changed at runtime, and if the > > driver cannot do this automatically, a mixer control would be the > > best solution. > > I have some questions to the idea of mixer control: > - Which controls would be appropriate to select either 16 or 24 Bit? > - Is it possible to make the restriction that controls can only be > changed when the interface is not used? > > The windows driver has the following controls: > - Check or uncheck each interface [AnIn DigIn AnOut DigOut] > - Selection of either 16Bit or 24Bit if you can do it when a mixer element is altered, cannot this be triggered when the app select 16 or 24bit? > These controls can only be changed if the card is not used. If the > settings are applied all enpoints are set to altsetting 0 and then > the used endpoints are configured to the desired altsetting. Is such > a behaviour possible with alsa mixer controls? ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: snd-usb-audio - Driver for M-Audio Fast Track Pro 2006-08-28 14:31 ` Thierry Vignaud @ 2006-08-29 20:53 ` Peter Oehry 0 siblings, 0 replies; 18+ messages in thread From: Peter Oehry @ 2006-08-29 20:53 UTC (permalink / raw) To: Thierry Vignaud; +Cc: alsa-devel On Mon, 28 Aug 2006 16:31:04 +0200 Thierry Vignaud <tvignaud@mandriva.com> wrote: > Peter Oehry <peter.oehry@gmx.li> writes: > > > > If the configuration needs to be changed at runtime, and if the > > > driver cannot do this automatically, a mixer control would be the > > > best solution. > > > > I have some questions to the idea of mixer control: > > - Which controls would be appropriate to select either 16 or 24 Bit? > > - Is it possible to make the restriction that controls can only be > > changed when the interface is not used? > > > > The windows driver has the following controls: > > - Check or uncheck each interface [AnIn DigIn AnOut DigOut] > > - Selection of either 16Bit or 24Bit > > if you can do it when a mixer element is altered, cannot this be > triggered when the app select 16 or 24bit? Maybe this would be possible. The biggest problem will be, that the driver has to decide which mode it will select as soon as the first app opens a device. If the digital in is included, this input has to be the sync source. It would not be possible to run one device at 24-Bit and one at 16-Bit. It will also not be possible to open all 4 device with 24-Bits. This means that the driver has to reject the 4th connection. The mode with 96kHz should be the easiest because only one device (I belive so) can be active at a time with this rate. It is also important that if a mode is chosen all alternate setting have to be resetted to zero and set up to the chosen one. I found out, that the device gets messed up if not all alternate settings are set up. I don't know what would be the best way to deal with this limitations. A problem might be that I do not realy know well the alsa device interace. So I do not have the overview to decied what's common and what's bad to do. > > > These controls can only be changed if the card is not used. If the > > settings are applied all enpoints are set to altsetting 0 and then > > the used endpoints are configured to the desired altsetting. Is such > > a behaviour possible with alsa mixer controls? > > Peter ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2006-08-29 20:53 UTC | newest] Thread overview: 18+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2006-08-08 16:16 snd-usb-audio - Driver for M-Audio Fast Track Pro peter.oehry 2006-08-08 17:02 ` Clemens Ladisch 2006-08-08 18:23 ` Thibault Le Meur 2006-08-09 3:19 ` Thierry Vignaud 2006-08-09 8:26 ` Thibault Le Meur 2006-08-08 18:47 ` Peter Oehry 2006-08-08 20:22 ` Thibault Le Meur 2006-08-08 21:41 ` Peter Oehry 2006-08-08 22:07 ` Thibault Le Meur 2006-08-10 21:33 ` Peter Oehry 2006-08-11 9:20 ` Thibault Le Meur 2006-08-13 21:48 ` Peter Oehry 2006-08-14 9:57 ` Thibault Le Meur 2006-08-14 11:16 ` Clemens Ladisch 2006-08-14 12:14 ` peter.oehry 2006-08-20 12:19 ` Peter Oehry 2006-08-28 14:31 ` Thierry Vignaud 2006-08-29 20:53 ` Peter Oehry
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.