[alsa-devel] Phoenix Audio Duet
Hello,
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:
http://www.datasheetcatalog.com/asahikaseimicrosystems/3/
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.
Shane
Shane Hathaway wrote:
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.
Update: it turns out that the Duet mixer controls work perfectly with alsamixer and amixer. So once I have the card index (3 in my case), all I have to do is this:
amixer -c 3 sset 'PCM',0 100%
Once I did that, the microphone level was very good.
However, mysteriously, the microphone level control in kmix is not working (it does not generate any USB events at all) and neither of the level controls in Ekiga is working. My system is Gentoo, I'm running Linux 2.6.22, and my alsa-lib is version 1.0.15_rc2. I've seen similar behavior on two Ubuntu Dapper boxes. I intend to look into these problems.
So I just thought I'd let everyone know that ALSA is fully compatible with the Duet after all. Both kmix and Ekiga seem to have trouble with the level controls, but at least you can fall back to amixer or alsamixer.
Shane
participants (1)
-
Shane Hathaway