Here's the output of aplay -l:
**** List of PLAYBACK Hardware Devices ****
card 0: monitor [HDMI monitor], device 0: HDMI adv7511-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: ADAU1761 [ZED ADAU1761], device 0: adau1761 adau-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
First command works if I change "default" to "sysdefault" and doesn't underrun:
aplay -D sysdefault:CARD=ADAU1761 /usr/share/sounds/alsa/Front_Left.wav --dump-hw-params
Playing WAVE '/usr/share/sounds/alsa/Front_Left.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono
HW Params of device "sysdefault:CARD=ADAU1761":
--------------------
ACCESS: MMAP_INTERLEAVED MMAP_NONINTERLEAVED MMAP_COMPLEX RW_INTERLEAVED RW_NONINTERLEAVED
FORMAT: S8 U8 S16_LE S16_BE U16_LE U16_BE S24_LE S24_BE U24_LE U24_BE S32_LE S32_BE U32_LE U32_BE FLOAT_LE FLOAT_BE FLOAT64_LE FLOAT64_BE MU_LAW A_LAW IMA_ADPCM S24_3LE S24_3BE U24_3LE U24_3BE S20_3LE S20_3BE U20_3LE U20_3BE S18_3LE S18_3BE U18_3LE U18_3BE
SUBFORMAT: STD
SAMPLE_BITS: [4 64]
FRAME_BITS: [4 640000]
CHANNELS: [1 10000]
RATE: [4000 4294967295)
PERIOD_TIME: (333 4096000]
PERIOD_SIZE: (1 4294967295)
PERIOD_BYTES: (0 4294967295)
PERIODS: (0 4294967294)
BUFFER_TIME: [1 4294967295]
BUFFER_SIZE: [2 4294967294]
BUFFER_BYTES: [1 4294967295]
TICK_TIME: ALL
--------------------
This is the output for the second command:
aplay --dump-hw-params -D hw:1,0 /dev/zero
Playing raw data '/dev/zero' : Unsigned 8 bit, Rate 8000 Hz, Mono
HW Params of device "hw:1,0":
--------------------
ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT: S32_LE
SUBFORMAT: STD
SAMPLE_BITS: 32
FRAME_BITS: 64
CHANNELS: 2
RATE: [8000 96000]
PERIOD_TIME: (333 4096000]
PERIOD_SIZE: [32 32768]
PERIOD_BYTES: [256 262144]
PERIODS: [2 2048]
BUFFER_TIME: (666 8192000]
BUFFER_SIZE: [64 65536]
BUFFER_BYTES: [512 524288]
TICK_TIME: ALL
--------------------
aplay: set_params:1233: Sample format non available
Available formats:
- S32_LE
Anyway, you have just solved our problem. Looks like adding the -D with the hardware name from aplay -L instead of hw:x,y or not using -D (if we only have one card, like in the PCM1754 setup) makes it work perfectly. How is it different to use the -D with sysdefault:CARDNAME? Thank you very much