[alsa-devel] Phoenix Audio Duet

Shane Hathaway shane.list.alsa-devel at hathawaymix.org
Thu Sep 20 07:26:18 CEST 2007


I just bought a set of Phoenix Audio Duets for VOIP conferencing.  They
are USB speakerphones with good echo cancellation.  They work fine with
the snd_usb_audio module, with one exception: I can't control the
microphone and speaker levels.  ALSA exposes some controls, but they
have no effect, so I have to shout to be heard.

Rather than get a hoarse voice, I want to help enhance the snd_usb_audio
module to correctly support the mixer controls within the Duet.  I know
the device actually has working mixer controls because Phoenix Audio
provides a Windows-only utility for controlling the levels, and when I
use that utility turn up the mic, I can be heard quite well.
Unfortunately, the levels are reset when I move the device back to a
Linux box.

I used SnoopyPro to capture USB packets as I adjusted the levels in
Windows and I think I know what to transmit to the device in order to
read and change the levels.  Now I just need to figure out how to
translate that knowledge into kernel code.  I am a capable C coder
(though rusty), I don't know much about USB, and I've dabbled in kernel
code before.

lsusb lists the Duet (Executive) as:

Bus 001 Device 011: ID 0556:0004 Asahi Kasei Microsystems Co., Ltd

Both kmix and Ekiga see it as an AK4571.  There is a data sheet for that
chip here:


I would guess that the AK4571 has mixer controls built in, but that
Phoenix Audio (phnxaudio.com) chose not to use those controls and
instead enhanced the USB interface with nonstandard mixer controls.

So, where should I begin?  I don't see evidence that anyone has worked
on this yet.


More information about the Alsa-devel mailing list