A resposta de JohnT dá uma boa base. Vou segui-la com a forma de encontrar os dispositivos no seu sistema. Use “aplay -l” para obter uma lista dos dispositivos no seu sistema. O hw:X,Y vem deste mapeamento do seu hardware – neste caso, X é o número do cartã, enquanto Y é o device número.
$ aplay -l # note lower-case "L" option
****List of PLAYBACK Hardware Devices****
card 0: T71Space [Terratec Aureon 7.1-Space], device 0: ICE1724 [ICE1724]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: T71Space [Terratec Aureon 7.1-Space], device 1: IEC1724 IEC958 [IEC1724 IEC958]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: T71Space [Terratec Aureon 7.1-Space], device 2: ICE1724 Surrounds [ICE1724 Surround PCM]
Subdevices: 3/3
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Como estes são dispositivos USB que podem nem sempre obter os mesmos números de dispositivos cada vez que estão ligados, o dispositivo hw:X,Y pode mudar. A resposta mais simples é, para um sistema desktop, experimentar as ferramentas de configuração GNOME/KDE/Xfce, e ver se são suficientemente inteligentes para captar as alterações.
A forma complexa, se não estiver a fazer isto com um sistema de ambiente de trabalho, torna-se … interessante. Talvez consiga escapar com usando device aliases em vez do “hw:X,Y” – isto é o que a saída de “aplay -L” mostra. O material “something:CARD=FOO,DEV=Y” é o alias, e provavelmente não mudará entre diferentes plug-ins de dispositivos, onde o X em “hw:X,Y” poderá. (Assumindo que está a usar sempre o mesmo dongle USB.)
$ aplay -L
default:CARD=CK804
NVidia CK804, NVidia CK804
Default Audio Device
front:CARD=CK804,DEV=0 # hw:0,0
NVidia CK804, NVidia CK804
Front speakers
surround40:CARD=CK804,DEV=0 # hw:0,1
NVidia CK804, NVidia CK804
4.0 Surround output to Front and Rear speakers
Então o seu comando aplay tornar-se-ia “aplay -D front:CARD=CK804,DEV=0 somefile.wav”, e pode usar o mesmo nome de dispositivo no seu .asoundrc.
Se precisar de algo mais estável a um nível ainda mais baixo, os dispositivos de kernel actuais, udev* é o que pretende – é o sistema que permite a ligação de dispositivos de hotplug ao sistema. Pode escrever regras para udev (e aqui está a página man ) que permitirá que os dispositivos obtenham o mesmo nome de dispositivo quando ligados.