Voice chat in World of Warcaft with a USB microphone and Wine
I just happen to be a big fan of the PC game World of Warcraft, and I play the game regularly on my Linux (Kubuntu 7.10) desktop PC using the wonderful CrossOver Games product from Codeweavers.com. One World of Warcraft gameplay feature that I had not been able to get working was voice chat. I was able to listen to the voice chat traffic coming from other players, but never managed to get WoW to recognize any audio input device on my machine despite the fact that there are actually two audio capture devices available.
The hardware configuration that I am working with includes an onboard audio device with sound out and sound in capabilities as well as a Logitech USB Webcam Pro for Notebooks. Please refer to my two previous posts for more information on how I managed to get the Logitech webcam working as an audio and video input source using the ALSA sound system.
Before proceeding, make sure that you can successfully record audio from your USB microphone/webcam using the command-line 'arecord' utility. As long as that works, the rest of the work needed to enable WoW voice chat input should be easy. As it turns out, the default Wine configuration that comes with Crossover Games will get you most of the way there. The settings that it applies should work without modification, but just in case here are screenshots from the Wine configuration application related to sound drivers and audio devices for reference. I have highlighted the important values in crudely drawn red paint:

With the configuration as-is, WoW would not record any audio from the USB microphone on the 'Voice Options' tab when using the 'Test Microphone' feature. What was needed was to configured the ALSA sound system to consider the USB microphone as the 'System Default' or 'dsnoop:0' audio capture device. To do this required the creation of a simple ALSA configuration file (located at ~/.asoundrc):
pcm.!default {
type asym
playback.pcm {
type plug
slave.pcm "hw:0,0"
}
capture.pcm {
type plug
slave.pcm "hw:1,0"
}
}
With that configuration in place, I was able to successfully record a test audio sample and use the voice chat feature by selecting 'System Default' as the microphone device on the WoW Voice Options control panel. If that doesn't work for you, I would suggest otaining/installing/using the 'gamix' ALSA mixer configuration utility to make sure that your microphone device is set to 'record' and that the level is set to a value > 0.
For additional information on setting up an ALSA recording device, I suggest you visit this wiki entry from the Audacity Audio website.
