It's certainly true that ALSA is not so friendly
MC provides a util called alsacap that summarises some info about what is available. If I run this on a system with an hdmi output then I get a bunch of HDMI devices listed.
/usr/lib/jriver/Media\ Center\ 24/alsacap
*** Scanning for playback devices ***
Card 0, ID `NVidia', name `HDA NVidia'
Device 3, ID `HDMI 0', name `HDMI 0', 1 subdevices (1 available)
2..8 channels, sampling rates 32000, 44100, 48000, 88200, 96000, 176400, 192000 Hz
Sample formats: S16_LE, S32_LE
Subdevice 0, name `subdevice #0'
Device 7, ID `HDMI 1', name `HDMI 1', 1 subdevices (1 available)
2..8 channels, sampling rates 32000, 44100, 48000, 88200, 96000, 176400, 192000 Hz
Sample formats: S16_LE, S32_LE
Subdevice 0, name `subdevice #0'
Device 8, ID `HDMI 2', name `HDMI 2', 1 subdevices (1 available)
2..8 channels, sampling rates 32000, 44100, 48000, 88200, 96000, 176400, 192000 Hz
Sample formats: S16_LE, S32_LE
Subdevice 0, name `subdevice #0'
Device 9, ID `HDMI 3', name `HDMI 3', 1 subdevices (1 available)
2..8 channels, sampling rates 32000, 44100, 48000, 88200, 96000, 176400, 192000 Hz
Sample formats: S16_LE, S32_LE
Subdevice 0, name `subdevice #0'
Card 1, ID `Generic', name `HD-Audio Generic'
Device 0, ID `ALC887-VD Analog', name `ALC887-VD Analog', 1 subdevices (1 available)
2 channels, sampling rates 44100, 48000, 96000, 192000 Hz
Sample formats: S16_LE, S32_LE
Subdevice 0, name `subdevice #0'
Device 1, ID `ALC887-VD Digital', name `ALC887-VD Digital', 1 subdevices (1 available)
2 channels, sampling rates 32000, 44100, 48000, 88200, 96000, 192000 Hz
Sample formats: S16_LE, S32_LE
Subdevice 0, name `subdevice #0'
If you look at the output of aplay -l then you'll see this is like a richer version of that
matt@uridium:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 0: ALC887-VD Analog [ALC887-VD Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 1: ALC887-VD Digital [ALC887-VD Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
If I look in the MC Audio options though then I get another long list (see pic), this one is more like the output from aplay -L
$ aplay -L
default
Playback/recording through the PulseAudio sound server
null
Discard all samples (playback) or generate zero samples (capture)
hdmi:CARD=NVidia,DEV=0
HDA NVidia, HDMI 0
HDMI Audio Output
hdmi:CARD=NVidia,DEV=1
HDA NVidia, HDMI 1
HDMI Audio Output
hdmi:CARD=NVidia,DEV=2
HDA NVidia, HDMI 2
HDMI Audio Output
hdmi:CARD=NVidia,DEV=3
HDA NVidia, HDMI 3
HDMI Audio Output
dmix:CARD=NVidia,DEV=3
HDA NVidia, HDMI 0
Direct sample mixing device
dmix:CARD=NVidia,DEV=7
HDA NVidia, HDMI 1
Direct sample mixing device
dmix:CARD=NVidia,DEV=8
HDA NVidia, HDMI 2
Direct sample mixing device
dmix:CARD=NVidia,DEV=9
HDA NVidia, HDMI 3
Direct sample mixing device
dsnoop:CARD=NVidia,DEV=3
HDA NVidia, HDMI 0
Direct sample snooping device
dsnoop:CARD=NVidia,DEV=7
HDA NVidia, HDMI 1
Direct sample snooping device
dsnoop:CARD=NVidia,DEV=8
HDA NVidia, HDMI 2
Direct sample snooping device
dsnoop:CARD=NVidia,DEV=9
HDA NVidia, HDMI 3
Direct sample snooping device
hw:CARD=NVidia,DEV=3
HDA NVidia, HDMI 0
Direct hardware device without any conversions
hw:CARD=NVidia,DEV=7
HDA NVidia, HDMI 1
Direct hardware device without any conversions
hw:CARD=NVidia,DEV=8
HDA NVidia, HDMI 2
Direct hardware device without any conversions
hw:CARD=NVidia,DEV=9
HDA NVidia, HDMI 3
Direct hardware device without any conversions
plughw:CARD=NVidia,DEV=3
HDA NVidia, HDMI 0
Hardware device with all software conversions
plughw:CARD=NVidia,DEV=7
HDA NVidia, HDMI 1
Hardware device with all software conversions
plughw:CARD=NVidia,DEV=8
HDA NVidia, HDMI 2
Hardware device with all software conversions
plughw:CARD=NVidia,DEV=9
HDA NVidia, HDMI 3
Hardware device with all software conversions
sysdefault:CARD=Generic
HD-Audio Generic, ALC887-VD Analog
Default Audio Device
front:CARD=Generic,DEV=0
HD-Audio Generic, ALC887-VD Analog
Front speakers
surround21:CARD=Generic,DEV=0
HD-Audio Generic, ALC887-VD Analog
2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Generic,DEV=0
HD-Audio Generic, ALC887-VD Analog
4.0 Surround output to Front and Rear speakers
surround41:CARD=Generic,DEV=0
HD-Audio Generic, ALC887-VD Analog
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Generic,DEV=0
HD-Audio Generic, ALC887-VD Analog
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Generic,DEV=0
HD-Audio Generic, ALC887-VD Analog
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Generic,DEV=0
HD-Audio Generic, ALC887-VD Analog
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Generic,DEV=0
HD-Audio Generic, ALC887-VD Digital
IEC958 (S/PDIF) Digital Audio Output
dmix:CARD=Generic,DEV=0
HD-Audio Generic, ALC887-VD Analog
Direct sample mixing device
dmix:CARD=Generic,DEV=1
HD-Audio Generic, ALC887-VD Digital
Direct sample mixing device
dsnoop:CARD=Generic,DEV=0
HD-Audio Generic, ALC887-VD Analog
Direct sample snooping device
dsnoop:CARD=Generic,DEV=1
HD-Audio Generic, ALC887-VD Digital
Direct sample snooping device
hw:CARD=Generic,DEV=0
HD-Audio Generic, ALC887-VD Analog
Direct hardware device without any conversions
hw:CARD=Generic,DEV=1
HD-Audio Generic, ALC887-VD Digital
Direct hardware device without any conversions
plughw:CARD=Generic,DEV=0
HD-Audio Generic, ALC887-VD Analog
Hardware device with all software conversions
plughw:CARD=Generic,DEV=1
HD-Audio Generic, ALC887-VD Digital
Hardware device with all software conversions
the nvidia docs on this decode this further as per
https://download.nvidia.com/XFree86/gpu-hdmi-audio-document/#_alsa_device_numberingi.e. 4 devices are reported because there is 1 per physical connector (DP or HDMI) on the board so the right one to use depends on which physical port I am using.
The hdmi vs hw/plughw is a logical name (hdmi) provided by the nvidia driver vs the generic device names used by alsa (where hw = direct access to the hardware, plughw = allows for things like upsampling and so on in alsa before it hits the hardware).
Is this the sort of thing you're seeing and confused by? If so, if you can reproduce similar info as above and can point out which bits are confusing then we can probably help decode what your hardware can do
alternatively just iterate through them until you find a working one