Discussion:
[Alsa-user] cannot set the volume anymore after I've successfully installed alsaequal
Maurizio Dall'Acqua
2017-03-03 09:35:22 UTC
Permalink
Hello,

I cannot set the volume anymore after I've successfully installed alsaequal.

I use Linux Mint 18.1 and NVidia card (hw:1,7) with default PulseAudio.
I've disabled PulseAudio to use Alsa like so:

$ sudo nano /etc/pulse/client.conf

(...)
autospawn = no
(...)

I then installed alsaequal and created ~/.asoundrc like so:


defaults.pcm.!card 1
defaults.pcm.!device 7
defaults.ctl.card 1

ctl.equal {
type equal;
}
pcm.plugequal {
type equal;
# Modify the line below if you don't
# want to use sound card 0.
slave.pcm "plug:dmix";
# slave.pcm "plughw:1,7";
}
#pcm.equal {
# Or if you want the equalizer to be your
# default soundcard uncomment the following
# line and comment the above line.
pcm.!default {
type plug;
slave.pcm plugequal;
}

The result is that I can use the equalizer with the command

alsamixer -D equal

and it works, but the volume in alsamixer doesn't work and I have no means
to control the volume level, which remains always at 100%. Can somebody
tell me what I have to do to adjust the volume?

Regards,
Maurizio
Clemens Ladisch
2017-03-03 09:52:25 UTC
Permalink
Post by Maurizio Dall'Acqua
I cannot set the volume anymore after I've successfully installed alsaequal.
[...]
The result is that I can use the equalizer with the command
alsamixer -D equal
and it works, but the volume in alsamixer doesn't work
Doesn't the original "alsamixer" command still work?


Regards,
Clemens
Clemens Ladisch
2017-03-03 12:25:26 UTC
Permalink
When I use "alsamixer" it appears the volume meter in the shell but if I
raise or lower the volume, the audio settings do not change accordingly.
Instead the volume remains loud and, I suppose, 100%.
Is it possible that the "equal" device goes through a different device?
Please show the output of "amixer -c 1 contents".


Regards,
Clemens
Maurizio Dall'Acqua
2017-03-03 18:56:44 UTC
Permalink
Post by Clemens Ladisch
Is it possible that the "equal" device goes through a different device?
Maybe it's true, but I can't determine. In any case here is the output for
"amixer -c 1 contents":

numid=1,iface=CARD,name='HDMI/DP,pcm=3 Jack'
; type=BOOLEAN,access=r-------,values=1
: values=off
numid=7,iface=CARD,name='HDMI/DP,pcm=7 Jack'
; type=BOOLEAN,access=r-------,values=1
: values=on
numid=13,iface=CARD,name='HDMI/DP,pcm=8 Jack'
; type=BOOLEAN,access=r-------,values=1
: values=off
numid=22,iface=MIXER,name='PCM Playback Volume'
; type=INTEGER,access=rw---RW-,values=2,min=0,max=255,step=0
: values=255,255
| dBscale-min=-51.00dB,step=0.20dB,mute=0
numid=2,iface=MIXER,name='IEC958 Playback Con Mask'
; type=IEC958,access=r-------,values=1
: values=[AES0=0x0f AES1=0xff AES2=0x00 AES3=0x00]
numid=8,iface=MIXER,name='IEC958 Playback Con Mask',index=1
; type=IEC958,access=r-------,values=1
: values=[AES0=0x0f AES1=0xff AES2=0x00 AES3=0x00]
numid=14,iface=MIXER,name='IEC958 Playback Con Mask',index=2
; type=IEC958,access=r-------,values=1
: values=[AES0=0x0f AES1=0xff AES2=0x00 AES3=0x00]
numid=3,iface=MIXER,name='IEC958 Playback Pro Mask'
; type=IEC958,access=r-------,values=1
: values=[AES0=0x0f AES1=0x00 AES2=0x00 AES3=0x00]
numid=9,iface=MIXER,name='IEC958 Playback Pro Mask',index=1
; type=IEC958,access=r-------,values=1
: values=[AES0=0x0f AES1=0x00 AES2=0x00 AES3=0x00]
numid=15,iface=MIXER,name='IEC958 Playback Pro Mask',index=2
; type=IEC958,access=r-------,values=1
: values=[AES0=0x0f AES1=0x00 AES2=0x00 AES3=0x00]
numid=4,iface=MIXER,name='IEC958 Playback Default'
; type=IEC958,access=rw------,values=1
: values=[AES0=0x04 AES1=0x00 AES2=0x00 AES3=0x00]
numid=10,iface=MIXER,name='IEC958 Playback Default',index=1
; type=IEC958,access=rw------,values=1
: values=[AES0=0x04 AES1=0x00 AES2=0x00 AES3=0x00]
numid=16,iface=MIXER,name='IEC958 Playback Default',index=2
; type=IEC958,access=rw------,values=1
: values=[AES0=0x04 AES1=0x00 AES2=0x00 AES3=0x00]
numid=5,iface=MIXER,name='IEC958 Playback Switch'
; type=BOOLEAN,access=rw------,values=1
: values=on
numid=11,iface=MIXER,name='IEC958 Playback Switch',index=1
; type=BOOLEAN,access=rw------,values=1
: values=on
numid=17,iface=MIXER,name='IEC958 Playback Switch',index=2
; type=BOOLEAN,access=rw------,values=1
: values=on
numid=23,iface=MIXER,name='hdmi_volume'
; type=INTEGER,access=rw---RW-,values=2,min=0,max=255,step=0
: values=255,255
| dBscale-min=-51.00dB,step=0.20dB,mute=0
numid=6,iface=PCM,name='ELD',device=3
; type=BYTES,access=r--v----,values=0
: values=
numid=19,iface=PCM,name='Playback Channel Map',device=3
; type=INTEGER,access=rw---R--,values=8,min=0,max=36,step=0
: values=0,0,0,0,0,0,0,0
| container
| chmap-fixed=FL,FR

numid=12,iface=PCM,name='ELD',device=7
; type=BYTES,access=r--v----,values=95
:
values=0x10,0x00,0x09,0x00,0x6d,0x20,0x00,0x01,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x0c,0x00,0x00,0x50,0x48,0x49,0x4c,0x49,0x50,0x53,0x20,0x46,0x54,0x56,0x0a,0x20,0x09,0x07,0x03,0x15,0x07,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
numid=20,iface=PCM,name='Playback Channel Map',device=7
; type=INTEGER,access=rw---R--,values=8,min=0,max=36,step=0
: values=0,0,0,0,0,0,0,0
| container
| chmap-fixed=FL,FR

numid=18,iface=PCM,name='ELD',device=8
; type=BYTES,access=r--v----,values=0
: values=
numid=21,iface=PCM,name='Playback Channel Map',device=8
; type=INTEGER,access=rw---R--,values=8,min=0,max=36,step=0
: values=0,0,0,0,0,0,0,0
| container
| chmap-fixed=FL,FR


I hope this may help.

Maurizio
Post by Clemens Ladisch
When I use "alsamixer" it appears the volume meter in the shell but if I
raise or lower the volume, the audio settings do not change accordingly.
Instead the volume remains loud and, I suppose, 100%.
Is it possible that the "equal" device goes through a different device?
Please show the output of "amixer -c 1 contents".
Regards,
Clemens
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Alsa-user mailing list
https://lists.sourceforge.net/lists/listinfo/alsa-user
Clemens Ladisch
2017-03-03 19:26:31 UTC
Permalink
Post by Maurizio Dall'Acqua
numid=22,iface=MIXER,name='PCM Playback Volume'
numid=23,iface=MIXER,name='hdmi_volume'
These look suspicious. Did you at any time try the softvol plugin?


Regards,
Clemens
Maurizio Dall'Acqua
2017-03-03 20:01:29 UTC
Permalink
Post by Clemens Ladisch
These look suspicious. Did you at any time try the softvol plugin?
No, I haven't tried softvol plugin.

Maurizio
Post by Clemens Ladisch
Post by Maurizio Dall'Acqua
numid=22,iface=MIXER,name='PCM Playback Volume'
numid=23,iface=MIXER,name='hdmi_volume'
These look suspicious. Did you at any time try the softvol plugin?
Regards,
Clemens
Clemens Ladisch
2017-03-06 08:56:49 UTC
Permalink
Post by Maurizio Dall'Acqua
Post by Clemens Ladisch
Post by Maurizio Dall'Acqua
numid=22,iface=MIXER,name='PCM Playback Volume'
numid=23,iface=MIXER,name='hdmi_volume'
These look suspicious. Did you at any time try the softvol plugin?
No, I haven't tried softvol plugin.
Then I guess the default configuration for your card already uses the
softvol plugin. This means that to keep the softvol functionality, you
have to refer to the "default" device (which is not possible if you're
redefining it), or insert it yourself:

pcm.plugequal {
type equal
slave.pcm {
type softvol
slave.pcm "plug:dmix"
control {
name "PCM Playback Volume"
card 1 # must be same card number
}
}
}


