[inspiron 9400] "Master" does not control LFE channel

Bug #899899 reported by Sandra Karuving
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
alsa-driver (Ubuntu)
Expired
Low
Unassigned

Bug Description

Hi. on our old Inspiron 9400 you can set Pulseaudio only to 100%volume or mute. other things are not there.
but there is a working workaround.
GoTo /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common
search for this:

[Element PCM]
switch = mute
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right

delete it and paste in this area:

[Element Master]
switch = mute
volume = ignore

[Element PCM]
switch = mute
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right

[Element LFE]
switch = mute
volume = ignore

After a reboot you have to enable LFE/PCM/Master again and set them to something like 60, via alsamixer and after that all works fine

___________________________________________________________________________________________________________________
#The full /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common file (with fix) is:

# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation; either version 2.1 of the
# License, or (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.

; Common part of all paths

; So here's generally how mixer paths are used by PA: PA goes through
; a mixer path file from top to bottom and checks if a mixer element
; described therein exists. If so it is added to the list of mixer
; elements PA will control, keeping the order it read them in. If a
; mixer element described here has set the required= or
; required-absent= directives a path might not be accepted as valid
; and is ignored in its entirety (see below). However usually if a
; element listed here is missing this one element is ignored but not
; the entire path.
;
; When a device shall be muted/unmuted *all* elements listed in a path
; file with "switch = mute" will be toggled.
;
; When a device shall change its volume, PA will got through the list
; of all elements with "volume = merge" and set the volume on the
; first element. If that element does not support dB volumes, this is
; where the story ends. If it does support dB volumes, PA divides the
; requested volume by the volume that was set on this element, and
; then go on to the next element with "volume = merge" and then set
; that there, and so on. That way the first volume element in the
; path will be the one that does the 'biggest' part of the overall
; volume adjustment, with the remaining elements usually being set to
; some value next to 0dB. This logic makes sure we get the full range
; over all volume sliders and a very high granularity of volumes
; already in hardware.
;
; All switches and enumerations set to "select" are exposed via the
; "port" functionality of sinks/sources. Basically every possible
; switch setting and every possible enumeration setting will be
; combined and made into a "port". So make sure you don't list too
; many switches/enums for exposing, because the number of ports might
; rise exponentially.
;
; Only one path can be selected at a time. All paths that are valid
; for an audio device will be exposed as "port" for the sink/source.

; [General]
; priority = ... # Priority for this path
; description = ...
;
; [Jack_InputDev]
; name = ... # Name of jack input device must contain this string
; code = Headphone | Microphone | LineOut | VideoOut # Type of switch events to listen to
; [Option ...:...] # For each option of an enumeration or switch element
; # that shall be exposed as a sink/source port. Needs to
; # be named after the Element, followed by a colon, followed
; # by the option name, resp. on/off if the element is a switch.
; name = ... # Logical name to use in the path identifier
; priority = ... # Priority if this is made into a device port
; required = ignore | enumeration | any # In this element, this option must exist or the path will be invalid. ("any" is an alias for "enumeration".)
; required-any = ignore | enumeration | any # In this element, either this or another option must exist (or an element)
; required-absent = ignore | enumeration | any # In this element, this option must not exist or the path will be invalid
;
; [Element ...] # For each element that we shall control
; required = ignore | switch | volume | enumeration | any # If set, require this element to be of this kind and available,
; # otherwise don't consider this path valid for the card
; required-any = ignore | switch | volume | enumeration | any # If set, at least one of the elements with required-any in this
; # path must be present, otherwise this path is invalid for the card
; required-absent = ignore | switch | volume # If set, require this element to not be of this kind and not
; # available, otherwise don't consider this path valid for the card
;
; switch = ignore | mute | off | on | select # What to do with this switch: ignore it, make it follow mute status,
; # always set it to off, always to on, or make it selectable as port.
; # If set to 'select' you need to define an Option section for on
; # and off
; volume = ignore | merge | off | zero | <volume step> # What to do with this volume: ignore it, merge it into the device
; # volume slider, always set it to the lowest value possible, or always
; # set it to 0 dB (for whatever that means), or always set it to
; # <volume step> (this only makes sense in path configurations where
; # the exact hardware and driver are known beforehand).
; volume-limit = <volume step> # Limit the maximum volume by disabling the volume steps above <volume step>.
; enumeration = ignore | select # What to do with this enumeration, ignore it or make it selectable
; # via device ports. If set to 'select' you need to define an Option section
; # for each of the items you want to expose
; direction = playback | capture # Is this relevant only for playback or capture? If not set this will implicitly be
; # set the direction of the PCM device is opened as. Generally this doesn't need to be set
; # unless you have a broken driver that has playback controls marked for capture or vice
; # versa
; direction-try-other = no | yes # If the element does not supported what is requested, try the other direction, too?
;
; override-map.1 = ... # Override the channel mask of the mixer control if the control only exposes a single channel
; override-map.2 = ... # Override the channel masks of the mixer control if the control only exposes two channels
; # Override maps should list for each element channel which high-level channels it controls via a
; # channel mask. A channel mask may either be the name of a single channel, or the words "all-left",
; # "all-right", "all-center", "all-front", "all-rear", and "all" to encode a specific subset of
; # channels in a mask

[Element Master]
switch = mute
volume = ignore

[Element PCM]
switch = mute
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right

[Element LFE]
switch = mute
volume = ignore

