* snd-usb-audio syncronisation problem
@ 2008-02-22 9:51 Adrian Stancu
2008-02-22 13:09 ` Clemens Ladisch
0 siblings, 1 reply; 28+ messages in thread
From: Adrian Stancu @ 2008-02-22 9:51 UTC (permalink / raw)
To: alsa-devel
Hi,
I'm using an E-MU 0404 USB interface with the snd-usb-audio module
from alsa 1.0.16, operating in isochronous asynchronous mode. This
interface was producing very annoying click/pop sounds at regular
intervals during playback. Eventually I discovered that the
syncronisation mechanism telling the driver to send audio data faster
or slower to match the interface's consumption speed does not work as
expected, for some reason.
I did a very dirty hack within the source of this driver, simulating
the interface asking for data to be sent a little bit quicker, and
this almost fixed the problem *for me*. I really wish to debug this
issue further, to find what actually does not work as it should in
this feed-back mechanism. However this was the first time I dealt with
alsa source code, so I do not have much experience. Therefore, I
really need help with debugging this problem and maybe finding an
universal fix.
Thanks in advance,
Adi
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-22 9:51 snd-usb-audio syncronisation problem Adrian Stancu
@ 2008-02-22 13:09 ` Clemens Ladisch
2008-02-22 13:45 ` Adrian Stancu
0 siblings, 1 reply; 28+ messages in thread
From: Clemens Ladisch @ 2008-02-22 13:09 UTC (permalink / raw)
To: Adrian Stancu; +Cc: alsa-devel
Adrian Stancu wrote:
> I'm using an E-MU 0404 USB interface with the snd-usb-audio module
> from alsa 1.0.16, operating in isochronous asynchronous mode. This
> interface was producing very annoying click/pop sounds at regular
> intervals during playback. Eventually I discovered that the
> syncronisation mechanism telling the driver to send audio data faster
> or slower to match the interface's consumption speed does not work as
> expected, for some reason.
The momentary frequency as requested by the device is shown in
/proc/asound/card?/stream? (if CONFIG_SND_VERBOSE_PROCFS is enabled).
Try something like:
while sleep 0.3; do grep "Momentary freq" /proc/asound/card0/stream0; done
In theory, once the device has determined its own speed relative to
the computer, this value should be nearly constant. (When a stream has
just been started, the requested frequency usually is higher because the
device's buffer is empty.)
Regards,
Clemens
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-22 13:09 ` Clemens Ladisch
@ 2008-02-22 13:45 ` Adrian Stancu
2008-02-22 13:57 ` Clemens Ladisch
0 siblings, 1 reply; 28+ messages in thread
From: Adrian Stancu @ 2008-02-22 13:45 UTC (permalink / raw)
To: Clemens Ladisch; +Cc: alsa-devel
Hi Clemens,
Thank you very much for helping me!
Using the original module, the momentary frequency is always stalled
at 48000Hz during playback:
vader:~# while sleep 0.3; do grep "Momentary freq"
/proc/asound/card1/stream0; done
Momentary freq = 48000 Hz (0x6.0000)
Momentary freq = 48000 Hz (0x6.0000)
Momentary freq = 48000 Hz (0x6.0000)
Momentary freq = 48000 Hz (0x6.0000)
Momentary freq = 48000 Hz (0x6.0000)
note: I started playback after issuing the command.
So maybe this particular type of interface does not report back
correctly, thus confusing the driver?
After playing with subs->freqm in init_substream_urbs(,,,), the
situation improved dramatically for me, but this is no general fix...
In this case, I get:
Momentary freq = 48001 Hz (0x6.0007) and I get a single little pop
once about 90 seconds, but this is nothing compared to the horrible
sound I normally get when the buffer gets empty.
On Fri, Feb 22, 2008 at 3:09 PM, Clemens Ladisch <clemens@ladisch.de> wrote:
> Adrian Stancu wrote:
> > I'm using an E-MU 0404 USB interface with the snd-usb-audio module
> > from alsa 1.0.16, operating in isochronous asynchronous mode. This
> > interface was producing very annoying click/pop sounds at regular
> > intervals during playback. Eventually I discovered that the
> > syncronisation mechanism telling the driver to send audio data faster
> > or slower to match the interface's consumption speed does not work as
> > expected, for some reason.
>
> The momentary frequency as requested by the device is shown in
> /proc/asound/card?/stream? (if CONFIG_SND_VERBOSE_PROCFS is enabled).
>
> Try something like:
>
> while sleep 0.3; do grep "Momentary freq" /proc/asound/card0/stream0; done
>
> In theory, once the device has determined its own speed relative to
> the computer, this value should be nearly constant. (When a stream has
> just been started, the requested frequency usually is higher because the
> device's buffer is empty.)
>
>
> Regards,
> Clemens
>
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-22 13:45 ` Adrian Stancu
@ 2008-02-22 13:57 ` Clemens Ladisch
2008-02-22 14:19 ` Adrian Stancu
0 siblings, 1 reply; 28+ messages in thread
From: Clemens Ladisch @ 2008-02-22 13:57 UTC (permalink / raw)
To: Adrian Stancu; +Cc: alsa-devel
Adrian Stancu wrote:
> Using the original module, the momentary frequency is always stalled
> at 48000Hz during playback:
> vader:~# while sleep 0.3; do grep "Momentary freq"
> /proc/asound/card1/stream0; done
> Momentary freq = 48000 Hz (0x6.0000)
> Momentary freq = 48000 Hz (0x6.0000)
> Momentary freq = 48000 Hz (0x6.0000)
> Momentary freq = 48000 Hz (0x6.0000)
> Momentary freq = 48000 Hz (0x6.0000)
>
> note: I started playback after issuing the command.
> So maybe this particular type of interface does not report back
> correctly, thus confusing the driver?
This is possible. Please try to put printk's into
retire_playback_sync_urb(_hs) to see whether these functions ever get
called, and whether the line "subs->freqm = f;" is reached.
Please show the entire contents of /proc/asound/card1/stream0 while the
device is playing.
Regards,
Clemens
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-22 13:57 ` Clemens Ladisch
@ 2008-02-22 14:19 ` Adrian Stancu
2008-02-22 14:43 ` Clemens Ladisch
0 siblings, 1 reply; 28+ messages in thread
From: Adrian Stancu @ 2008-02-22 14:19 UTC (permalink / raw)
To: Clemens Ladisch; +Cc: alsa-devel
It seems that retire_playback_sync_urb_hs gets called, but 'subs->feqm
= f;' never gets called
Here is the content of /proc/asound/card1/stream0 during playback:
vader:~# cat /proc/asound/card1/stream0
E-MU Systems, Inc. E-MU 0404 | USB at usb-0000:00:1d.7-6, high speed : USB Audio
Playback:
Status: Running
Interface = 1
Altset = 3
URBs = 4 [ 8 8 8 5 ]
Packet Size = 298
Momentary freq = 48000 Hz (0x6.0000)
Interface 1
Altset 1
Format: 0x20
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100
Interface 1
Altset 2
Format: 0x20
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100
Interface 1
Altset 3
Format: 0x20
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 48000
Interface 1
Altset 4
Format: 0x20
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 48000
Interface 1
Altset 5
Format: 0x20
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 88200
Interface 1
Altset 6
Format: 0x20
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 88200
Interface 1
Altset 7
Format: 0x20
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 96000
Interface 1
Altset 8
Format: 0x20
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 96000
Interface 1
Altset 9
Format: 0x20
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 176400
Interface 1
Altset 10
Format: 0x20
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 192000
Interface 1
Altset 11
Format: 0x20
Channels: 4
Endpoint: 1 OUT (ASYNC)
Rates: 44100
Interface 1
Altset 12
Format: 0x20
Channels: 4
Endpoint: 1 OUT (ASYNC)
Rates: 44100
Interface 1
Altset 13
Format: 0x20
Channels: 4
Endpoint: 1 OUT (ASYNC)
Rates: 48000
Interface 1
Altset 14
Format: 0x20
Channels: 4
Endpoint: 1 OUT (ASYNC)
Rates: 48000
Interface 1
Altset 15
Format: 0x20
Channels: 4
Endpoint: 1 OUT (ASYNC)
Rates: 88200
Interface 1
Altset 16
Format: 0x20
Channels: 4
Endpoint: 1 OUT (ASYNC)
Rates: 96000
Capture:
Status: Stop
Interface 2
Altset 1
Format: 0x20
Channels: 2
Endpoint: 2 IN (ASYNC)
Rates: 44100
Interface 2
Altset 2
Format: 0x20
Channels: 2
Endpoint: 2 IN (ASYNC)
Rates: 44100
Interface 2
Altset 3
Format: 0x20
Channels: 2
Endpoint: 2 IN (ASYNC)
Rates: 48000
Interface 2
Altset 4
Format: 0x20
Channels: 2
Endpoint: 2 IN (ASYNC)
Rates: 48000
Interface 2
Altset 5
Format: 0x20
Channels: 2
Endpoint: 2 IN (ASYNC)
Rates: 88200
Interface 2
Altset 6
Format: 0x20
Channels: 2
Endpoint: 2 IN (ASYNC)
Rates: 88200
Interface 2
Altset 7
Format: 0x20
Channels: 2
Endpoint: 2 IN (ASYNC)
Rates: 96000
Interface 2
Altset 8
Format: 0x20
Channels: 2
Endpoint: 2 IN (ASYNC)
Rates: 96000
Interface 2
Altset 9
Format: 0x20
Channels: 2
Endpoint: 2 IN (ASYNC)
Rates: 176400
Interface 2
Altset 10
Format: 0x20
Channels: 2
Endpoint: 2 IN (ASYNC)
Rates: 192000
Interface 2
Altset 11
Format: 0x20
Channels: 4
Endpoint: 2 IN (ASYNC)
Rates: 44100
Interface 2
Altset 12
Format: 0x20
Channels: 4
Endpoint: 2 IN (ASYNC)
Rates: 44100
Interface 2
Altset 13
Format: 0x20
Channels: 4
Endpoint: 2 IN (ASYNC)
Rates: 48000
Interface 2
Altset 14
Format: 0x20
Channels: 4
Endpoint: 2 IN (ASYNC)
Rates: 48000
Interface 2
Altset 15
Format: 0x20
Channels: 4
Endpoint: 2 IN (ASYNC)
Rates: 88200
Interface 2
Altset 16
Format: 0x20
Channels: 4
Endpoint: 2 IN (ASYNC)
Rates: 96000
On Fri, Feb 22, 2008 at 3:57 PM, Clemens Ladisch <clemens@ladisch.de> wrote:
> Adrian Stancu wrote:
> > Using the original module, the momentary frequency is always stalled
> > at 48000Hz during playback:
> > vader:~# while sleep 0.3; do grep "Momentary freq"
> > /proc/asound/card1/stream0; done
> > Momentary freq = 48000 Hz (0x6.0000)
> > Momentary freq = 48000 Hz (0x6.0000)
> > Momentary freq = 48000 Hz (0x6.0000)
> > Momentary freq = 48000 Hz (0x6.0000)
> > Momentary freq = 48000 Hz (0x6.0000)
> >
> > note: I started playback after issuing the command.
> > So maybe this particular type of interface does not report back
> > correctly, thus confusing the driver?
>
> This is possible. Please try to put printk's into
> retire_playback_sync_urb(_hs) to see whether these functions ever get
> called, and whether the line "subs->freqm = f;" is reached.
>
> Please show the entire contents of /proc/asound/card1/stream0 while the
> device is playing.
>
>
> Regards,
> Clemens
>
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-22 14:19 ` Adrian Stancu
@ 2008-02-22 14:43 ` Clemens Ladisch
2008-02-22 14:51 ` Adrian Stancu
0 siblings, 1 reply; 28+ messages in thread
From: Clemens Ladisch @ 2008-02-22 14:43 UTC (permalink / raw)
To: Adrian Stancu; +Cc: alsa-devel
Adrian Stancu wrote:
> It seems that retire_playback_sync_urb_hs gets called, but 'subs->feqm
> = f;' never gets called
Please try these printk's:
...
spin_unlock_irqrestore(&subs->lock, flags);
}
else
printk("invalid freq %u\n", f);
}
else
printk("status %d len %u\n", urb->iso_frame_desc[0].status, urb->iso_frame_desc[0].actual_length);
return 0;
}
Regards,
Clemens
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-22 14:43 ` Clemens Ladisch
@ 2008-02-22 14:51 ` Adrian Stancu
2008-02-22 15:05 ` ASoC AT91 : read dma buffer Alexandre BOUIN
2008-02-22 15:50 ` snd-usb-audio syncronisation problem Clemens Ladisch
0 siblings, 2 replies; 28+ messages in thread
From: Adrian Stancu @ 2008-02-22 14:51 UTC (permalink / raw)
To: Clemens Ladisch; +Cc: alsa-devel
I got these results:
[...]
status 0 len 0
status 0 len 0
status 0 len 0
status 0 len 0
status 0 len 0
invalid freq 3145728
status 0 len 0
status 0 len 0
status 0 len 0
[...]
additional note:
freqn=393216, freqmax=401408, f=3145728
On Fri, Feb 22, 2008 at 4:43 PM, Clemens Ladisch <clemens@ladisch.de> wrote:
> Adrian Stancu wrote:
> > It seems that retire_playback_sync_urb_hs gets called, but 'subs->feqm
> > = f;' never gets called
>
> Please try these printk's:
>
> ...
> spin_unlock_irqrestore(&subs->lock, flags);
> }
> else
> printk("invalid freq %u\n", f);
> }
> else
> printk("status %d len %u\n", urb->iso_frame_desc[0].status, urb->iso_frame_desc[0].actual_length);
>
> return 0;
> }
>
>
> Regards,
> Clemens
>
^ permalink raw reply [flat|nested] 28+ messages in thread
* ASoC AT91 : read dma buffer
2008-02-22 14:51 ` Adrian Stancu
@ 2008-02-22 15:05 ` Alexandre BOUIN
2008-02-22 15:50 ` snd-usb-audio syncronisation problem Clemens Ladisch
1 sibling, 0 replies; 28+ messages in thread
From: Alexandre BOUIN @ 2008-02-22 15:05 UTC (permalink / raw)
To: alsa-devel
Hi list,
I'm working with ASoC layer for arm AT91.
I'd like to trace sound datas right before they are transmitted to dma.
Buffer pointer seems to be prtd->period_ptr.
Is there any way to read datas from this pointer ?
Thanks in advance.
Regards,
Alex.
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-22 14:51 ` Adrian Stancu
2008-02-22 15:05 ` ASoC AT91 : read dma buffer Alexandre BOUIN
@ 2008-02-22 15:50 ` Clemens Ladisch
2008-02-22 16:15 ` Adrian Stancu
1 sibling, 1 reply; 28+ messages in thread
From: Clemens Ladisch @ 2008-02-22 15:50 UTC (permalink / raw)
To: Adrian Stancu; +Cc: alsa-devel
Adrian Stancu wrote:
> I got these results:
>
> invalid freq 3145728
How often does this message appear?
To convert to Hz, multiply by 1000/65536 (full speed)
or 8000/65536 (high speed).
3145728 * 1000/65536 = 48000
> freqn=393216, freqmax=401408
These values would be correct for high speed.
Is this device running at full speed or high speed?
Please show the output of "lsusb -v" for this device.
Regards,
Clemens
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-22 15:50 ` snd-usb-audio syncronisation problem Clemens Ladisch
@ 2008-02-22 16:15 ` Adrian Stancu
2008-02-22 16:31 ` Clemens Ladisch
0 siblings, 1 reply; 28+ messages in thread
From: Adrian Stancu @ 2008-02-22 16:15 UTC (permalink / raw)
To: Clemens Ladisch; +Cc: alsa-devel
According to dmesg, the device is running at high speed:
usb 1-6: new high speed USB device using ehci_hcd and address 20
usb 1-6: configuration #1 chosen from 1 choice
usbcore: registered new interface driver snd-usb-audio
So, if I convert the freq using the high speed formula, I get a value
within the acceptable range, that would actually have an effect.
regarding the 'invalid freq' message, it seems to appear about 30
times per second:
vader:~# dmesg -c
[...play about 10 sec of audio]
vader:~# dmesg | wc -l
331
(during those 10 seconds, there were only 'invalid freq' messages generated)
vader:~# lsusb -s 1:20 -v
Bus 001 Device 020: ID 041e:3f04 Creative Technology, Ltd
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 ?
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x041e Creative Technology, Ltd
idProduct 0x3f04
bcdDevice 1.00
iManufacturer 1 E-MU Systems, Inc.
iProduct 2 E-MU 0404 | USB
iSerial 3 E-MU-B0-3F04-07D70C0C-07E7D-STATION02
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 1832
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 2mA
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 0
bInterfaceCount 4
bFunctionClass 255 Vendor Specific Class
bFunctionSubClass 255 Vendor Specific Subclass
bFunctionProtocol 255 Vendor Specific Protocol
iFunction 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 1
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 0b 24 01 00 01 bf 00 03 01 02 03
** UNRECOGNIZED: 0c 24 02 01 01 01 00 04 33 00 00 00
** UNRECOGNIZED: 11 24 06 04 01 02 01 00 02 00 02 00 02 00 02 00 00
** UNRECOGNIZED: 0c 24 02 02 01 06 00 02 03 00 00 00
** UNRECOGNIZED: 0c 24 02 03 02 06 00 02 03 00 00 00
** UNRECOGNIZED: 0f 24 08 0e 03 e3 01 03 04 33 00 00 01 1f 00
** UNRECOGNIZED: 0e 24 04 0b 02 04 0e 04 33 00 00 00 00 00
** UNRECOGNIZED: 11 24 04 05 03 04 02 0e 04 33 00 00 00 00 00 00 00
** UNRECOGNIZED: 0f 24 08 0c 01 e3 01 05 04 33 00 00 01 07 00
** UNRECOGNIZED: 0f 24 08 0d 02 e3 01 0c 04 33 00 00 01 03 00
** UNRECOGNIZED: 0f 24 08 0f 04 e3 01 0d 04 33 00 00 01 07 00
** UNRECOGNIZED: 09 24 03 08 01 03 00 0f 00
** UNRECOGNIZED: 09 24 03 07 02 03 00 0f 00
** UNRECOGNIZED: 09 24 03 09 02 06 00 0f 00
** UNRECOGNIZED: 09 24 03 0a 01 01 00 0b 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 10
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 01 00 01 00
** UNRECOGNIZED: 0b 24 02 01 02 03 18 01 44 ac 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0112 1x 274 bytes
bInterval 4
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 2
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 01 00 01 00
** UNRECOGNIZED: 0b 24 02 01 02 03 18 01 44 ac 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x008e 1x 142 bytes
bInterval 3
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 3
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 01 00 01 00
** UNRECOGNIZED: 0b 24 02 01 02 03 18 01 80 bb 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x012a 1x 298 bytes
bInterval 4
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 4
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 01 00 01 00
** UNRECOGNIZED: 0b 24 02 01 02 03 18 01 80 bb 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x009a 1x 154 bytes
bInterval 3
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 5
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 01 00 01 00
** UNRECOGNIZED: 0b 24 02 01 02 03 18 01 88 58 01
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x021a 1x 538 bytes
bInterval 4
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 6
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 01 00 01 00
** UNRECOGNIZED: 0b 24 02 01 02 03 18 01 88 58 01
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0112 1x 274 bytes
bInterval 3
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 7
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 01 00 01 00
** UNRECOGNIZED: 0b 24 02 01 02 03 18 01 00 77 01
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x024a 1x 586 bytes
bInterval 4
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 8
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 01 00 01 00
** UNRECOGNIZED: 0b 24 02 01 02 03 18 01 00 77 01
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x012a 1x 298 bytes
bInterval 3
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 9
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 01 00 01 00
** UNRECOGNIZED: 0b 24 02 01 02 03 18 01 10 b1 02
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x021a 1x 538 bytes
bInterval 3
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 10
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 01 00 01 00
** UNRECOGNIZED: 0b 24 02 01 02 03 18 01 00 ee 02
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x024a 1x 586 bytes
bInterval 3
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 11
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 01 00 01 00
** UNRECOGNIZED: 0b 24 02 01 04 03 18 01 44 ac 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0220 1x 544 bytes
bInterval 4
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 12
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 01 00 01 00
** UNRECOGNIZED: 0b 24 02 01 04 03 18 01 44 ac 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0118 1x 280 bytes
bInterval 3
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 13
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 01 00 01 00
** UNRECOGNIZED: 0b 24 02 01 04 03 18 01 80 bb 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0250 1x 592 bytes
bInterval 4
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 14
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 01 00 01 00
** UNRECOGNIZED: 0b 24 02 01 04 03 18 01 80 bb 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0130 1x 304 bytes
bInterval 3
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 15
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 01 00 01 00
** UNRECOGNIZED: 0b 24 02 01 04 03 18 01 88 58 01
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0220 1x 544 bytes
bInterval 3
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 16
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 01 00 01 00
** UNRECOGNIZED: 0b 24 02 01 04 03 18 01 00 77 01
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0250 1x 592 bytes
bInterval 3
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 17
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 01 00 01 20
** UNRECOGNIZED: 0b 24 02 03 02 02 10 01 44 ac 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x00b8 1x 184 bytes
bInterval 4
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 18
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 01 00 01 20
** UNRECOGNIZED: 0b 24 02 03 02 02 10 01 80 bb 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x00c8 1x 200 bytes
bInterval 4
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 0a 00 01 00
** UNRECOGNIZED: 0b 24 02 01 02 03 18 01 44 ac 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x0112 1x 274 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 2
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 0a 00 01 00
** UNRECOGNIZED: 0b 24 02 01 02 03 18 01 44 ac 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x008e 1x 142 bytes
bInterval 3
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 3
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 0a 00 01 00
** UNRECOGNIZED: 0b 24 02 01 02 03 18 01 80 bb 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x012a 1x 298 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 4
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 0a 00 01 00
** UNRECOGNIZED: 0b 24 02 01 02 03 18 01 80 bb 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x009a 1x 154 bytes
bInterval 3
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 5
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 0a 00 01 00
** UNRECOGNIZED: 0b 24 02 01 02 03 18 01 88 58 01
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x021a 1x 538 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 6
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 0a 00 01 00
** UNRECOGNIZED: 0b 24 02 01 02 03 18 01 88 58 01
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x0112 1x 274 bytes
bInterval 3
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 7
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 0a 00 01 00
** UNRECOGNIZED: 0b 24 02 01 02 03 18 01 00 77 01
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x024a 1x 586 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 8
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 0a 00 01 00
** UNRECOGNIZED: 0b 24 02 01 02 03 18 01 00 77 01
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x012a 1x 298 bytes
bInterval 3
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 9
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 0a 00 01 00
** UNRECOGNIZED: 0b 24 02 01 02 03 18 01 10 b1 02
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x021a 1x 538 bytes
bInterval 3
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 10
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 0a 00 01 00
** UNRECOGNIZED: 0b 24 02 01 02 03 18 01 00 ee 02
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x024a 1x 586 bytes
bInterval 3
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 11
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 0a 00 01 00
** UNRECOGNIZED: 0b 24 02 01 04 03 18 01 44 ac 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x0220 1x 544 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 12
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 0a 00 01 00
** UNRECOGNIZED: 0b 24 02 01 04 03 18 01 44 ac 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x0118 1x 280 bytes
bInterval 3
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 13
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 0a 00 01 00
** UNRECOGNIZED: 0b 24 02 01 04 03 18 01 80 bb 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x0250 1x 592 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 14
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 0a 00 01 00
** UNRECOGNIZED: 0b 24 02 01 04 03 18 01 80 bb 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x0130 1x 304 bytes
bInterval 3
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 15
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 0a 00 01 00
** UNRECOGNIZED: 0b 24 02 01 04 03 18 01 88 58 01
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x0220 1x 544 bytes
bInterval 3
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 16
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 0a 00 01 00
** UNRECOGNIZED: 0b 24 02 01 04 03 18 01 00 77 01
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x0250 1x 592 bytes
bInterval 3
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 3
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 07 24 01 00 01 25 00
** UNRECOGNIZED: 06 24 02 01 01 00
** UNRECOGNIZED: 06 24 02 02 02 00
** UNRECOGNIZED: 09 24 03 01 03 01 02 01 00
** UNRECOGNIZED: 09 24 03 02 04 01 01 01 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x05 EP 5 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x85 EP 5 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 ?
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0001
Self Powered
On Fri, Feb 22, 2008 at 5:50 PM, Clemens Ladisch <clemens@ladisch.de> wrote:
> Adrian Stancu wrote:
> > I got these results:
> >
> > invalid freq 3145728
>
> How often does this message appear?
>
> To convert to Hz, multiply by 1000/65536 (full speed)
> or 8000/65536 (high speed).
>
> 3145728 * 1000/65536 = 48000
>
> > freqn=393216, freqmax=401408
>
> These values would be correct for high speed.
>
> Is this device running at full speed or high speed?
> Please show the output of "lsusb -v" for this device.
>
>
> Regards,
> Clemens
>
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-22 16:15 ` Adrian Stancu
@ 2008-02-22 16:31 ` Clemens Ladisch
2008-02-22 16:46 ` Adrian Stancu
0 siblings, 1 reply; 28+ messages in thread
From: Clemens Ladisch @ 2008-02-22 16:31 UTC (permalink / raw)
To: Adrian Stancu; +Cc: alsa-devel
Adrian Stancu wrote:
> According to dmesg, the device is running at high speed:
> usb 1-6: new high speed USB device using ehci_hcd and address 20
>
> So, if I convert the freq using the high speed formula, I get a value
> within the acceptable range,
No; the device is high speed, but it sends a full speed feedback value.
Please try "subs->freqm = f / 8;"
The value quoted in your previous message was exactly 48000 Hz; please
check if it ever changes.
Regards,
Clemens
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-22 16:31 ` Clemens Ladisch
@ 2008-02-22 16:46 ` Adrian Stancu
2008-02-22 16:49 ` Adrian Stancu
2008-02-22 17:01 ` Clemens Ladisch
0 siblings, 2 replies; 28+ messages in thread
From: Adrian Stancu @ 2008-02-22 16:46 UTC (permalink / raw)
To: Clemens Ladisch; +Cc: alsa-devel
Yes!!! the feedback works correctly this way => perfect playback!
what I had to do was:
[...]
f = combine_quad((u8*)urb->transfer_buffer) & 0x0fffffff;
f /= 8;
if (f >= subs->freqn - subs->freqn / 8 && f <= subs->freqmax) {
spin_lock_irqsave(&subs->lock, flags);
subs->freqm = f;
[...]
otherwise, the 'if' condition would still not be satisfied.
Words can not describe how thankful I am about this one!
Now, is there a way to incorporate this change into the driver without
affecting functionality for other usb audio devices?
On Fri, Feb 22, 2008 at 6:31 PM, Clemens Ladisch <clemens@ladisch.de> wrote:
> Adrian Stancu wrote:
> > According to dmesg, the device is running at high speed:
> > usb 1-6: new high speed USB device using ehci_hcd and address 20
> >
>
> > So, if I convert the freq using the high speed formula, I get a value
> > within the acceptable range,
>
> No; the device is high speed, but it sends a full speed feedback value.
>
> Please try "subs->freqm = f / 8;"
>
>
> The value quoted in your previous message was exactly 48000 Hz; please
> check if it ever changes.
>
>
> Regards,
> Clemens
>
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-22 16:46 ` Adrian Stancu
@ 2008-02-22 16:49 ` Adrian Stancu
2008-02-22 17:01 ` Clemens Ladisch
1 sibling, 0 replies; 28+ messages in thread
From: Adrian Stancu @ 2008-02-22 16:49 UTC (permalink / raw)
To: Clemens Ladisch; +Cc: alsa-devel
forgot to mention:
vader:~# while sleep 0.05; do grep "Momentary freq"
/proc/asound/card1/stream0 >> out; done
vader:~# cat out | sort | uniq -c
1272 Momentary freq = 48000 Hz (0x6.0000)
7 Momentary freq = 48063 Hz (0x6.0200)
vader:~#
On Fri, Feb 22, 2008 at 6:46 PM, Adrian Stancu
<adrian.stancu.82@gmail.com> wrote:
> Yes!!! the feedback works correctly this way => perfect playback!
>
> what I had to do was:
> [...]
> f = combine_quad((u8*)urb->transfer_buffer) & 0x0fffffff;
> f /= 8;
> if (f >= subs->freqn - subs->freqn / 8 && f <= subs->freqmax) {
> spin_lock_irqsave(&subs->lock, flags);
> subs->freqm = f;
> [...]
>
> otherwise, the 'if' condition would still not be satisfied.
> Words can not describe how thankful I am about this one!
>
> Now, is there a way to incorporate this change into the driver without
> affecting functionality for other usb audio devices?
>
>
> On Fri, Feb 22, 2008 at 6:31 PM, Clemens Ladisch <clemens@ladisch.de> wrote:
>
>
> > Adrian Stancu wrote:
> > > According to dmesg, the device is running at high speed:
> > > usb 1-6: new high speed USB device using ehci_hcd and address 20
> > >
> >
> > > So, if I convert the freq using the high speed formula, I get a value
> > > within the acceptable range,
> >
> > No; the device is high speed, but it sends a full speed feedback value.
> >
> > Please try "subs->freqm = f / 8;"
> >
> >
> > The value quoted in your previous message was exactly 48000 Hz; please
> > check if it ever changes.
> >
> >
> > Regards,
> > Clemens
> >
>
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-22 16:46 ` Adrian Stancu
2008-02-22 16:49 ` Adrian Stancu
@ 2008-02-22 17:01 ` Clemens Ladisch
2008-02-22 17:02 ` Adrian Stancu
1 sibling, 1 reply; 28+ messages in thread
From: Clemens Ladisch @ 2008-02-22 17:01 UTC (permalink / raw)
To: Adrian Stancu; +Cc: alsa-devel
Adrian Stancu wrote:
> Yes!!! the feedback works correctly this way => perfect playback!
>
> what I had to do was:
> [...]
> f = combine_quad((u8*)urb->transfer_buffer) & 0x0fffffff;
> f /= 8;
> if (f >= subs->freqn - subs->freqn / 8 && f <= subs->freqmax) {
> spin_lock_irqsave(&subs->lock, flags);
> subs->freqm = f;
> [...]
>
> otherwise, the 'if' condition would still not be satisfied.
Oops. Of course.
> Now, is there a way to incorporate this change into the driver without
> affecting functionality for other usb audio devices?
I'll write a quirk.
Regards,
Clemens
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-22 17:01 ` Clemens Ladisch
@ 2008-02-22 17:02 ` Adrian Stancu
2008-02-25 12:44 ` Clemens Ladisch
0 siblings, 1 reply; 28+ messages in thread
From: Adrian Stancu @ 2008-02-22 17:02 UTC (permalink / raw)
To: Clemens Ladisch; +Cc: alsa-devel
OK!
I *think* the 0202 USB is also in the same situation.
Thank you again!
Best regards,
Adi
On Fri, Feb 22, 2008 at 7:01 PM, Clemens Ladisch <clemens@ladisch.de> wrote:
> Adrian Stancu wrote:
> > Yes!!! the feedback works correctly this way => perfect playback!
> >
> > what I had to do was:
> > [...]
> > f = combine_quad((u8*)urb->transfer_buffer) & 0x0fffffff;
> > f /= 8;
> > if (f >= subs->freqn - subs->freqn / 8 && f <= subs->freqmax) {
> > spin_lock_irqsave(&subs->lock, flags);
> > subs->freqm = f;
> > [...]
> >
> > otherwise, the 'if' condition would still not be satisfied.
>
> Oops. Of course.
>
>
> > Now, is there a way to incorporate this change into the driver without
> > affecting functionality for other usb audio devices?
>
> I'll write a quirk.
>
>
> Regards,
> Clemens
>
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-22 17:02 ` Adrian Stancu
@ 2008-02-25 12:44 ` Clemens Ladisch
2008-02-25 18:32 ` Adrian Stancu
0 siblings, 1 reply; 28+ messages in thread
From: Clemens Ladisch @ 2008-02-25 12:44 UTC (permalink / raw)
To: Adrian Stancu; +Cc: alsa-devel
Adrian Stancu wrote:
> I *think* the 0202 USB is also in the same situation.
OK, I made a quirk for both:
<http://hg.alsa-project.org/alsa-kernel/rev/247195dfda43>
Please also test with a sample format where packets are sent every four
microframes, i.e., > 96 kHz.
Regards,
Clemens
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-25 12:44 ` Clemens Ladisch
@ 2008-02-25 18:32 ` Adrian Stancu
2008-02-26 7:32 ` Clemens Ladisch
0 siblings, 1 reply; 28+ messages in thread
From: Adrian Stancu @ 2008-02-25 18:32 UTC (permalink / raw)
To: Clemens Ladisch; +Cc: alsa-devel
Hi,
Thanks for the update.
I tested your patch and 44.1kHz, 48kHz and 96kHz seem to work
correctly. Unfortunately, I am not able to test any rate higher than
96kHz, because I cannot modify this interface's sampling rate under
Linux (and if I modify it on another computer [a virtual machine], the
interface will reset to 44.1kHz whenever I "unplug the USB cable" AND
it is set to a rate higher than 96kHz).
I don't know if there's any way around this, but I currently don't see
any way of using this interface at >96kHz in Linux.
Best regards,
Adi
On Mon, Feb 25, 2008 at 2:44 PM, Clemens Ladisch <clemens@ladisch.de> wrote:
> Adrian Stancu wrote:
> > I *think* the 0202 USB is also in the same situation.
>
> OK, I made a quirk for both:
> <http://hg.alsa-project.org/alsa-kernel/rev/247195dfda43>
>
> Please also test with a sample format where packets are sent every four
> microframes, i.e., > 96 kHz.
>
>
> Regards,
> Clemens
>
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-25 18:32 ` Adrian Stancu
@ 2008-02-26 7:32 ` Clemens Ladisch
2008-02-26 7:53 ` Adrian Stancu
0 siblings, 1 reply; 28+ messages in thread
From: Clemens Ladisch @ 2008-02-26 7:32 UTC (permalink / raw)
To: Adrian Stancu; +Cc: alsa-devel
Adrian Stancu wrote:
> I don't know if there's any way around this, but I currently don't see
> any way of using this interface at >96kHz in Linux.
sox something.wav -r 192000 something-192.wav
aplay -D hw:1 something-192.wav
HTH
Clemens
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-26 7:32 ` Clemens Ladisch
@ 2008-02-26 7:53 ` Adrian Stancu
2008-02-26 8:14 ` Clemens Ladisch
2008-02-26 13:45 ` Pavel Hofman
0 siblings, 2 replies; 28+ messages in thread
From: Adrian Stancu @ 2008-02-26 7:53 UTC (permalink / raw)
To: Clemens Ladisch; +Cc: alsa-devel
Thanks,
Here is what i get:
deathu@vader:~/Desktop$ sox testtone96.wav -r 192000 testtone192.wav
deathu@vader:~/Desktop$ aplay -D hw:1 testtone192.wav
Playing WAVE 'testtone192.wav' : Signed 16 bit Little Endian, Rate
192000 Hz, Mono
aplay: set_params:918: Sample format non available
If i do this:
deathu@vader:~/Desktop$ aplay -D plughw:1 testtone192.wav
Playing WAVE 'testtone192.wav' : Signed 16 bit Little Endian, Rate
192000 Hz, Mono
I receive totally damaged audio (wrong frequency, lots of artifacts)
Note: I wasn't ever able to use hw:1 or hw:1,0 as output for this
interface, only plughw:1,0
On Tue, Feb 26, 2008 at 9:32 AM, Clemens Ladisch <clemens@ladisch.de> wrote:
> Adrian Stancu wrote:
> > I don't know if there's any way around this, but I currently don't see
> > any way of using this interface at >96kHz in Linux.
>
> sox something.wav -r 192000 something-192.wav
> aplay -D hw:1 something-192.wav
>
>
> HTH
> Clemens
>
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-26 7:53 ` Adrian Stancu
@ 2008-02-26 8:14 ` Clemens Ladisch
2008-02-26 8:38 ` Adrian Stancu
2008-02-26 13:45 ` Pavel Hofman
1 sibling, 1 reply; 28+ messages in thread
From: Clemens Ladisch @ 2008-02-26 8:14 UTC (permalink / raw)
To: Adrian Stancu; +Cc: alsa-devel
Adrian Stancu wrote:
> deathu@vader:~/Desktop$ sox testtone96.wav -r 192000 testtone192.wav
> deathu@vader:~/Desktop$ aplay -D hw:1 testtone192.wav
> Playing WAVE 'testtone192.wav' : Signed 16 bit Little Endian, Rate 192000 Hz, Mono
> aplay: set_params:918: Sample format non available
The device doesn't support mono.
Try "sox testtone96.wav -r 192000 -c 2 testtone192.wav".
> I receive totally damaged audio (wrong frequency, lots of artifacts)
What frequency? What is shown /proc/asound/card1/stream0 while playing
this file? Does something similar happen with a four-channel 96 kHz
file? ("sox testtone96.wav -c 4 testtone4.wav")
Regards,
Clemens
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-26 8:14 ` Clemens Ladisch
@ 2008-02-26 8:38 ` Adrian Stancu
2008-02-26 8:49 ` Clemens Ladisch
0 siblings, 1 reply; 28+ messages in thread
From: Adrian Stancu @ 2008-02-26 8:38 UTC (permalink / raw)
To: Clemens Ladisch; +Cc: alsa-devel
OK, I tried playing the stereo file but still getting the same error:
deathu@vader:~/Desktop$ aplay -D hw:1 testtone192.wav
Playing WAVE 'testtone192.wav' : Signed 16 bit Little Endian, Rate
192000 Hz, Stereo
aplay: set_params:918: Sample format non available
For the four channel 96kHz file, aplay complains that it's not in PCM format.
deathu@vader:~/Desktop$ aplay -D hw:1 testtone4.wav
aplay: test_wavefile:749: can't play not PCM-coded WAVE-files
Well, my test file contained a single constant frequency tone; it is
still there while I play the 192k file through plughw:1,0, but burried
under:
- periodic series of clicks
- other high frequency tones
Here is /proc/asound/card1/stream0 while playing through plughw:1,0:
E-MU Systems, Inc. E-MU 0404 | USB at usb-0000:00:1d.7-6, high speed : USB Audio
Playback:
Status: Running
Interface = 1
Altset = 10
URBs = 8 [ 16 16 16 16 16 16 16 16 ]
Packet Size = 586
Momentary freq = 192000 Hz (0x18.0000)
Interface 1
Altset 1
Format: 0x20
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100
Interface 1
Altset 2
Format: 0x20
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100
Interface 1
Altset 3
Format: 0x20
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 48000
Interface 1
Altset 4
Format: 0x20
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 48000
Interface 1
Altset 5
Format: 0x20
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 88200
Interface 1
Altset 6
Format: 0x20
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 88200
Interface 1
Altset 7
Format: 0x20
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 96000
Interface 1
Altset 8
Format: 0x20
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 96000
Interface 1
Altset 9
Format: 0x20
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 176400
Interface 1
Altset 10
Format: 0x20
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 192000
Interface 1
Altset 11
Format: 0x20
Channels: 4
Endpoint: 1 OUT (ASYNC)
Rates: 44100
Interface 1
Altset 12
Format: 0x20
Channels: 4
Endpoint: 1 OUT (ASYNC)
Rates: 44100
Interface 1
Altset 13
Format: 0x20
Channels: 4
Endpoint: 1 OUT (ASYNC)
Rates: 48000
Interface 1
Altset 14
Format: 0x20
Channels: 4
Endpoint: 1 OUT (ASYNC)
Rates: 48000
Interface 1
Altset 15
Format: 0x20
Channels: 4
Endpoint: 1 OUT (ASYNC)
Rates: 88200
Interface 1
Altset 16
Format: 0x20
Channels: 4
Endpoint: 1 OUT (ASYNC)
Rates: 96000
Capture:
Status: Stop
Interface 2
Altset 1
Format: 0x20
Channels: 2
Endpoint: 2 IN (ASYNC)
Rates: 44100
Interface 2
Altset 2
Format: 0x20
Channels: 2
Endpoint: 2 IN (ASYNC)
Rates: 44100
Interface 2
Altset 3
Format: 0x20
Channels: 2
Endpoint: 2 IN (ASYNC)
Rates: 48000
Interface 2
Altset 4
Format: 0x20
Channels: 2
Endpoint: 2 IN (ASYNC)
Rates: 48000
Interface 2
Altset 5
Format: 0x20
Channels: 2
Endpoint: 2 IN (ASYNC)
Rates: 88200
Interface 2
Altset 6
Format: 0x20
Channels: 2
Endpoint: 2 IN (ASYNC)
Rates: 88200
Interface 2
Altset 7
Format: 0x20
Channels: 2
Endpoint: 2 IN (ASYNC)
Rates: 96000
Interface 2
Altset 8
Format: 0x20
Channels: 2
Endpoint: 2 IN (ASYNC)
Rates: 96000
Interface 2
Altset 9
Format: 0x20
Channels: 2
Endpoint: 2 IN (ASYNC)
Rates: 176400
Interface 2
Altset 10
Format: 0x20
Channels: 2
Endpoint: 2 IN (ASYNC)
Rates: 192000
Interface 2
Altset 11
Format: 0x20
Channels: 4
Endpoint: 2 IN (ASYNC)
Rates: 44100
Interface 2
Altset 12
Format: 0x20
Channels: 4
Endpoint: 2 IN (ASYNC)
Rates: 44100
Interface 2
Altset 13
Format: 0x20
Channels: 4
Endpoint: 2 IN (ASYNC)
Rates: 48000
Interface 2
Altset 14
Format: 0x20
Channels: 4
Endpoint: 2 IN (ASYNC)
Rates: 48000
Interface 2
Altset 15
Format: 0x20
Channels: 4
Endpoint: 2 IN (ASYNC)
Rates: 88200
Interface 2
Altset 16
Format: 0x20
Channels: 4
Endpoint: 2 IN (ASYNC)
Rates: 96000
On Tue, Feb 26, 2008 at 10:14 AM, Clemens Ladisch <clemens@ladisch.de> wrote:
> Adrian Stancu wrote:
> > deathu@vader:~/Desktop$ sox testtone96.wav -r 192000 testtone192.wav
> > deathu@vader:~/Desktop$ aplay -D hw:1 testtone192.wav
> > Playing WAVE 'testtone192.wav' : Signed 16 bit Little Endian, Rate 192000 Hz, Mono
> > aplay: set_params:918: Sample format non available
>
> The device doesn't support mono.
> Try "sox testtone96.wav -r 192000 -c 2 testtone192.wav".
>
>
> > I receive totally damaged audio (wrong frequency, lots of artifacts)
>
> What frequency? What is shown /proc/asound/card1/stream0 while playing
> this file? Does something similar happen with a four-channel 96 kHz
> file? ("sox testtone96.wav -c 4 testtone4.wav")
>
>
> Regards,
> Clemens
>
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-26 8:38 ` Adrian Stancu
@ 2008-02-26 8:49 ` Clemens Ladisch
2008-02-26 9:20 ` Adrian Stancu
0 siblings, 1 reply; 28+ messages in thread
From: Clemens Ladisch @ 2008-02-26 8:49 UTC (permalink / raw)
To: Adrian Stancu; +Cc: alsa-devel
Adrian Stancu wrote:
> OK, I tried playing the stereo file but still getting the same error:
> deathu@vader:~/Desktop$ aplay -D hw:1 testtone192.wav
> Playing WAVE 'testtone192.wav' : Signed 16 bit Little Endian, Rate 192000 Hz, Stereo
> aplay: set_params:918: Sample format non available
Oops, the device supports only 24-bit samples, and this isn't supported
by .wav files, so using hw:1 won't ever work with aply.
> Well, my test file contained a single constant frequency tone; it is
> still there while I play the 192k file through plughw:1,0, but burried
> under:
> - periodic series of clicks
> - other high frequency tones
>
> Here is /proc/asound/card1/stream0 while playing through plughw:1,0:
> ...
> Momentary freq = 192000 Hz (0x18.0000)
Does this value ever change?
Could you again try inserting a printk to see whether the driver thinks
it gets invalid frequency values?
Regards,
Clemens
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-26 8:49 ` Clemens Ladisch
@ 2008-02-26 9:20 ` Adrian Stancu
2008-02-26 11:36 ` Clemens Ladisch
0 siblings, 1 reply; 28+ messages in thread
From: Adrian Stancu @ 2008-02-26 9:20 UTC (permalink / raw)
To: Clemens Ladisch; +Cc: alsa-devel
This time, the driver does not consider the feedback frequencies
invalid. What I did was:
f = combine_quad((u8*)urb->transfer_buffer) & 0x0fffffff;
printk("freqn=%u, freqmax=%u, f=%u, dataint=%u\n",
subs->freqn, subs->freqmax, f, subs->datainterval);
f >>= subs->datainterval;
if (f >= subs->freqn - subs->freqn / 8 && f <= subs->freqmax) {
spin_lock_irqsave(&subs->lock, flags);
subs->freqm = f;
printk("f=%u assigned!", f);
spin_unlock_irqrestore(&subs->lock, flags);
And what I got:
f=1572864 assigned!freqn=1572864, freqmax=1589248, f=6291456, dataint=2
f=1572864 assigned!freqn=1572864, freqmax=1589248, f=6291456, dataint=2
f=1572864 assigned!freqn=1572864, freqmax=1589248, f=6291456, dataint=2
However, the feedback value does not seem to ever change.
I wanted to mention that (from what I noticed until now), it is not
possible to get correct playback on this device unless the sampling
frequency it is set to (it defaults to 48k when powered on) matches
the sampling frequency of the audio stream you send to it. So how is
this supposed to work, if the device is set to 48k and my stream has
192k (and I cannot set the device to 192k)?
On Tue, Feb 26, 2008 at 10:49 AM, Clemens Ladisch <clemens@ladisch.de> wrote:
> Adrian Stancu wrote:
> > OK, I tried playing the stereo file but still getting the same error:
> > deathu@vader:~/Desktop$ aplay -D hw:1 testtone192.wav
> > Playing WAVE 'testtone192.wav' : Signed 16 bit Little Endian, Rate 192000 Hz, Stereo
> > aplay: set_params:918: Sample format non available
>
> Oops, the device supports only 24-bit samples, and this isn't supported
> by .wav files, so using hw:1 won't ever work with aply.
>
>
> > Well, my test file contained a single constant frequency tone; it is
> > still there while I play the 192k file through plughw:1,0, but burried
> > under:
> > - periodic series of clicks
> > - other high frequency tones
> >
> > Here is /proc/asound/card1/stream0 while playing through plughw:1,0:
> > ...
>
> > Momentary freq = 192000 Hz (0x18.0000)
>
> Does this value ever change?
> Could you again try inserting a printk to see whether the driver thinks
> it gets invalid frequency values?
>
>
> Regards,
> Clemens
>
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-26 9:20 ` Adrian Stancu
@ 2008-02-26 11:36 ` Clemens Ladisch
2008-02-26 12:53 ` Adrian Stancu
0 siblings, 1 reply; 28+ messages in thread
From: Clemens Ladisch @ 2008-02-26 11:36 UTC (permalink / raw)
To: Adrian Stancu; +Cc: alsa-devel
Adrian Stancu wrote:
> I wanted to mention that (from what I noticed until now), it is not
> possible to get correct playback on this device unless the sampling
> frequency it is set to (it defaults to 48k when powered on) matches
> the sampling frequency of the audio stream you send to it. So how is
> this supposed to work, if the device is set to 48k and my stream has
> 192k (and I cannot set the device to 192k)?
The alternate setting of the interface is supposed to set the sampling
frequency, and this is exactly what the driver does.
The returned frequency value is correct, so it seems the device knows
that it is supposed to run at 192 kHz.
Does recording work with all sample rates?
Regards,
Clemens
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-26 11:36 ` Clemens Ladisch
@ 2008-02-26 12:53 ` Adrian Stancu
2008-02-26 14:21 ` Clemens Ladisch
0 siblings, 1 reply; 28+ messages in thread
From: Adrian Stancu @ 2008-02-26 12:53 UTC (permalink / raw)
To: Clemens Ladisch; +Cc: alsa-devel
I see, you say that the device knows what sample rate it is supposed
to use, and that this rate should be automatically used. However, in
practice, I guess this does not happen for some reason. For the
recording part, the things stay exactly like for playback, i.e. the
recorded sound is correct as long as the device is (manually, through
another OS) set to the sampling rate at which the recording is made.
Let me give a few examples:
1) I power on the device, and it automatically picks 48k. If i try
playing back something at any other rate (44.1k, 96k etc), the sound
is very distorted.
2) I logically connect the device to the virtual machine, set the
sampling rate to 96k through the creative supplied drivers, disconnect
(WITHOUT powering it off), reload the snd-usb-audio module in Linux.
Now, I can achieve correct playback only at 96k. Anything else is
distorted.
Of course, I can resample anything on-the-fly (through additional
device in ~/.asoundrc) to match the sampling rate of the device and
get normal sound.
As an additional note, recording at 192k seems *completely* broken. I
mean, If I record at 96k while the device was just powered on (i.e.
set to 48k), there is still a connection between the original and the
recorded sounds. However, at 192k, it looks just like pure noise, at
maximum amplitude.
Details:
http://img147.imageshack.us/my.php?image=recat96kdeviceat48kkt3.jpg
-- recorded at 96kHz
http://img81.imageshack.us/my.php?image=recat192kdeviceat48kii7.jpg
-- recorded at 192kHz
In both cases, the sound fed to the input was a simple 41.2Hz tone.
On Tue, Feb 26, 2008 at 1:36 PM, Clemens Ladisch <clemens@ladisch.de> wrote:
> Adrian Stancu wrote:
> > I wanted to mention that (from what I noticed until now), it is not
> > possible to get correct playback on this device unless the sampling
> > frequency it is set to (it defaults to 48k when powered on) matches
> > the sampling frequency of the audio stream you send to it. So how is
> > this supposed to work, if the device is set to 48k and my stream has
> > 192k (and I cannot set the device to 192k)?
>
> The alternate setting of the interface is supposed to set the sampling
> frequency, and this is exactly what the driver does.
>
> The returned frequency value is correct, so it seems the device knows
> that it is supposed to run at 192 kHz.
>
> Does recording work with all sample rates?
>
>
> Regards,
> Clemens
>
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-26 7:53 ` Adrian Stancu
2008-02-26 8:14 ` Clemens Ladisch
@ 2008-02-26 13:45 ` Pavel Hofman
1 sibling, 0 replies; 28+ messages in thread
From: Pavel Hofman @ 2008-02-26 13:45 UTC (permalink / raw)
To: Adrian Stancu; +Cc: alsa-devel, Clemens Ladisch
Hi,
just a quick note - when troubleshooting, I find the verbose mode of
aplay -v -D plughw:0 invaluable. In verbose mode the plug plugin prints
all the conversions it is doing with the input signal.
Good luck,
Pavel.
Adrian Stancu napsal(a):
> Thanks,
>
> Here is what i get:
> deathu@vader:~/Desktop$ sox testtone96.wav -r 192000 testtone192.wav
> deathu@vader:~/Desktop$ aplay -D hw:1 testtone192.wav
> Playing WAVE 'testtone192.wav' : Signed 16 bit Little Endian, Rate
> 192000 Hz, Mono
> aplay: set_params:918: Sample format non available
>
> If i do this:
> deathu@vader:~/Desktop$ aplay -D plughw:1 testtone192.wav
> Playing WAVE 'testtone192.wav' : Signed 16 bit Little Endian, Rate
> 192000 Hz, Mono
> I receive totally damaged audio (wrong frequency, lots of artifacts)
>
> Note: I wasn't ever able to use hw:1 or hw:1,0 as output for this
> interface, only plughw:1,0
>
> On Tue, Feb 26, 2008 at 9:32 AM, Clemens Ladisch <clemens@ladisch.de> wrote:
>> Adrian Stancu wrote:
>> > I don't know if there's any way around this, but I currently don't see
>> > any way of using this interface at >96kHz in Linux.
>>
>> sox something.wav -r 192000 something-192.wav
>> aplay -D hw:1 something-192.wav
>>
>>
>> HTH
>> Clemens
>>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
--
-----------------
inSITE, s.r.o.
Kafkova 16, 160 00 Praha 6
Rubesova 29, 326 00 Plzen
Tel., fax: +420 - 37 - 74 493 58
GSM: +420 - 603 - 163 973
Email: pavel.hofman@insite.cz
www.educity.cz, www.insite.cz
www.meetings.cz, www.hrzive.cz
www.comben.cz, www.hr-online.cz
-------------------------------
Navstivte www.educity.cz, server
s nejvetsi nabidkou profesniho
vzdelavani na ceskem internetu.
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-26 12:53 ` Adrian Stancu
@ 2008-02-26 14:21 ` Clemens Ladisch
2008-02-26 15:08 ` Adrian Stancu
0 siblings, 1 reply; 28+ messages in thread
From: Clemens Ladisch @ 2008-02-26 14:21 UTC (permalink / raw)
To: Adrian Stancu; +Cc: alsa-devel
Adrian Stancu wrote:
> I see, you say that the device knows what sample rate it is supposed
> to use, and that this rate should be automatically used.
Not automatically, the driver sets an alternate setting in set_format()
by calling usb_set_interface().
> ...
> 2) I logically connect the device to the virtual machine, set the
> sampling rate to 96k through the creative supplied drivers,
Apparently, that driver uses some vendor-specific request to configure
the device. To find out what exactly that driver does, you'd have to
use a tool like usbsnoop to record the USB requests.
Regards,
Clemens
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: snd-usb-audio syncronisation problem
2008-02-26 14:21 ` Clemens Ladisch
@ 2008-02-26 15:08 ` Adrian Stancu
0 siblings, 0 replies; 28+ messages in thread
From: Adrian Stancu @ 2008-02-26 15:08 UTC (permalink / raw)
To: Clemens Ladisch; +Cc: alsa-devel
OK, I undertand
First of all, I am very happy with the patch you wrote, that just
solved the most annoying issue for me, that was the synchronization
problem.
Second, I did as you instructed with the USB sniffer. I opened the emu
control panel (the interface was set to 48kHz), saved the current log
file (as log1), set the rate to 96kHz, again saved the current log
file (as log2). I diff'ed the 2 files, resulting in a third section,
170 lines.
If you are interested in debugging the rate control, I can attach the
diff file (or the original logs, if necessary). Will this list allow
mail attachments? Of course, I am willing to test anything you like,
if you are willing to further debug this.
Thanks,
Adi
On Tue, Feb 26, 2008 at 4:21 PM, Clemens Ladisch <clemens@ladisch.de> wrote:
> Adrian Stancu wrote:
> > I see, you say that the device knows what sample rate it is supposed
> > to use, and that this rate should be automatically used.
>
> Not automatically, the driver sets an alternate setting in set_format()
> by calling usb_set_interface().
>
> > ...
>
> > 2) I logically connect the device to the virtual machine, set the
> > sampling rate to 96k through the creative supplied drivers,
>
> Apparently, that driver uses some vendor-specific request to configure
> the device. To find out what exactly that driver does, you'd have to
> use a tool like usbsnoop to record the USB requests.
>
>
> Regards,
> Clemens
>
^ permalink raw reply [flat|nested] 28+ messages in thread
end of thread, other threads:[~2008-02-26 15:08 UTC | newest]
Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-22 9:51 snd-usb-audio syncronisation problem Adrian Stancu
2008-02-22 13:09 ` Clemens Ladisch
2008-02-22 13:45 ` Adrian Stancu
2008-02-22 13:57 ` Clemens Ladisch
2008-02-22 14:19 ` Adrian Stancu
2008-02-22 14:43 ` Clemens Ladisch
2008-02-22 14:51 ` Adrian Stancu
2008-02-22 15:05 ` ASoC AT91 : read dma buffer Alexandre BOUIN
2008-02-22 15:50 ` snd-usb-audio syncronisation problem Clemens Ladisch
2008-02-22 16:15 ` Adrian Stancu
2008-02-22 16:31 ` Clemens Ladisch
2008-02-22 16:46 ` Adrian Stancu
2008-02-22 16:49 ` Adrian Stancu
2008-02-22 17:01 ` Clemens Ladisch
2008-02-22 17:02 ` Adrian Stancu
2008-02-25 12:44 ` Clemens Ladisch
2008-02-25 18:32 ` Adrian Stancu
2008-02-26 7:32 ` Clemens Ladisch
2008-02-26 7:53 ` Adrian Stancu
2008-02-26 8:14 ` Clemens Ladisch
2008-02-26 8:38 ` Adrian Stancu
2008-02-26 8:49 ` Clemens Ladisch
2008-02-26 9:20 ` Adrian Stancu
2008-02-26 11:36 ` Clemens Ladisch
2008-02-26 12:53 ` Adrian Stancu
2008-02-26 14:21 ` Clemens Ladisch
2008-02-26 15:08 ` Adrian Stancu
2008-02-26 13:45 ` Pavel Hofman
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.