Regards,
Clemens
Maurizio Dall'Acqua
2017-03-06 17:27:47 UTC
Permalink
Post by Clemens Ladisch
Post by Maurizio Dall'Acqua
Post by Clemens Ladisch
Post by Maurizio Dall'Acqua
numid=22,iface=MIXER,name='PCM Playback Volume'
numid=23,iface=MIXER,name='hdmi_volume'
These look suspicious. Did you at any time try the softvol plugin?
No, I haven't tried softvol plugin.
Then I guess the default configuration for your card already uses the
softvol plugin. This means that to keep the softvol functionality, you
have to refer to the "default" device (which is not possible if you're
pcm.plugequal {
type equal
slave.pcm {
type softvol
slave.pcm "plug:dmix"
control {
name "PCM Playback Volume"
card 1 # must be same card number
}
}
}
Regards,
Clemens
First of all, thanks for your reply.
I have applied the suggestions given, but I have a partially working
volume control. That is to say, that the volume control works but without
equalizer control. My asoundrc now looks like this:

defaults.pcm.!card 1
defaults.pcm.!device 7
defaults.ctl.!card 1

ctl.equal {
type equal;
}
pcm.plugequal {
type equal;
slave.pcm {
type softvol
slave.pcm "plug:dmix"
control.name "PCM Playback Volume"
control.card 1
}
}
pcm.equal {
type plug;
slave.pcm plugequal;
}

With this configuration I can control the volume of my PC but without the
possibility of changing settings of the equalizer. It seems that I can
have either volume control or equalizer control. But I would like both of
them, of course. Any idea?
Thanks in advance.

Maurizio
Clemens Ladisch
2017-03-07 08:58:10 UTC
Permalink
Post by Maurizio Dall'Acqua
defaults.ctl.!card 1
ctl.equal {
type equal;
}
pcm.plugequal {
type equal;
slave.pcm {
type softvol
slave.pcm "plug:dmix"
control.name "PCM Playback Volume"
control.card 1
}
}
With this configuration I can control the volume of my PC but without the
possibility of changing settings of the equalizer. It seems that I can
have either volume control or equalizer control.
The equalizer can be controlled with the control device that you have
defined with "type equal", in this, case "equal":

alsamixer -D equal

The volume can be controlled with the control device belonging to the
sound card that you specified with "control.card":

alsamixer -D hw:1 # this is the default anyway

For technical reasons, the softvol control can be attached only to
an actual hardware device, and the equalizer controls do not belong to
any hardware device, so you cannot have both at the same time. Your
only choice is to run two instances of alsamixer in parallel.


Regards,
Clemens
Maurizio Dall'Acqua
2017-03-07 19:39:42 UTC
Permalink
Post by Clemens Ladisch
Post by Maurizio Dall'Acqua
defaults.ctl.!card 1
ctl.equal {
type equal;
}
pcm.plugequal {
type equal;
slave.pcm {
type softvol
slave.pcm "plug:dmix"
control.name "PCM Playback Volume"
control.card 1
}
}
With this configuration I can control the volume of my PC but without the
possibility of changing settings of the equalizer. It seems that I can
have either volume control or equalizer control.
The equalizer can be controlled with the control device that you have
alsamixer -D equal
The volume can be controlled with the control device belonging to the
alsamixer -D hw:1 # this is the default anyway
For technical reasons, the softvol control can be attached only to
an actual hardware device, and the equalizer controls do not belong to
any hardware device, so you cannot have both at the same time. Your
only choice is to run two instances of alsamixer in parallel.
Regards,
Clemens
Thanks for your help so far.
I understand that I have to have two instances of alsamixer in parallel.
But the new problem is that with the .asoundrc file I have previously
submitted, when I do:

alsamixer -D equal

I do have a CLI interface with which I can change the settings of the
equalizer, but the new settings do not actually influence the sound played
anymore. On the other hand, I have now a volume control that works.
I think that there's still something wrong in my .asoundrc file :-(

Maurizio
Clemens Ladisch
2017-03-08 08:09:59 UTC
Permalink
Post by Maurizio Dall'Acqua
alsamixer -D equal
I do have a CLI interface with which I can change the settings of the
equalizer, but the new settings do not actually influence the sound played
anymore.
As far as I can see, the only difference is the softvol plugin, and that
should not make any difference for the equal plugin.

Anyway, try reversing the order of the two plugins:

pcm.plugequal {
type softvol
slave.pcm {
type equal
slave.pcm "plug:dmix"
}
control.name "PCM Playback Volume"
control.card 1
}


Regards,
Clemens

Loading...