Fixing Sound Problems with an ICE1712 based Soundcard under WINE

Dec 5, 2010 12:40 · 441 words · 3 minutes read Linux

As I like to make some music in my home studio from time to time, I own a professional grade sound card (a Delta 66) which is built around the ICE1712 chip. The card works like a charm under Linux (as all cards based on that chip do) but I had some major problems with sound under WINE. Most of the time I had no sound at all. If I had sound it sounded really Lo-Fi and crackling (sounded like the sound was played back at 8Bit/11KHz).

I found out that in order to get at least the crackling sound, I had to “jump-start” the card, i.e. start playing sound in some non-WINE app (e.g. my MP3 Player) and then start the WINE app. When trying to adjust the sound settings in the WINE configuration (winecfg) my sound card was not even listed. It seems that when another app was playing back sound, the card was configured in a way that WINE could detect it.

Turns out WINE could not initialize my card properly (I think the multiple channels and the strange mixer device bamboozled it). Luckily, you can manually configure a sound card in the WINE registry. These are the registry settings that made the sound work properly for me:

[HKEY_CURRENT_USER\\Software\\Wine\\Alsa Driver]
"AutoScanCards"="N"
"AutoScanDevices"="N"
"DeviceCount"="1"
"DevicePCM1"="default"
"UseDirectHW"="N"

The key is to disable the auto scan (which seems not to work for more complex cards) and then manually configure the device you want to use by setting the alsa name of the device (in most cases default). You can also configure more than one device by choosing a different device count and then adding DevicePCM2, DevicePCM3, etc.

To edit the WINE registry, you have to start the WINE registry editor like this:

wine regedit

The WINE registry editor works just like the original Windows one. If you don’t want to type in all the keys above, you can download the registry file here. You can then import it into your registry by opening the Registry menu and choosing Import Registry. Then simply select the downloaded .reg file and you are done.

To find out if your soundcard is ICE1712 based, run the following console command:

lspci

It should display a line similar to this:

05:01.0 Multimedia audio controller: VIA Technologies Inc. ICE1712 [Envy24] PCI Multi-Channel I/O Controller (rev 02)

If your card is not ICE1712 based but still has similar problems to the one described above, this solution might also be for you. All it does is force WINE to use the ALSA default device (or whichever device you enter) instead of trying to figure out the sound devices by itself.