aucat can't seem to properly play a 24-bit 44.1kHz stdout of flac -d

From: Job Bautista <>
Date: Mon, 23 May 2022 14:21:11 +0800
I'm using Devuan GNU/Linux (testing branch) and its packaging of sndio 
(which comes from Debian).

My sndiod flags are: -L -m play,mon -e s24

Setting -e to s16 or s32, or omitting -e doesn't help the problem I will 
explain shortly below. Also, weirdly if I set sndiod's format encoding 
to s24, my /proc/asound/card0/pcm0p/sub0/hw_params says that the format 
is S32_LE. But anyway...

I'm trying to make aucat play flac's stdout of its decoding of a 24-bit, 
44.1kHz FLAC file, but it's only returning noise to me, even if I 
specify aucat's input format as suggested in this email thread.[1] 
16-bit FLACs work fine in this setup though. And if I decode the 24-bit 
FLAC first to a file, then make aucat play from there, it plays it 
properly. It's only when I try to use the stdout setup it fails. Weird.

Here's the exact command-line:

$ flac -dcs bf3.flac | aucat -e s24 -r 44100 -i -

Here's what aucat -dd tells me:

stdin,pst=cfg: play, chan 0:1, 44100Hz, s24le4msb, vol 32768
default: 44100Hz, play 0:1, 36 blocks of 441 frames
stdin,pst=cfg: allocated 15876 frame buffer
cmap: nch = 2, ostart = 0, onext = 0, istart = 0, inext = 0
dec: s24le4msb, 2 channels
stdin,pst=ini: chain initialized
stdin,pst=run: started

The 24-bit FLAC file I'm trying to play can be found at [2].

aplay doesn't show this problem by the way.

$ flac -dcs th5_21_8p.flac | aplay

Playing WAVE 'stdin' : Signed 24 bit Little Endian in 3bytes, Rate 44100 
Hz, Stereo

Perhaps the "3bytes" may be throwing off aucat? I don't know, I'm not 
that well-versed with audio. If you need more information, please tell 
me. Thanks

[1] -
[2] -

Job Bautista
Received on Mon May 23 2022 - 08:21:11 CEST

This archive was generated by hypermail 2.3.0 : Tue Aug 09 2022 - 16:23:51 CEST