[alsa-devel] Help with multichannel High Speed USB audio device

Laurent . sid6582 at msn.com
Fri Jul 24 02:54:36 CEST 2009

Dear list,

I made an embedded device that has a CODEC with 6 inputs connected to an ARM9
micro-controller that has an integrated high-speed USB controller.
Now, I need to write the USB code on that micro-controller so that i can capture those
channels in real-time at 24bits / 48 KHz with low latency (ie. sub 10ms), on a computer.

I only need my device to work with Linux, and if possible, I would like to avoid writing a device
driver on the Linux-side.

Is there already such a USB audio driver available that I could nearly use "as is" and to which
i would conform ?

Would you have some general guideline on how to write the high-speed USB device code ?

Would you have any comment on the following :

For simplicity, my device is going to be the "clock master" of the system since it is already has
the exact clock that drives the CODEC.
I will maintain a circular buffer of samples (well, frames of samples) coming from the CODEC.
Each time a new frame arrives, i put the samples in the buffer and increase a counter so
i know how many frames of samples I have in the buffer, ready to be sent.
Each USB micro-frame (125ms/8000Hz), I send all the bytes corresponding to the frames that
I have in the circular buffer.
In average, 6*3*48000/8000 = 108, but I presume that could jitter slightly, which should not
be a problem at all.

Thanks in advance,

Windows Live™ Hotmail®: Celebrate the moment with your favorite sports pics. Check it out.

More information about the Alsa-devel mailing list