mixer(1) not working with OSSv4 mixer devices ?

OSS specific BSD discussion (FreeBSD/NetBSD/OpenBSD)

Moderators: cesium, dev, kodachi, hannu

mixer(1) not working with OSSv4 mixer devices ?

Postby abbe » Fri Jan 15, 2010 9:26 pm

Hi

I'm running on FreeBSD 8.0-RELEASE (amd64).

Code: Select all
% uname -a
FreeBSD chateau.d.if 8.0-RELEASE FreeBSD 8.0-RELEASE #1: Fri Nov 27 11:09:44 IST 2009     root@chateau.d.if:/usr/obj/usr/src/sys/CHATEAU  amd64


I've two sound cards in my box, Intel HDA, and YMF740C.

Code: Select all
oss_hdaudio0@pci0:0:27:0:       class=0x040300 card=0xd7018086 chip=0x284b8086 rev=0x02 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Intel audio controller embedded with the 82801H chipset ( ICH8 chipset ) (82801H)'
    class      = multimedia
    subclass   = HDA

oss_ymf7xx0@pci0:4:3:0: class=0x040100 card=0x000c1073 chip=0x000c1073 rev=0x03 hdr=0x00
    vendor     = 'Yamaha Corporation'
    device     = 'DS-1L PCI audio controller (YMF740C)'
    class      = multimedia
    subclass   = audio


I'm using OSSv4 from FreeBSD ports. The OSSv4 works great except for a small issue.

I'm able to use mixer(1) with mixer device of YMF740C, but not with mixer device of Intel HDA. I'm not sure if mixer(1) is supposed to work with OSSv4 mixer devices. Correct me if I'm wrong.

Also I'm running MusicPD to play music, and with following configuration, mpd is able to use mixer1, but not mixer0:

Code: Select all
music_directory         "/usr/local/var/mpd/music"
playlist_directory              "/usr/local/var/mpd/playlists"
db_file                 "/usr/local/var/mpd/database"
log_file                        "/usr/local/var/mpd/log"
error_file              "/usr/local/var/mpd/error-log"
pid_file                        "/usr/local/var/mpd/pid"
state_file                      "/usr/local/var/mpd/state"
user                            "mpd"
input {
        plugin "curl"
}
audio_output {
        type            "oss"
        name            "Intel HDA"
        device      "/dev/dsp5"
        format          "44100:16:2"    # optional
        mixer_device    "/dev/mixer0"   # optional
}
audio_output {
        type            "oss"
        name            "Yamaha PCI"
        device      "/dev/dsp8"
        format          "44100:16:2"    # optional
        mixer_device    "/dev/mixer1"   # optional
        mixer_control   "PCM"           # optional
}
mixer_type                      "oss"


Following errors are logged in logfile of MusicPD.

Code: Select all
Jan 15 23:56 : unable to read oss volume
Jan 15 23:56 : unable to set oss volume
Jan 16 00:56 : unable to read oss volume


oss{,x}mix and xfce4-mixer works great. But I'm wondering if I'm missing something, and it actually works.

Following is the output of 'ossinfo -v3', which someone requested on IRC and mentioned that it'll help in troubleshooting the issue.

