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

Pavel Hofman pavel.hofman at ivitera.com
Sun Dec 18 21:17:28 CET 2011


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.

Regards,

Pavel


More information about the Alsa-devel mailing list