La respuesta de JohnT da una buena base. Voy a seguir con la forma de encontrar los dispositivos en su sistema. Usa “aplay -l” para obtener una lista de los dispositivos de tu sistema. El hw:X,Y viene de este mapeo de tu hardware – en este caso, X es el número de tarjeta, mientras que Y es el número de dispositivo.
$ 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
Dado que se trata de dispositivos USB que pueden no tener siempre los mismos números de dispositivo cada vez que se conectan, el dispositivo hw:X,Y puede cambiar. La respuesta más sencilla es, para un sistema de escritorio, probar las herramientas de configuración de GNOME/KDE/Xfce, y ver si son lo suficientemente inteligentes como para recoger los cambios.
La forma compleja, si no estás haciendo esto con un sistema de escritorio, se pone… interesante. Usted podría ser capaz de salirse con la suya utilizando alias de dispositivos en lugar de la “hw:X,Y” – esto es lo que muestra la salida de “aplay -L”. Lo de “algo:CARD=FOO,DEV=Y” es el alias, y probablemente no cambiará entre diferentes plug-ins de dispositivos, mientras que la X en “hw:X,Y” sí podría hacerlo. (Asumiendo que estás usando el mismo dongle USB cada vez.)
$ 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
Así que tu comando aplay se convertiría en “aplay -D front:CARD=CK804,DEV=0 somefile.wav”, y puedes usar el mismo nombre de dispositivo en tu .asoundrc.
Si necesita algo más estable a un nivel aún más bajo, dispositivos reales del kernel, udev es lo que quiere – es el sistema que permite la conexión en caliente de dispositivos en el sistema. Puede escribir reglas para udev (y aquí está la página man ) que permitirá que los dispositivos obtengan el mismo nombre de dispositivo cuando se conecten.