[alsa-devel] Speaker burnout

Nikolay Dimitrov picmaster at mail.bg
Tue Mar 31 13:23:53 CEST 2015


Hi David,

On 03/31/2015 01:43 PM, David Henningsson wrote:
>
>
> On 2015-03-31 12:06, Nikita N. wrote:
>>> If you have any concrete examples (alsa-info please!) of speakers
>>> that can be burned out, and you know a maximum speaker volume
>>> where this
>> As we said, that is not our bug, we are not audio experts, nor any
>> of us is interested in audio matters.
>
> Here's my suggestion how to move forward on this:
>
> 1) Gather consensus that limit the maximum volume on internal
> speakers is the right way forward. Takashi, Clemens, anyone against
> that strategy?
>
> 2) From the person with the hardware, we will need alsa-info (
> https://wiki.ubuntu.com/Audio/AlsaInfo ), and also the max volume
> where this does not happen. Is -6 dB good enough? -12 dB? I don't
> know - this is something someone with the hardware must tell us, it
> cannot simply be guessed.
>
> 3) I or someone else can write a kernel patch that limits the maximum
>  volume of the speakers to the amount deducted from point 2).
> Considering that we're actually dealing with hardware breakage, this
> should be sent to stable as well. Then no userspace application can
> set the volume higher than our limit.

Probably a kernel patch is not necessary. asound.conf ans asound.state
can do similar job. If the master volume is fixed to a safe value, the
audio can be routed through softvol plugin, which can be used as a
replacement for the master volume control (the exact levels need to be
confirmed with someone who has access to the problematic hardware).

state.Intel {
	control.1 {
		comment.access 'read'  // read-only
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 64'
		comment.dbmin -6400
		comment.dbmax 0
		iface MIXER
		name 'Speaker Playback Volume'
		value.0 42  // safe volume levels
		value.1 42  //
	}
}

Could be even better if the HW master volume control is hidden (I don't
know how to do this), and the softvol control is exposes as master volume:

pcm.!default {
     type            softvol
     slave.pcm       "default"
     control.name    "Master Volume"
     control.card    0
}

...something like this.

Kind regards,
Nikolay


More information about the Alsa-devel mailing list