[Element External Amplifier]
switch = select

[Option External Amplifier:on]
name = output-amplifier-on
priority = 10

[Option External Amplifier:off]
name = output-amplifier-off
priority = 0

[Element Bass Boost]
switch = select

[Option Bass Boost:on]
name = output-bass-boost-on
priority = 0

[Option Bass Boost:off]
name = output-bass-boost-off
priority = 10

[Element IEC958 Optical Raw]
switch = off

;;; 'Analog Output'

[Element Analog Output]
enumeration = select

[Option Analog Output:Speakers]
name = output-speaker
priority = 10

[Option Analog Output:Headphones]
name = output-headphones
priority = 9

[Option Analog Output:FP Headphones]
name = output-headphones
priority = 8

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: pulseaudio 1:1.1-0ubuntu1 [modified: usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common]
ProcVersionSignature: Ubuntu 3.2.0-2.5-generic 3.2.0-rc3
Uname: Linux 3.2.0-2-generic x86_64
AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.24.
ApportVersion: 1.90-0ubuntu1
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: fabi 1550 F.... pulseaudio
 /dev/snd/controlC1: fabi 1550 F.... pulseaudio
Card0.Amixer.info:
 Card hw:0 'Intel'/'HDA Intel at 0xefffc000 irq 45'
   Mixer name : 'SigmaTel STAC9200'
   Components : 'HDA:83847690,102801cd,00102201 HDA:14f12bfa,14f100c3,00090000'
   Controls : 13
   Simple ctrls : 7
Card1.Amixer.info:
 Card hw:1 'U0x46d0x8b4'/'USB Device 0x46d:0x8b4 at usb-0000:00:1d.1-2, full speed'
   Mixer name : 'USB Mixer'
   Components : 'USB046d:08b4'
   Controls : 2
   Simple ctrls : 1
Card1.Amixer.values:
 Simple mixer control 'Mic',0
   Capabilities: cvolume cvolume-joined cswitch cswitch-joined penum
   Capture channels: Mono
   Limits: Capture 0 - 3
   Mono: Capture 3 [100%] [60.00dB] [off]
Date: Sun Dec 4 14:00:20 2011
InstallationMedia: Kubuntu 12.04 LTS "Precise Pangolin" - Alpha amd64 (20111108)
ProcEnviron:
 LANGUAGE=
 LANG=de_DE.UTF-8
 SHELL=/bin/bash
SourcePackage: pulseaudio
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 08/26/2009
dmi.bios.vendor: Dell Inc.
dmi.bios.version: A10
dmi.board.name: 0YD479
dmi.board.vendor: Dell Inc.
dmi.chassis.type: 8
dmi.chassis.vendor: Dell Inc.
dmi.modalias: dmi:bvnDellInc.:bvrA10:bd08/26/2009:svnDellInc.:pnMP061:pvr:rvnDellInc.:rn0YD479:rvr:cvnDellInc.:ct8:cvr:
dmi.product.name: MP061
dmi.sys.vendor: Dell Inc.

Revision history for this message
Sandra Karuving (lumks) wrote :
Revision history for this message
David Henningsson (diwic) wrote :

Hi Sandra and thanks for trying out the new version of Ubuntu!

I'm trying to understand whether this is a codec error or PulseAudio error, so could you clarify which ones (in alsamixer) of "PCM", "Master" and "LFE" that actually affects the various outputs (headphones, speakers)? Or are one/some of them irrelevant (the volume does not change when you move them)?

Changed in pulseaudio (Ubuntu):
status: New → Incomplete
Revision history for this message
Sandra Karuving (lumks) wrote :

If I try to change the volume in a pulsevolume changer (kmix or the ubuntu thing) the sounds jumps always to 100% in PCM. Master and LFE do not change.

The LFE output is on the hardware side the subwoofer
PCM is the real Master
Master is only the normal sound speaker

this is some sort of problem between alsa and pulseaudio but the two projects will not fix it upstream because alsa said its a pulseaudio problem and pulse, its an alsa one (if i can find the bugreports again i will add them)

Revision history for this message
David Henningsson (diwic) wrote :

Ok, thanks for the feedback. Seems like the driver should label the control "Front" or "Master Front" instead of "Master".

"PCM" is actually a software volume control, which could mean suboptimal quality at low levels, but maybe it's not noticable.

I think what would be slightly better would be the below, but I don't think we have a port that actually supports your use case right now.

[Element Master]
switch = mute
volume = merge
override-map.1 = all-no-lfe
override-map.2 = all-left,all-right

[Element LFE]
required = any
switch = mute
volume = merge
override-map.1 = lfe
override-map.2 = lfe,lfe

[Element PCM]
switch = mute
volume = merge

Changed in pulseaudio (Ubuntu):
status: Incomplete → Triaged
importance: Undecided → Low
summary: - Pulseaudio only to loud or mute on inspiron 9400
+ [inspiron 9400] "Master" does not control LFE channel
affects: pulseaudio (Ubuntu) → alsa-driver (Ubuntu)
Revision history for this message
Marcus Tomlinson (marcustomlinson) wrote :

This release of Ubuntu is no longer receiving maintenance updates. If this is still an issue on a maintained version of Ubuntu please let us know.

Changed in alsa-driver (Ubuntu):
status: Triaged → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for alsa-driver (Ubuntu) because there has been no activity for 60 days.]

Changed in alsa-driver (Ubuntu):
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.