[pulseaudio-discuss] Channel-level volume control

Colin Guthrie gmane at colin.guthr.ie
Tue Jul 13 12:35:39 PDT 2010

'Twas brillig, and Alex Karpinski at 13/07/10 19:32 did gyre and gimble:
> On Jul 13, 2010, at 2:12 PM, Colin Guthrie wrote:
>> 'Twas brillig, and Alex Karpinski at 13/07/10 18:53 did gyre and
>> gimble:
>>> Long question short: Is it possible the volume for an individual
>>> channel on an individual sink-input?
>> Yes. Just use pavucontrol and make sure you press the button that
>> allows individual channel volume control.
> Thanks for the advice. I guess I should have added to the short
> version a little more. I need a way to incorporate this into a
> script. Seeing pavucontrol was what made me think pulse would work so
> well for this, I just figured that there was some other way of doing
> what it does, or at least a library, but I haven't been able to find
> a python library or command-line tool that won't simply lump both
> channels into one.

Yeah, the closest you can get is pactl:

pactl [options] set-sink-input-volume SINKINPUT VOLUME

But as you say this just lumps it into one volume, not per-channel volumes.

Not sure on the status of python volumes, but git master now has a dbus
based protocol, and while I've not looked at it, I'd imagine it supports
per-channel volume control. With this in mind, it *may* be possible to
write a script based on dbus-send that would work, but I have to stress
that I've not looked at this at all.

If you don't have any luck here, it shouldn't be too hard to adapt pactl
to accept a comma separated list of volumes instead and/or write your
own simple client app in C.

For a simpler approach, if you have amixer, perhaps you can use that to
set the independent volumes via alsa->pulse bridge that is likely in
place. This will only work for full sinks, rather than a sink input, but
perhaps you can use a redundant remap-sink for that purpose and only use
that sink for the streams you want to change? You may need to set the
PULSE_SINK variable. This is a pretty hick solution tho' :s



Colin Guthrie

Day Job:
  Tribalogic Limited [http://www.tribalogic.net/]
Open Source:
  Mandriva Linux Contributor [http://www.mandriva.com/]
  PulseAudio Hacker [http://www.pulseaudio.org/]
  Trac Hacker [http://trac.edgewall.org/]

More information about the pulseaudio-discuss mailing list