This is current/amd64. I am trying to use the -c option of aucat, specifying the channels to be played from a multichannel file.
As an example, here is a quad audio file produced by sox: $ sox -n -b 16 quad.wav synth 10 sin 200 sin 300 sin 400 sin 600 gain -6 $ soxi quad.wav Input File : 'quad.wav' Channels : 4 Sample Rate : 48000 Precision : 16-bit Duration : 00:00:10.00 = 480000 samples ~ 750 CDDA sectors File Size : 3.84M Bit Rate : 3.07M Sample Encoding: 16-bit Signed Integer PCM Now trying to use aucat -c to play the individual channels doesn't seem to do what it says: $ aucat -dd -c 0:0 -i quad.wav quad.wav: skipped unknown chunk quad.wav,pst=cfg: play, chan 0:3, 48000Hz, s16le, bytes 80..3840080, vol 32768 default: 48000Hz, play 0:3, 36 blocks of 480 frames quad.wav,pst=cfg: allocated 17280 frame buffer cmap: nch = 4, ostart = 0, onext = 0, istart = 0, inext = 0 quad.wav,pst=ini: chain initialized quad.wav,pst=run: started started ^Cquad.wav,pst=ini: stopped stopped quad.wav,pst=ini: closed Indeed quad.wav has channels 0:3, but why does auact play channels 0:3 with -c 0:0 specified? Specifying other channels seem even more confusing: $ aucat -dd -c 2:2 -i quad.wav quad.wav: skipped unknown chunk quad.wav,pst=cfg: play, chan 2:5, 48000Hz, s16le, bytes 80..3840080, vol 32768 default: 48000Hz, play 0:5, 36 blocks of 480 frames quad.wav,pst=cfg: allocated 17280 frame buffer cmap: nch = 4, ostart = 2, onext = 0, istart = 0, inext = 0 quad.wav,pst=ini: chain initialized quad.wav,pst=run: started started ^Cquad.wav,pst=ini: stopped stopped quad.wav,pst=ini: closed Now it considers quad.wav to have channels 2 to 5 and it plays channels 0:5, given -c 2:2. Maybe I am misunderstanding the -c option (or what the -dd messages say): -c min:max The range of audio file channel numbers. The default is 0:1, i.e. stereo. When playing a file with aucat -i, does that mean "use these channels from the file"? If not, how does one specify "play just channel 2, out of 0,1,2,3"? There is a chunk that aucat skips; this is what sndfile-info says: File : quad.wav Length : 384080 RIFF : 384072 WAVE fmt : 40 Format : 0xFFFE => WAVE_FORMAT_EXTENSIBLE Channels : 4 Sample Rate : 48000 Block Align : 8 Bit Width : 16 Bytes/sec : 384000 Valid Bits : 16 Channel Mask : 0x33 (L, R, Ls, Rs) Subformat esf_field1 : 0x1 esf_field2 : 0x0 esf_field3 : 0x10 esf_field4 : 0x80 0x0 0x0 0xAA 0x0 0x38 0x9B 0x71 format : pcm fact : 4 frames : 48000 data : 384000 End ---------------------------------------- Sample Rate : 48000 Frames : 48000 Channels : 4 Format : 0x00130002 Sections : 1 Seekable : TRUE Duration : 00:00:01.000 Signal Max : 16424 (-6.00 dB) With 1 second instead of 10 seconds of audio (synth 1) the file is small enough, I am attaching it. Thanks for any clue. Jan