> > > I'd certainly be interested in the ability to play audio in a way > > > that avoids resampling altogether, > > > > If you have a 48kHz file, and your audio device can only do 44100, > > then you have to resample, no way around it.
> > > similar to what a user can do on FreeBSD with the > > > following sysctl tweaks: > > > # sysctl hw.snd.maxautovchans=0 dev.pcm.0.bitperfect=1 > > It's off topis of course, but What is dev.pcm.%d.bitperfect gonna do > > if the sample rate (or some other characteristics) is not what the device > > itself supports? As in e.g. $ play -r 12345 -c 3 -n synth 10 On Jan 10 09:36:28, a...@caoua.org wrote: > chown <your_user_id> /dev/audio* > rcctl stop sndiod After doing that, $ play -V 48000.wav play: SoX v14.4.2 play INFO formats: detected file format type `wav' Input File : '48000.wav' Channels : 2 Sample Rate : 48000 Precision : 16-bit Duration : 00:00:25.00 = 1200000 samples ~ 1875 CDDA sectors File Size : 4.80M Bit Rate : 1.54M Sample Encoding: 16-bit Signed Integer PCM Endian Type : little Reverse Nibbles: no Reverse Bits : no Output File : 'default' (sndio) Channels : 2 Sample Rate : 48000 Precision : 16-bit Duration : 00:00:25.00 = 1200000 samples ~ 1875 CDDA sectors Sample Encoding: 16-bit Signed Integer PCM Endian Type : little Reverse Nibbles: no Reverse Bits : no play INFO sox: effects chain: input 48000Hz 2 channels play INFO sox: effects chain: output 48000Hz 2 channels In:15.4% 00:00:03.84 [00:00:21.16] Out:184kk [ ---=|=--- ] Clip:0 $ play -V 44100.wav play: SoX v14.4.2 play INFO formats: detected file format type `wav' Input File : '44100.wav' Channels : 2 Sample Rate : 44100 Precision : 16-bit Duration : 00:00:25.00 = 1102500 samples = 1875 CDDA sectors File Size : 4.41M Bit Rate : 1.41M Sample Encoding: 16-bit Signed Integer PCM Endian Type : little Reverse Nibbles: no Reverse Bits : no Output File : 'default' (sndio) Channels : 2 Sample Rate : 44100 Precision : 16-bit Duration : 00:00:25.00 = 1102500 samples = 1875 CDDA sectors Sample Encoding: 16-bit Signed Integer PCM Endian Type : little Reverse Nibbles: no Reverse Bits : no play INFO sox: effects chain: input 44100Hz 2 channels play INFO sox: effects chain: output 44100Hz 2 channels In:25.3% 00:00:06.32 [00:00:18.68] Out:279kk [ =====|===== ] Clip:0 Aborted. $ aucat -i 44100.wav default: unsupported audio params $ aucat -i 48000.wav default: unsupported audio params It seems sox negotiates either 48000 or 44100 with sndio (meaning the sndio library, not the non-running sndiod) and sends that, but aucat errors out. But the device itself can do 48000 (says audioctl), so is that a bug in aucat? Jan