No 32 bit output with on-board Intel HDA

OSS specific Linux discussion (x86/amd64)

Moderators: hannu, dev, cesium

Anton2
New Member
Posts: 7
Joined: Mon Aug 29, 2016 1:13 pm

No 32 bit output with on-board Intel HDA

Postby Anton2 » Mon Aug 29, 2016 1:27 pm

Hello to all oss users and developers!

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.

igorzwx
Known Member
Posts: 1258
Joined: Sun Jun 28, 2009 9:31 pm

Re: No 32 bit output with on-board Intel HDA

Postby igorzwx » Mon Aug 29, 2016 5:32 pm

Post here the complete output of this commands:

Code: Select all

$ ossinfo -v9


32-bit analog output works with my HDA codec without any problems. or "sound distortions".
My "HD Audio play front":

Code: Select all

$ ossinfo -v9
Audio devices
HD Audio play front               /dev/oss/oss_hdaudio0/pcm0  (device index 0)
    Legacy device /dev/dsp0
    Caps: DUPLEX TRIGGER MMAP
    Modes: IN/OUT
      Out engine  1: 0/HD Audio play front
                     Available for use
      Engine      2: 9/HD Audio play front (vmix)
                     Available for use
      Engine      3: 10/HD Audio play front (vmix)
                     Available for use
      Engine      4: 11/HD Audio play front (vmix)
                     Available for use
      Engine      5: 12/HD Audio play front (vmix)
                     Available for use
    Input formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCIa0021458-0000:00:1b.0-au01
    Related mixer dev: 0
    Sample rate source: 0
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 2 - 8
    Native sample rates (min - max): 44100 - 192000 (44100,48000,96000,192000)
    HW Type: Not indicated.
    Minimum latency: Not indicated


If you do not have "HD Audio play front " in your "ossinfo -v9" , it might be something wrong with your self-compiled version of OSS4.

You may also test OSS4 with Linux Mint LiveCD. The manual is here:
_http://ossnext.trueinstruments.com/forum/viewtopic.php?f=3&t=5828

igorzwx
Known Member
Posts: 1258
Joined: Sun Jun 28, 2009 9:31 pm

Re: No 32 bit output with on-board Intel HDA

Postby igorzwx » Mon Aug 29, 2016 8:09 pm

Anton2 wrote:/dev/oss/oss_hdaudio0/spdout0 is the only device that reproduces sound without distortion.


Are you going to say that you do not want to use analog devices with OSS4, because you are a member of the BitPerfect cult?

For analog devices, you can use 32bit with OSS4 (according to ossinfo).

But for "spdout0", 32bit in ossinfo may mean 24bit (which was said to be the same thing).

In short, try 24bit waves with /dev/oss/oss_hdaudio0/spdout0

Anton2
New Member
Posts: 7
Joined: Mon Aug 29, 2016 1:13 pm

Re: No 32 bit output with on-board Intel HDA

Postby Anton2 » Mon Aug 29, 2016 8:30 pm

Thank you igorzwx for the reply.

I'm not the adept of "BitPerfect cult". I've already mentioned that 'spdout0" is the only device that reproduces the sound without distortion. I have no other choice.

Below is the full output of "ossinfo -v9" command.

Code: Select all

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=545979 (545979)
    HD Audio controller Intel HD Audio
    Vendor ID    0x80863a3e
    Subvendor ID 0x104382fe
     Codec  0: ALC888 (0x10ec0888/0x104382fe)

MIDI devices (/dev/midi*)

Mixer devices
 0: High Definition Audio ALC888 (Mixer 0 of device object 1)
    Device file /dev/oss/oss_hdaudio0/mix0, Legacy device /dev/mixer0
    Priority: 10
    Caps:
    Device handle: PCI82fe1043-0000:00:1b.0-mx01
    Device priority: 10