Code: Select all
┌─(abbe@chateau:pts/12)───────────────────────────────────────────────────────────────────────(~)─┐
└─(23:42:%)── mixer -f /dev/mixer0                                                  ──(Fri,Jan15)─┘
┌─(abbe@chateau:pts/12)───────────────────────────────────────────────────────────────────────(~)─┐
└─(23:43:%)── mixer -f /dev/mixer1                                                  ──(Fri,Jan15)─┘
Mixer vol      is currently set to 100:100
Mixer pcm      is currently set to  10:10
Mixer speaker  is currently set to   0:0
Mixer line     is currently set to  32:32
Mixer mic      is currently set to   0:0
Mixer cd       is currently set to  75:75
Mixer igain    is currently set to  75:75
Mixer line1    is currently set to  32:32
Mixer phin     is currently set to   0:0
Mixer phout    is currently set to  75:75
Mixer video    is currently set to   0:0
Mixer monitor  is currently set to   0:0
Recording source: line
┌─(abbe@chateau:pts/12)───────────────────────────────────────────────────────────────────────(~)─┐
└─(23:43:%)── ls -l /dev/mixer*                                                     ──(Fri,Jan15)─┘
crw-rw-rw-  1 root  wheel    0, 172 Jan 15 12:21 /dev/mixer
lrwxr-xr-x  1 root  wheel        26 Jan 15 12:21 /dev/mixer0 -> /dev/oss/oss_hdaudio0/mix0
lrwxr-xr-x  1 root  wheel        25 Jan 15 12:21 /dev/mixer1 -> /dev/oss/oss_ymf7xx0/mix0
┌─(abbe@chateau:pts/12)───────────────────────────────────────────────────────────────────────(~)─┐
└─(23:43:%)── ossinfo -v3                                                           ──(Fri,Jan15)─┘
Version info: OSS 4.2 (b 2002/201001150648) (0x00040100) BSD
Platform: FreeBSD/amd64 8.0-RELEASE FreeBSD 8.0-RELEASE #1: Fri Nov 27 11:09:44 IST 2009     root@chateau.d.if:/usr/obj/usr/src/sys/CHATEAU (chateau.d.if)

Number of audio devices:        10
Number of audio engines:        24
Number of MIDI devices:         0
Number of mixer devices:        2


Device objects
0: oss_hdaudio0 Intel HD Audio interrupts=81614 (81614)
    HD Audio controller Intel HD Audio
    Vendor ID    0x8086284b
    Subvendor ID 0x8086d701
     Codec  0: ALC888 (0x10ec0888/0x8086d701)
1: oss_ymf7xx0 Yamaha YMF740C interrupts=7685633 (7685633)

MIDI devices (/dev/midi*)

Mixer devices
0: High Definition Audio ALC888 (Mixer 0 of device object 0)
    Device file /dev/oss/oss_hdaudio0/mix0, Legacy device /dev/mixer0
    Priority: 10
    Caps:
    Device handle: OSS-PCI-mx01
    Device priority: 10

