[alsa-devel] Capture from 3+ cards connected to a USB hub - distorted samples
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):
>> 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
>> * 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.
>> * 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 Kysela <perex at perex.cz>
Linux Kernel Sound Maintainer
ALSA Project; Red Hat, Inc.
More information about the Alsa-devel