Manchmal möchte man – auch wenn man PulseAudio verwendet – die Lautstärke aus der Shell heraus ändern. Mit dem Programm pacmd lässt sich das recht elegant umsetzen.  Wie man pacmd verwendet und wie man die Lautstärke elegant steuern kann möchte ich hier zeigen.

1. pacmd (pulseaudio cmd) installieren

Die Installation von pacmd ist zumindest unter Ubuntu ganz einfach möglich mit

2. Ein paar einfache Befehle

Bei PulseAudio ist jedes Audiogerät zur Ausgabe eine sogenannte Sink und natürlich hat jede Sink eine eigene Lautstärkeregelung. Wenn man mehrere Soundkarten hat, dann möchte man wohl erstmal rausfinden, wie man genau die richtige Laustärke regelt. Die Sinks werden über ihren Index (0,1,2,…) identifiziert.

2.1 Alle verfügbaren Sinks werden ausgegeben mittels:

Bei mir fängt die ziemlich ausführliche Antwort so an:

Eigentlich sind nur Zeile 2 und 3 interessant. Ich weiß, dass index 0  meine richtige Sink ist, weil ich den Namen meiner Soundkarte am Name erkenne.

2.2 Lautstärke auf Lautlos setzen

Da ich nun also den Sink-Index (0) kenne kann ich die Lautstärke komplett ausschalten mittels:

Syntax:

wobei 1=Lautlos und 0=Zurück zu Normal.

2.3 Lautstärke auf bestimmten Wert setzen

Mit

kann man die Laustärke der Sink [index] auf [wert] setzen. Allerdings wird man in der Erwartung mit [wert]=50 die Lautstärke auf 50% zu setzen wohl meistens enttäuscht und nichts mehr hören, denn die Laustärke wird nicht in % von 0 bis 100 gesetzt sondern meistens von 0 (0%) bis 65536 (100%). Welchen Maximalwert man nun bei seiner Sink hat kann man auch in der Ausgabe von  pacmd list-sinks  sehen. In der Zeile mit volume steps:   steht zum Beispiel bei mir 65537. Davon muss ich eins abziehen und lande bei 65536.

Also kann ich mit

voll aufdrehen.

2.4 Lautstärke um x% erhöhen

Das ist in Wirklichkeit die häufigste Anwendung von Lautstärkereglern und, die Lautstärke auf 25% zu setzen kommt eher selten vor. Leider ist dies auch die komplizierteste Anwendung von pacmd. Man muss zuerst den Index herausfinden (mittels list-sinks ), dann die aktuelle Lautstärke (auch list-sinks ) , dann die maximale Lautstärke (auch list-sinks ) und dann die neue um einen bestimmten Werte erhöhte Lautstärke setzen ( set-sink-volume ).

Wer fit in bash oder einer anderen shell- oder Skriptsprache ist kann sich nun entweder selbst ein kleines Tool schreiben, oder dieses Ruby-Skript hier verwenden:

Ich habe es von Raphael von hier „geklaut“ und ein paar Fehler ausgebessert, die sich wohl seit 2011 durch Änderungen der pacmd-Ausgaben ergeben haben.

In Zeile 35 setze ich, dass sich die Lautstärke um 3% erhöht bzw. verringert.

Den Code kann man in eine Datei wie (bei mir) pa_volume.r ablegen und diese ausführbar machen ( chmod +x pa_volume.r ). Dann kann man die Datei mit den Parameter 0, ?, +. – oder ! starten:

  • 0: gibt die aktuelle Lautstärke aus.
  • ?: gibt an, ob gerade Lautlos an ist (true) oder nicht (false).
  • -: verringert die Lautstärke um 3%.
  • +: erhöht die Laustärke um 3%.
  • !: Lautlos an/aus

Beispiel:

Der Befehl

verringert bei mir die Lautstärke um 3%.

Ich verwende diesen Befehl dann beim Mappen eines Tastendrucks auf meiner Infrarot-Fernbedienung (Vol± oder eben Mute).


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.