1: Yamaha DS-XG (STAC9721) (Mixer 0 of device object 1)
    Device file /dev/oss/oss_ymf7xx0/mix0, Legacy device /dev/mixer1
    Priority: 2
    Caps:
    Device handle: OSS-PCI-mx01
    Device priority: 2


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: 8/HD Audio play front (vmix)
                     Available for use
      Engine      3: 9/HD Audio play front (vmix)
                     Available for use
      Engine      4: 10/HD Audio play front (vmix)
                     Available for use
      Engine      5: 11/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: OSS-PCI-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: OSS-PCI-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: OSS-PCI-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: OSS-PCI-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: OSS-PCI-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: OSS-PCI-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 rec mix                  /dev/oss/oss_hdaudio0/pcmin0  (device index 6)
    Legacy device /dev/dsp6
    Caps: DUPLEX TRIGGER MMAP
    Modes: IN/OUT
      In engine   1: 6/HD Audio rec mix
                     Available for use
      Engine      2: 8/HD Audio play front (vmix)
                     Available for use
      Engine      3: 9/HD Audio play front (vmix)
                     Available for use
      Engine      4: 10/HD Audio play front (vmix)
                     Available for use
      Engine      5: 11/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: OSS-PCI-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 - 96000 (44100,48000,96000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

HD Audio rec mix                  /dev/oss/oss_hdaudio0/pcmin1  (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: OSS-PCI-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

Yamaha YMF740C                    /dev/oss/oss_ymf7xx0/pcm0  (device index 8)
    Legacy device /dev/dsp8
    Caps: DUPLEX TRIGGER MMAP
    Modes: IN/OUT
      Engine      1: 12/Yamaha YMF740C
                     Available for use
      Engine      2: 13/Yamaha YMF740C (vmix)
                     Available for use
      Engine      3: 14/Yamaha YMF740C (vmix)
                     Available for use
      Engine      4: 15/Yamaha YMF740C (vmix)
                     Available for use
      Engine      5: 16/Yamaha YMF740C (vmix)
                     Available for use
    Input formats (0x00000418):
      AFMT_U8           - 8 bit unsigned
      AFMT_S16_LE       - 16 bit signed little endian
      AFMT_AC3          - AC3 (Dolby Digital) encoded audio
    Output formats (0x00000418):
      AFMT_U8           - 8 bit unsigned
      AFMT_S16_LE       - 16 bit signed little endian
      AFMT_AC3          - AC3 (Dolby Digital) encoded audio
    Device handle: OSS-PCI-au01
    Related mixer dev: 1
    Sample rate source: 12
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 2 - 4
    Native sample rates (min - max): 5000 - 48000
    HW Type: Not indicated.
    Minimum latency: Not indicated

Yamaha YMF740C                    /dev/oss/oss_ymf7xx0/pcm1  (device index 9)
    Legacy device /dev/dsp9
    Caps: TRIGGER MMAP
    Modes: OUTPUT
      Out engine  1: 17/Yamaha YMF740C
                     Available for use
      Out engine  2: 18/Yamaha YMF740C
                     Available for use
      Out engine  3: 19/Yamaha YMF740C
                     Available for use
      Out engine  4: 20/Yamaha YMF740C
                     Available for use
      Out engine  5: 21/Yamaha YMF740C
                     Available for use
      Out engine  6: 22/Yamaha YMF740C
                     Available for use
      Out engine  7: 23/Yamaha YMF740C
                     Available for use
    Input formats (0x00000418):
      AFMT_U8           - 8 bit unsigned
      AFMT_S16_LE       - 16 bit signed little endian
      AFMT_AC3          - AC3 (Dolby Digital) encoded audio
    Output formats (0x00000418):
      AFMT_U8           - 8 bit unsigned
      AFMT_S16_LE       - 16 bit signed little endian
      AFMT_AC3          - AC3 (Dolby Digital) encoded audio
    Device handle: OSS-PCI-au02
    Related mixer dev: 1
    Sample rate source: 12
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 2 - 4
    Native sample rates (min - max): 5000 - 48000
    HW Type: Not indicated.
    Minimum latency: Not indicated


Nodes
  /dev/dsp -> /dev/oss/oss_hdaudio0/pcm0
  /dev/dsp_in -> /dev/oss/oss_hdaudio0/pcm0
  /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



Thanks in advance
Ashish SHUKLA

They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety.
-- Benjamin Franklin, Memoirs of the life and writings of Benjamin Franklin
abbe
New Member
 
Posts: 2
Joined: Fri Jan 15, 2010 8:41 pm

Re: mixer(1) not working with OSSv4 mixer devices ?

Postby cesium » Fri Jan 15, 2010 10:15 pm

OSSv4 uses a different mixer API than the OSSv3 API (used by mixer). Some OSSv4 drivers support the OSSv3 API (which would mean mixer(1) would work), but not all of them. You can use "ossmix" as a console mixer which support OSSv4 API.
cesium
Developer
 
Posts: 902
Joined: Sun Aug 12, 2007 12:51 am

Re: mixer(1) not working with OSSv4 mixer devices ?

Postby abbe » Mon Jan 18, 2010 5:09 pm

cesium wrote:OSSv4 uses a different mixer API than the OSSv3 API (used by mixer). Some OSSv4 drivers support the OSSv3 API (which would mean mixer(1) would work), but not all of them. You can use "ossmix" as a console mixer which support OSSv4 API.

Thanks for the reply. So, I guess the only way to get this working is to add OSSv4 support to it.
Ashish SHUKLA

They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety.
-- Benjamin Franklin, Memoirs of the life and writings of Benjamin Franklin
abbe
New Member
 
Posts: 2
Joined: Fri Jan 15, 2010 8:41 pm


Return to BSD

Who is online

Users browsing this forum: Bing [Bot], Google [Bot] and 1 guest