Recently I tried to follow test described in this thread but encountered impossibility to play with "ossplay -R" 32 bit files that were produced according to the method from the mentioned thread. When I play that wav files (e. g. 192000Hz/32bit) I hear loud white noise and very quiet musical track. The same is true about playing 32 bit files in deadbeef with Petrov's plug-in. But if I convert files to 192000Hz/16bit format I can play them with "ossplay -R" command. And if I change the bit option from 32 to 16 bit in settings of Petrov's plug-in I can play 192000Hz/32bit files in deadbeef.
With alsa I can play 32 bit files whithout distortions and output of "cat /proc/asound/card0/pcm0p/sub0/hw_params" command shows that they are played in 32 bit format. I used self-compiled alsa with disabled resample and pulse output options and moreover I do not use pulse system wide.
Some thech info.
1) I use self-compiled oss-git on Archlinux. I use the following modifications in PKGBUILD
Code: Select all
sed -e "s;grc_min=3;grc_min=5;g" -i "setup/srcconf.c"
sed -e "s;grc_max=3;grc_max=5;g" -i "setup/srcconf.c"
sed -e "s;GRC_MIN_QUALITY=3;GRC_MIN_QUALITY=5;g" -i "configure"
sed -e "s;GRC_MAX_QUALITY=3;GRC_MAX_QUALITY=5;g" -i "configure"
configre --enable-libsalsa=NO --config-vmix=NO --only-drv=oss_hdaudio --regparm
2) /dev/oss/oss_hdaudio0/spdout0 is the only device that reproduces sound without distortion. Since I do not use vmix I have set it the default device via
Code: Select all
ln -sf /dev/oss/oss_hdaudio0/spdout0 /dev/dsp
3) /usr/lib/oss/conf/osscore.conf
Code: Select all
cooked_enable=0
vmix_disabled=1
vmix_no_autoattach=1
4) ossinfo
Code: Select all
[~]$ ossinfo -v9
Version info: OSS 4.2 (b 2011/201608171639) (0x00040100) OSS_HG
Platform: Linux/x86_64 4.6.4-1-ARCH #1 SMP PREEMPT Mon Jul 11 19:12:32 CEST 2016 (myhost)
Number of audio devices: 9
Number of audio engines: 9
Number of MIDI devices: 0
Number of mixer devices: 1
Device objects
0: osscore0 OSS core services
1: oss_hdaudio0 Intel HD Audio interrupts=5893 (5893)
HD Audio controller Intel HD Audio
Vendor ID 0x80863a3e
Subvendor ID 0x104382fe
Codec 0: ALC888 (0x10ec0888/0x104382fe)
<skipped part>
HD Audio play spdif-out /dev/oss/oss_hdaudio0/spdout0 (device index 5)
Legacy device /dev/dsp5
Caps: TRIGGER MMAP
Modes: OUTPUT
Out engine 1: 5/HD Audio play spdif-out
Available for use
Input formats (0x00001410):
AFMT_S16_LE - 16 bit signed little endian
AFMT_AC3 - AC3 (Dolby Digital) encoded audio
AFMT_S32_LE - 32 bit signed little endian
Output formats (0x00001410):
AFMT_S16_LE - 16 bit signed little endian
AFMT_AC3 - AC3 (Dolby Digital) encoded audio
AFMT_S32_LE - 32 bit signed little endian
Device handle: PCI82fe1043-0000:00:1b.0-au06
Related mixer dev: 0
Sample rate source: 0
Preferred channel configuration: Not indicated
Supported number of channels (min - max): 2 - 2
Native sample rates (min - max): 44100 - 192000 (44100,48000,88200,96000,192000)
HW Type: Not indicated.
Minimum latency: Not indicated
<skipped part>
Nodes
/dev/dsp -> /dev/oss/oss_hdaudio0/spdout0
/dev/dsp_in -> /dev/oss/oss_hdaudio0/pcmin0
/dev/dsp_out -> /dev/oss/oss_hdaudio0/pcm0
/dev/dsp_ac3 -> /dev/oss/oss_hdaudio0/spdout0
/dev/dsp_mmap -> /dev/oss/oss_hdaudio0/pcm0
/dev/dsp_multich -> /dev/oss/oss_hdaudio0/pcm0
5) Deadbeef shell output
192000Hz/32bit output options in Petrovs's plug-in - white noise during playback
Code: Select all
oss: exclusive mode is activated!
Converter: fftrate (ver. 0.9)
Input : 192000 Hz, 2 ch (0003), 32i bits
Output : 192000 Hz, 2 ch (0003), 32i bits
Params.: delay = 43 ms, sync: ON, transform: 'None' - 'Planar'
Matrix :
FL FR
FL 1.000 -----
FR ----- 1.000
192000Hz/16bit output options in Petrovs's plug-in - no white noise, normal playback
Code: Select all
oss: exclusive mode is activated!
Converter: fftrate (ver. 0.9)
Input : 192000 Hz, 2 ch (0003), 32i bits
Output : 192000 Hz, 2 ch (0003), 16i bits
Params.: delay = 43 ms, sync: ON, transform: 'None' - 'Planar'
Matrix :
FL FR
FL 1.000 -----
FR ----- 1.000
6) ossplay
white noise during playback
Code: Select all
ossplay -R -vvvv output_192kHz_32bit.wav
FORM len = 852213804
output_192kHz_32bit.wav: Reading chunk fmt , size 16, pos 12, next 36
FMT chunk: len = 16, fmt = 0x1
output_192kHz_32bit.wav: Reading chunk data, size 852213760, pos 36, next 852213804
DATA chunk. Offs = 44, len = 852213760
Playing WAVE file output_192kHz_32bit.wav, 32 bits/stereo/192000 Hz
Setup device S32_LE/2/192000
Time: 00:05.80 of 09:14.83 VU -----
no white noise, normal playback
Code: Select all
ossplay -R -vvvv output_192kHz_16bit.wav
FORM len = 426106924
output_192kHz_16bit.wav: Reading chunk fmt , size 16, pos 12, next 36
FMT chunk: len = 16, fmt = 0x1
output_192kHz_16bit.wav: Reading chunk data, size 426106880, pos 36, next 426106924
DATA chunk. Offs = 44, len = 426106880
Playing WAVE file output_192kHz_16bit.wav, 16 bits/stereo/192000 Hz
Setup device S16_LE/2/192000
Time: 00:17.20 of 09:14.83 VU ---
I'm looking for any help to solve that 32 bit output problem.