19

I can change sound volumes with "gnome-volume-control ". But there are listed only playback-apps / -streams that are currently in use:

screenshot

In ~/.config/pulse/ I found *-stream-volumes.tdb and *-device-volumes.tdb that could be the configuration files but I am unable to read or edit these files.

1

3 Answers 3

17

Pulseaudio comes with a command line interface (man pulse-cli-syntax) to control many settings.

We can either load the command line parser pacmd or we call commands directly in a terminal or script:

pacmd set-sink-volume <index> <volume>
pacmd set-source-volume <index> <volume>

controls the volume of a given sink where <index> is the sink index (listed with pacmd list-sinks) and <volume> is any value from 0 (= Mute) to 65536 = 100%.

The configurations files in ~/.config/pulse (formerly ~/.pulse which may still be active in an upgraded installation) are not meant to be read or edited in a default setting. We can however create a custom default.pa there to override settings in /etc/pulse/default.pa.

For 12.04 earcandy may be used for audio control. Sadly this application is not further developed and not available in later releases.

See also notes for this answer.

4
  • 1
    Thank you for your explanation. But I don't arrive. When I want adjust my amarok-volume for example, how do I do that? It is not listed in list-sinks or list-sources.
    – Lasall
    May 23, 2011 at 15:34
  • You can't do that by the command line interface. This is bound to output sinks.
    – Takkat
    May 23, 2011 at 18:37
  • I have already tested earcandy. It should do exactly the things I want to. But it is still not stable so I don't mark this question as solved.
    – Lasall
    May 23, 2011 at 23:33
  • @Lasall: no worries. We hope it will reach stable some time.
    – Takkat
    May 24, 2011 at 6:06
14

I wrote a small tool that lets you set the volume of any client that pulseaudio remembers. Please see here:

https://github.com/rhaas80/pa_volume

for the repository. You will need the libpulse-dev package installed after which a simple "make" should build the tool. Please see its README.md file for usage.

dpkg -l | grep libpulse-dev # Check if installed
git clone [email protected]:rhaas80/pa_volume.git
cd pa_volume/
make
./pa_volume # list remembered PA clients
./pa_volume Program 30 # set to 30%
2
  • 5
    6 years after asking the question, thank you for providing a working solution and sharing it here :)
    – Lasall
    Oct 25, 2017 at 17:11
  • You can also list clients with pacmd list-clients and kill them with pacmd kill-client (man pulse-cli-syntax). To kill'em all: for i in $(pacmd list-clients | grep index | grep -o "[0-9]*"); do pacmd kill-client $i; done. Some will re-spawn, not sure why. Mar 31, 2019 at 20:57
3

To find your pulseaudio source sinks use following command:

pactl list short sinks

From this command you got the running and idle sinks. With their sink number. Using that index number you can control the sinks volume.

index: 128
    driver: <module-ladspa-sink.c>
    state: RUNNING
    sink: 0
    # ^ This is the sink number you want to find

You can use the following command to control particular sinks volume:

pactl set-sink-volume <index number> <volume in %>

For example:

pactl set-sink-volume 0 100%
3
  • 1
    Thank you to look at this old question. I only get one item in the sink list. My question was to control volume of different (not currently running) applications and not different audio interfaces.
    – Lasall
    Jul 3, 2014 at 17:19
  • It also doesn't answer the question, but you can see all currently running audio outputs with pactl list sink-inputs. If your program shows with id 108 in this list and you want to set it to 60% volume, use pactl set-sink-input-volume 108 60%. But the sound has to be running for it to work. Aug 3, 2015 at 18:55
  • 1
    All I get for that: "No valid command specified."
    – panzi
    Jun 27, 2016 at 19:11

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .