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

Jaroslav Kysela perex at perex.cz
Wed Dec 14 13:30:42 CET 2011


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.

					Jaroslav

-- 
Jaroslav Kysela <perex at perex.cz>
Linux Kernel Sound Maintainer
ALSA Project; Red Hat, Inc.


More information about the Alsa-devel mailing list