Audio devices
HD Audio play front               /dev/oss/oss_hdaudio0/pcm0  (device index 0)
    Legacy device /dev/dsp0
    Caps: TRIGGER MMAP
    Modes: OUTPUT
      Out engine  1: 0/HD Audio play front
                     Available for use
    Input formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI82fe1043-0000:00:1b.0-au01
    Related mixer dev: 0
    Sample rate source: 0
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 2 - 8
    Native sample rates (min - max): 44100 - 192000 (44100,48000,96000,192000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

HD Audio play rear                /dev/oss/oss_hdaudio0/pcm1  (device index 1)
    Legacy device /dev/dsp1
    Caps: TRIGGER MMAP
    Modes: OUTPUT
      Out engine  1: 1/HD Audio play rear
                     Available for use
    Input formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI82fe1043-0000:00:1b.0-au02
    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,96000,192000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

HD Audio play center/LFE          /dev/oss/oss_hdaudio0/pcm2  (device index 2)
    Legacy device /dev/dsp2
    Caps: TRIGGER MMAP
    Modes: OUTPUT
      Out engine  1: 2/HD Audio play center/LFE
                     Available for use
    Input formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI82fe1043-0000:00:1b.0-au03
    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,96000,192000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

HD Audio play side                /dev/oss/oss_hdaudio0/pcm3  (device index 3)
    Legacy device /dev/dsp3
    Caps: TRIGGER MMAP
    Modes: OUTPUT
      Out engine  1: 3/HD Audio play side
                     Available for use
    Input formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI82fe1043-0000:00:1b.0-au04
    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,96000,192000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

HD Audio play pcm4                /dev/oss/oss_hdaudio0/pcm4  (device index 4)
    Legacy device /dev/dsp4
    Caps: TRIGGER MMAP
    Modes: OUTPUT
      Out engine  1: 4/HD Audio play pcm4
                     Available for use
    Input formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI82fe1043-0000:00:1b.0-au05
    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,96000,192000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

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

HD Audio play spdifout            /dev/oss/oss_hdaudio0/spdout1  (device index 6)
    Legacy device /dev/dsp6
    Caps: TRIGGER MMAP
    Modes: OUTPUT
      Out engine  1: 6/HD Audio play spdifout
                     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-au07
    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

HD Audio rec mix                  /dev/oss/oss_hdaudio0/pcmin0  (device index 7)
    Legacy device /dev/dsp7
    Caps: TRIGGER MMAP
    Modes: INPUT 
      In engine   1: 7/HD Audio rec mix
                     Available for use
    Input formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI82fe1043-0000:00:1b.0-au08
    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 - 96000 (44100,48000,96000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

HD Audio rec mix                  /dev/oss/oss_hdaudio0/pcmin1  (device index 8)
    Legacy device /dev/dsp8
    Caps: TRIGGER MMAP
    Modes: INPUT 
      In engine   1: 8/HD Audio rec mix
                     Available for use
    Input formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI82fe1043-0000:00:1b.0-au09
    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 - 96000 (44100,48000,96000)
    HW Type: Not indicated.
    Minimum latency: Not indicated


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

igorzwx
Known Member
Posts: 1258
Joined: Sun Jun 28, 2009 9:31 pm

Re: No 32 bit output with on-board Intel HDA

Postby igorzwx » Mon Aug 29, 2016 8:57 pm

Have you tried 24bit waves with /dev/oss/oss_hdaudio0/spdout0 ?

osstest (and all sound) heavily distorted R. chn - hda-intel
_http://ossnext.trueinstruments.com/forum/viewtopic.php?t=3553

cesium wrote:It's a known problem with ALC1200 (detected as ALC888 by OSS. ALC1200 is ALC888 with different revision, IIRC?). I don't know how to fix it.


Do you have a sort of notebook?

Anton2
New Member
Posts: 7
Joined: Mon Aug 29, 2016 1:13 pm

Re: No 32 bit output with on-board Intel HDA

Postby Anton2 » Tue Aug 30, 2016 1:08 am

Well, I've managed to play 32 bit files with "ossplay -R" and deadbeef. I connect my headphones to green jack as recommended in motherboard's manual. This jack has 6 modes in ossxmix: front, rear, center/LFE, side, pcm4, input. "Front" mode corresponds to device "/dev/oss/oss_hdaudio0/spdout0". So I changed the jack's mode from "front" to "pcm4" and that made it possible to play 32 bit files. But the end result turned out to be mostly disappointing to me. The sound is crisp clear but it lacks low frequency bass component, only mid and high frequencies are reproduced. The sound picture is pretty shallow compared to the "front" mode of the jack (device "/dev/oss/oss_hdaudio0/spdout0").

igorzwx
24 bit files are played with white noise when using "front" mode of the jack (device "/dev/oss/oss_hdaudio0/spdout0") and ossplay tries to open device in 32 bit mode

Code: Select all

ossplay -R -vvvv output_192kHz_24bit.wav

FORM len = 639160364
output_192kHz_24bit.wav: Reading chunk fmt , size 16, pos 12, next 36
FMT chunk: len = 16, fmt = 0x1
output_192kHz_24bit.wav: Reading chunk data, size 639160320, pos 36, next 639160364
DATA chunk. Offs = 44, len = 639160320
Playing WAVE file output_192kHz_24bit.wav, 24 bits/stereo/192000 Hz
Setup device S32_LE/2/192000
Time: 00:17.80 of 09:14.83 VU ----- 

igorzwx
Known Member
Posts: 1258
Joined: Sun Jun 28, 2009 9:31 pm

Re: No 32 bit output with on-board Intel HDA

Postby igorzwx » Tue Aug 30, 2016 1:47 am

It seems that your codec was misidentified as ALC888. That is why you have sound distortions.

If a codec is misidentified by OSS4, you may have all sorts of strange phenomena.
_http://ossnext.trueinstruments.com/forum/viewtopic.php?t=3553

Perhaps, ALSA may tell something else about your codec.

What is written in the "motherboard manual" about your HDA codec?

If it is really ALC888, then your "ossmix" is misconfigured.

Post here your "ossmix"

Code: Select all

$ ossmix

Anton2
New Member
Posts: 7
Joined: Mon Aug 29, 2016 1:13 pm

Re: No 32 bit output with on-board Intel HDA

Postby Anton2 » Tue Aug 30, 2016 10:53 am

igorzwx
Once again thanks for the help and provided link. Yes it seems to be similar case. Alsa identifies my codec as ALC1200. So there's nothing to do about it. Nevertheless I will stay with oss as the quality of sound it produces is much more superior to alsa even in such buggy situation.

And "ossmix" output just in case.

Code: Select all

Selected mixer 0/High Definition Audio ALC888
Known controls are:
jack.green.mode <front|rear|center/LFE|side|pcm4|input> (currently front)
jack.green [<leftvol>:<rightvol>] (currently 19.9:19.9 dB)
jack.green.mute ON|OFF (currently OFF)
jack.black.mode <front|rear|center/LFE|side|pcm4|input> (currently front)
jack.black [<leftvol>:<rightvol>] (currently 19.9:19.9 dB)
jack.black.mute ON|OFF (currently OFF)
jack.orange.mode <front|rear|center/LFE|side|pcm4|input> (currently rear)
jack.orange [<leftvol>:<rightvol>] (currently 29.9:29.9 dB)
jack.orange.mute ON|OFF (currently OFF)
jack.gray.mode <front|rear|center/LFE|side|pcm4|input> (currently side)
jack.gray [<leftvol>:<rightvol>] (currently 19.9:19.9 dB)
jack.gray.mute ON|OFF (currently OFF)
jack.pink.mode <front|rear|center/LFE|side|pcm4|input> (currently front)
jack.pink [<leftvol>:<rightvol>] (currently 29.9:29.9 dB)
jack.pink.mute ON|OFF (currently OFF)
jack.fp-pink.mode <front|rear|center/LFE|side|pcm4|input> (currently front)
jack.fp-pink [<leftvol>:<rightvol>] (currently 19.9:19.9 dB)
jack.fp-pink.mute ON|OFF (currently OFF)
jack.blue.mode <front|rear|center/LFE|side|pcm4|input> (currently rear)
jack.blue [<leftvol>:<rightvol>] (currently 19.9:19.9 dB)
jack.blue.mute ON|OFF (currently OFF)
jack.fp-green.mode <front|rear|center/LFE|side|pcm4|input> (currently front)
jack.fp-green [<leftvol>:<rightvol>] (currently 29.9:29.9 dB)
jack.fp-green.mute ON|OFF (currently OFF)
record.mix.mute.mic1 ON|OFF (currently OFF)
record.mix.mute.fp-mic1 ON|OFF (currently OFF)
record.mix.mute.linein1 ON|OFF (currently OFF)
record.mix.mute.fp-headphone1 ON|OFF (currently OFF)
record.mix.mute.green1 ON|OFF (currently OFF)
record.mix.mute.black1 ON|OFF (currently OFF)
record.mix.mute.orange1 ON|OFF (currently OFF)
record.mix.mute.gray1 ON|OFF (currently OFF)
record.mix.mute.input-mix1 ON|OFF (currently OFF)
record.mix1 [<leftvol>:<rightvol>] (currently 38.9:38.9 dB)
record.mix.mute.mic2 ON|OFF (currently OFF)
record.mix.mute.fp-mic2 ON|OFF (currently OFF)
record.mix.mute.linein2 ON|OFF (currently OFF)
record.mix.mute.fp-headphone2 ON|OFF (currently OFF)
record.mix.mute.green2 ON|OFF (currently OFF)
record.mix.mute.black2 ON|OFF (currently OFF)
record.mix.mute.orange2 ON|OFF (currently OFF)
record.mix.mute.gray2 ON|OFF (currently OFF)
record.mix.mute.input-mix2 ON|OFF (currently OFF)
record.mix2 [<leftvol>:<rightvol>] (currently 38.9:38.9 dB)
misc.mic [<leftvol>:<rightvol>] (currently 0.0:0.0 dB)
misc.fp-mic [<leftvol>:<rightvol>] (currently 0.0:0.0 dB)
misc.linein [<leftvol>:<rightvol>] (currently 0.0:0.0 dB)
misc.fp-headphone [<leftvol>:<rightvol>] (currently 0.0:0.0 dB)
misc.green [<leftvol>:<rightvol>] (currently 0.0:0.0 dB)
misc.black [<leftvol>:<rightvol>] (currently 0.0:0.0 dB)
misc.orange [<leftvol>:<rightvol>] (currently 0.0:0.0 dB)
misc.gray [<leftvol>:<rightvol>] (currently 0.0:0.0 dB)
misc.input-mix <mic|fp-mic|linein> (currently linein)
misc.front-mute ON|OFF (currently OFF)
misc.input-mix-mute1 ON|OFF (currently OFF)
misc.front1 [<leftvol>:<rightvol>] (currently 22.4:22.4 dB)
misc.front2 <front|input-mix> (currently front)
misc.rear-mute ON|OFF (currently OFF)
misc.input-mix-mute2 ON|OFF (currently OFF)
misc.rear1 [<leftvol>:<rightvol>] (currently 17.9:17.9 dB)
misc.rear2 <rear|input-mix> (currently rear)
misc.center/lfe-mute ON|OFF (currently OFF)
misc.input-mix-mute3 ON|OFF (currently OFF)
misc.center/lfe1 [<leftvol>:<rightvol>] (currently 17.9:17.9 dB)
misc.center/lfe2 <center/LFE|input-mix> (currently center/LFE)
misc.side-mute ON|OFF (currently OFF)
misc.input-mix-mute4 ON|OFF (currently OFF)
misc.side1 [<leftvol>:<rightvol>] (currently 0.0:0.0 dB)
misc.side2 <side|input-mix> (currently side)
misc.pcm4-mute ON|OFF (currently OFF)
misc.input-mix-mute5 ON|OFF (currently OFF)
misc.pcm41 [<leftvol>:<rightvol>] (currently 23.9:23.9 dB)
misc.pcm42 <pcm4|input-mix> (currently pcm4)

igorzwx
Known Member
Posts: 1258
Joined: Sun Jun 28, 2009 9:31 pm

Re: No 32 bit output with on-board Intel HDA

Postby igorzwx » Tue Aug 30, 2016 2:32 pm

Anton2 wrote:Yes it seems to be similar case. Alsa identifies my codec as ALC1200. So there's nothing to do about it. Nevertheless I will stay with oss as the quality of sound it produces is much more superior to alsa even in such buggy situation.


In this case, you may try all sorts of configurations, to see which is better for you.
In "such buggy situation", everything might be possible.
Perhaps, some strange "irrational" configurations may work.
You have a chance to unleash your creativity.

You may also try to switch back to the default "default device" /dev/oss/oss_hdaudio0/pcm0
and investigate different configurations more carefully.

Your front mic jack (red) is now configured for "front" (audio output):

Code: Select all

jack.pink.mode <front|rear|center/LFE|side|pcm4|input> (currently front)
jack.pink [<leftvol>:<rightvol>] (currently 29.9:29.9 dB)
jack.pink.mute ON|OFF (currently OFF)
jack.fp-pink.mode <front|rear|center/LFE|side|pcm4|input> (currently front)
jack.fp-pink [<leftvol>:<rightvol>] (currently 19.9:19.9 dB)
jack.fp-pink.mute ON|OFF (currently OFF)


This means that your "front mic jack" (red) should now work as "audio output".
Try to plug your headphones into the front mic jack. It should work.
HDA codecs permit such usage.
You can configure your jacks for all sorts of input/output, regardless of their "colour".

Since your codec is misidentified, your jacks can also "misbehave".
It makes sense to try them all.

this might be changed:

Code: Select all

misc.input-mix <mic|fp-mic|linein> (currently linein)


You green front jack may depend on these settings:

Code: Select all

jack.green.mode <front|rear|center/LFE|side|pcm4|input> (currently front)
jack.green [<leftvol>:<rightvol>] (currently 19.9:19.9 dB)
jack.green.mute ON|OFF (currently OFF)
jack.fp-green.mode <front|rear|center/LFE|side|pcm4|input> (currently front)
jack.fp-green [<leftvol>:<rightvol>] (currently 29.9:29.9 dB)
jack.fp-green.mute ON|OFF (currently OFF)


You can experiment with them as well.

The logic of "ossinfo" and the meaning of "jacks" is explained here:

Code: Select all

$ man oss_hdaudio


Since your codec is misidentified, you may try all "illogical" configurations, as well as all sound devices.
You can find them with "find", for example:

Code: Select all

$ find /dev/oss -type c
/dev/oss/oss_hdaudio0/pcmin1
/dev/oss/oss_hdaudio0/pcmin0
/dev/oss/oss_hdaudio0/spdout1
/dev/oss/oss_hdaudio0/spdout0
/dev/oss/oss_hdaudio0/pcm4
/dev/oss/oss_hdaudio0/pcm3
/dev/oss/oss_hdaudio0/pcm2
/dev/oss/oss_hdaudio0/pcm1
/dev/oss/oss_hdaudio0/pcm0
/dev/oss/oss_hdaudio0/mix0


You may also find some useful commands here:
_http://ossnext.trueinstruments.com/forum/viewtopic.php?f=3&t=5828

Anton2
New Member
Posts: 7
Joined: Mon Aug 29, 2016 1:13 pm

Re: No 32 bit output with on-board Intel HDA

Postby Anton2 » Fri Sep 02, 2016 4:02 pm

After some experimentation with jacks I've succeeded to find the ones that allow to reproduce 32 bit sound and it turned out to be the front panel jacks (both pink and green) in "pcm4" mode. The only drawback is lower maximum level of loudness (~20% lower compared to "front" mode that corresponds to "spdout0" output device).

I do not have working "pcm0" device. The sound is reproduced through "pcm0" by "osstest" when any jack is set to "front" mode ("spdout0" output device) but only through left channel the test sound is played clearly, the right channel is distorted. In other modes no sound is reproduced via "pcm0" device.

Meanwhile current settings solved that issue with mpv player, now there is no need to set option "--audio-format=s16" to get clear sound playback.

Once again thank you igorzwx for helping with my issue and also for extensive and valuable information you provide here on forum.

igorzwx
Known Member
Posts: 1258
Joined: Sun Jun 28, 2009 9:31 pm

Re: No 32 bit output with on-board Intel HDA

Postby igorzwx » Fri Sep 02, 2016 4:53 pm

Anton2 wrote: 3) /usr/lib/oss/conf/osscore.conf

Code: Select all

cooked_enable=0
vmix_disabled=1
vmix_no_autoattach=1


If the COOKEDMODE is disabled in osscore.conf, it does not mean that it is really disabled.
It can be enabled by an audio application, and your HiRes audio might be converted to a "digital crap" with a buggy resampler. Notice that all OSS4 resamplers (including "production quality") are buggy in the sense that they produce sound distortions at downsampling (it might be even annoying noise with some audio files).

Code: Select all

$ cat /usr/lib/oss/conf/osscore.conf | grep -A5 format
# By default OSS will let applications to use sampling rates and formats
# that are not supported by the hardware. Instead OSS performs the necessary
# format conversions in software. Applications that don't tolerate this kind
# of conversions usually disable them by using features of the OSS API
# (SNDCTL_DSP_COOKEDMODE). If this option is set to 0 then the format
# conversions will be disabled for all applications and devices unless the
# application explicitly enables them. This option should not be changed
# without wery strong reason.
#
#cooked_enable=1


If you are going to use "mpv player", it makes sense to study its source code. Such players can enable COOKEDMODE to improve "user experience" _https://en.wikipedia.org/wiki/User_experience

Perhaps, you may better use ossplay, Audacious, Petrov's pcm_play, or Petrov's DeadBeef plugin, which can explicitly disable both VMIX and COOKEDMODE. Notice, however, Audacious has an internal format converter, which cannot be disabled.

Anton2
New Member
Posts: 7
Joined: Mon Aug 29, 2016 1:13 pm

Re: No 32 bit output with on-board Intel HDA

Postby Anton2 » Fri Sep 02, 2016 8:36 pm

For HiRes audio I use only deadbeef + Petrov's plugin with exclusive mode. I use mpv player only for video and mentioned bug was present during playing videos that have audio tracks for example in aac format. Now the bug is gone.

igorzwx
Known Member
Posts: 1258
Joined: Sun Jun 28, 2009 9:31 pm

Re: No 32 bit output with on-board Intel HDA

Postby igorzwx » Sat Sep 03, 2016 2:15 am

Anton2 wrote:After some experimentation with jacks I've succeeded to find the ones that allow to reproduce 32 bit sound and it turned out to be the front panel jacks (both pink and green) in "pcm4" mode. The only drawback is lower maximum level of loudness (~20% lower compared to "front" mode that corresponds to "spdout0" output device).

I do not have working "pcm0" device. The sound is reproduced through "pcm0" by "osstest" when any jack is set to "front" mode ("spdout0" output device) but only through left channel the test sound is played clearly, the right channel is distorted. In other modes no sound is reproduced via "pcm0" device


"front" is "/dev/oss/oss_hdaudio0/pcm0" (device index 0)
"pcm4" is "/dev/oss/oss_hdaudio0/pcm4" (device index 4)

This may mean that your device "/dev/oss/oss_hdaudio0/pcm4" may work.

Configure your green jack for "pcm4", and try to play waves to "/dev/oss/oss_hdaudio0/pcm4" device

Code: Select all

$ ossplay -R -vvvv -d4 output_192kHz_16bit.wav
$ ossplay -R -vvvv -d4 output_192kHz_32bit.wav


"-d4" = "-d/dev/dsp4" = "-d/dev/oss/oss_hdaudio0/pcm4"

According to your "ossinfo -v9":

Code: Select all

HD Audio play front               /dev/oss/oss_hdaudio0/pcm0  (device index 0)
HD Audio play rear                /dev/oss/oss_hdaudio0/pcm1  (device index 1)
HD Audio play center/LFE          /dev/oss/oss_hdaudio0/pcm2  (device index 2)
HD Audio play side                /dev/oss/oss_hdaudio0/pcm3  (device index 3)
HD Audio play pcm4                /dev/oss/oss_hdaudio0/pcm4  (device index 4)
HD Audio play spdif-out           /dev/oss/oss_hdaudio0/spdout0  (device index 5)


You may also test other devices.

Anton2 wrote:The only drawback is lower maximum level of loudness (~20% lower compared to "front" mode that corresponds to "spdout0" output device).


You should increase loudness for pcm4 device in your "ossmix".
It should be here:

Code: Select all

misc.pcm4-mute ON|OFF (currently OFF)
misc.input-mix-mute5 ON|OFF (currently OFF)
misc.pcm41 [<leftvol>:<rightvol>] (currently 23.9:23.9 dB)
misc.pcm42 <pcm4|input-mix> (currently pcm4)


"misc.input-mix-mute4", "misc.input-mix-mute5", and the like should be set to "ON". They should be muted. Otherwise, you may get noise.

Code: Select all

misc.input-mix-mute1
misc.input-mix-mute2
misc.input-mix-mute3
misc.input-mix-mute4
misc.input-mix-mute5


These also should be muted (set them to "ON"):

Code: Select all

record.mix.mute.input-mix1 ON|OFF (currently OFF)
record.mix.mute.input-mix2 ON|OFF (currently OFF)


My "ossmix" settings for pcm4 device:

Code: Select all

codec3.misc.pcm41 [<leftvol>:<rightvol>] (currently 59.9:59.9 dB)
codec3.misc.pcm4-mute ON|OFF (currently OFF)
codec3.misc.input-mix-mute4 ON|OFF (currently ON)
codec3.misc.pcm42 <pcm4|input-mix> (currently pcm4)


There is some DISINFORMATION in Arch Linux Wiki:

Microphone playing through output channels
By default, OSS plays back the microphone through the speakers. To disable this in ossxmix find the Misc section and uncheck [check !!!] every input-mix-mute box.
_https://wiki.archlinux.org/index.php/Open_Sound_System#Microphone_playing_through_output_channels


You should do the opposite (check, not uncheck).
"checked" means "ON", that is, muted (disabled)
"unchecked" means "OFF", that is, unmuted (enabled)
Because the name of the switch is "input-mix-mute".

Such switches, might be found not only in the Misc section.
My noise making switch:

Code: Select all

codec3.jack.green.input-mix-mut ON|OFF (currently ON)


If set to "OFF" (that is, "unchecked"), it can produce "noise" and play microphone through output channels.


Return to “Linux”

Who is online

Users browsing this forum: No registered users and 2 guests