* 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 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 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 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.