[alsa-devel] Capture from 3+ cards connected to a USB hub - distorted samples

Pavel Hofman pavel.hofman at ivitera.com
Mon Dec 26 20:48:44 CET 2011

Dne 18.12.2011 21:17, Pavel Hofman napsal(a):
> Dne 14.12.2011 13:30, Jaroslav Kysela napsal(a):
>> Date 14.12.2011 13:19, Pavel Hofman wrote:
>>> Dne 10.12.2011 00:23, Pavel Hofman napsal(a):
>>>> Hi,
>>>> I have been informed about the following problem which I was able to
>>>> reproduce afterwards:
>>>> * Latest git.alsa-project.org drivers
>>>> * USB 2.0 hub, 3 or more USB soundcards (inexpensive USB sticks, USB
>>>> audio v.1 types, async capture, adaptive playback) hooked to the hub,
>>>> identified A, B, C, D.
>>>> * NONE of these soundcards is playing back
>>>> Now:
>>>> * Card A begins microphone capturing (mono 48/16), result OK
>>>> * Card B begins capturing (mono 48/16), both results still OK
>>>> * As soon as the third card C begins capturing, the signal captured from
>>>>    cards A and B gets distorted. Audacity shows some samples are
>>>> incorrect, distorting the expected sine waveform of the testing signal.
>>>> I can provide screenshots as well as recorded samples, if needed.
>>>> * The signal recorded from card C is OK.
>>>> BUT
>>>> * If any card hooked to the HUB is playing back (even a fourth one D),
>>>> the distortion does not occur. It happens only when there is no playback
>>>> stream going through the hub. Traffic on another USB port has no effect,
>>>> in fact the test signal for the three cards was provided by a
>>>> multichannel USB card hooked to another USB port.
>>>> It seems to me as if blocks of samples for each card in the USB frame
>>>> sometimes overlap by a few bits, corrupting the neighbouring card
>>>> samples, or are recovered incorrectly.
>>>> I understand I have provided no real data, I am ready to do so plus any
>>>> tests you would consider useful.
>>>> Thanks a lot for suggestions of the next debugging steps I should do.
>>> Hi, please may I ask for help? I think we could fix this likely bug.
>> This looks like a USB core issue (lost / unsynced URBs from isochronous
>> transfers). I would try recent linux kernels and/or ask on the USB
>> development list for a help.
> Hi Jaroslav,
> Thanks a lot for your suggestion. I tested latest stable kernel 3.1.5.
> The behaviour has somewhat improved (3 cards OK), but still IMO
> incorrect (the fourth card D distorts captured streams from C and D). I
> will ask at the usb development list.

I checked USB communication with wireshark and the reduced data payload
in URBs for card C and D suggest I am already hitting ceiling of the hub
throughput. I think the hub support is already correct in the latest kernel.

Best regards,


More information about the Alsa-devel mailing list