Andreas-Loibl.de
Hintergrundbild

Master-Lautstärkereglerfür SB Live 5.1

Einleitung

Da der Master-Lautstärkeregler der SB Live 5.1 eigentlich gar kein "Master"-Regler ist, sondern nur die beiden Front-Lautsprecher regelt, und ein richtiger Regler, der die Eigenschaften eines Master-Reglers hat, fehlt, habe ich lange nach einer Lösung gesucht um einen solchen Regler nachzurüsten. Trotz intensiver Internet- und Alsa-Manual-Recherche habe ich sehr lange gebraucht um eine Lösung zu finden, weshalb ich mein Ergebnis jetzt hier veröffentliche um euch diese Arbeit zu ersparen :D

Die ~/.asoundrc

(Downloadlink, einfach umbenennen in .asoundrc: asoundrc.conf)
# ~/.asoundrc - written by acritox
# (Andreas Loibl <andreas@andreas-loibl.de>) - 10.09.2010
# Alsa Configuration for SB Live 5.1
# Softvol "AllCh":
#  - Master Volume-Control and Mute-Switch for all Channels (as
#    replacement for Master, which actually only controls Front)
#  - Master Lautstärkeregler und Stumm-Schalter für alle Kanäle (als
#    Ersatz für Master, der in Wirklichkeit nur Front regelt)
# default (stereo Upmix) and surround51 (5.1 Surround sound)

pcm.sblive {
    type hw
    card 0
}

pcm.sblive_default_switch
{
    type softvol
    slave.pcm "sblive"
    control
    {
    	name "AllCh Playback Switch"
	card 0
    }
    resolution 2
}

pcm.sblive_default_volume
{
    type softvol
    slave.pcm "sblive_default_switch"
    control
    {
    	name "AllCh Playback Volume"
	card 0
    }
}

pcm.sblive_default_playback
{
    type asym
    playback.pcm "sblive_default_volume"
}

pcm.!default
{
    type plug
    slave.pcm "sblive_default_playback"
    hint
    {
        show on
        description "SB Live! 5.1, Stereo output to 6 speakers (upmix)"
    }
}

pcm.sblive_surround51
{
    type route
    slave.pcm "cards.pcm.surround51"
    ttable.0.0 1
    ttable.1.1 1
    ttable.2.2 1
    ttable.3.3 1
    ttable.4.4 1
    ttable.5.5 1
}

pcm.sblive_surround51_switch
{
    type softvol
    slave.pcm "sblive_surround51"
    control
    {
    	name "AllCh Playback Switch"
	card 0
    }
    resolution 2
}

pcm.sblive_surround51_volume
{
    type softvol
    slave.pcm "sblive_surround51_switch"
    control
    {
    	name "AllCh Playback Volume"
	card 0
    }
}

pcm.sblive_surround51_playback
{
    type asym
    playback.pcm "sblive_surround51_volume"
}

pcm.!surround51
{
    type plug
    slave.pcm "sblive_surround51_playback"
    hint
    {
        show on
        description "SB Live! 5.1, Surround (5.1) output to 6 speakers"
    }
}

So funktionierts

Mit Hilfe der Konfigurationsdatei ~/.asoundrc konfigurieren wir Alsa so, dass es mit Hilfe des SoftVol-Plugins zwei zusätzliche Laustärke-Regler einfügt:
  • "AllCh Playback Switch": dieses SoftVol-Control wird durch die Zeile "resolution 2" zu einem Mute-Schalter konfiguriert
  • "AllCh Playback Volume": dieses SoftVol-Control stellt die Lautstärkeregelung für die Karte zur Verfügung

Außerdem ist noch das asym-Device "sblive_default_playback" nur mit playback.pcm (d.h. ohne capture.pcm) definiert, damit der Regler nur als einfacher Regler erscheint und nicht als Doppelregler für Audio-Wiedergabe und -Aufnahme

Das ganze wird jetzt folgendermaßen hintereinander verschaltet und als Alsa-"default"-Ausgang definiert:

default -> sblive_default_playback -> sblive_default_volume -> sblive_default_switch -> sblive

Zusätzlich das ganze noch mal für surround51, wer noch weitere wie surround40 etc. benötigt kann die Konfiguration demensprechend erweitern...

Durch die spezielle Namensgebung der SoftVol-Controls ("... Switch" und "... Volume") werden die beiden Regler im Mixer als ein Regler zusammengefasst dargestellt und funktionieren auch demensprechend:

alsamixer KMix KMix_Mixer

KMix konfigurieren

Nachdem die ~/.asound angelegt und konfiguriert wurde ist es wahrscheinlich notwendig sich einmal aus- und wieder einzuloggen, danach kann in KMix der neue Regler folgendermaßen aktiviert werden:
  1. KMix öffnen
  2. Einstellungen -> Kanäle einrichten...
  3. Den neu angelegten Kanal "AllCh" auf die rechte Seite ziehen
    KMix_Channels
  4. Einstellungen -> Hauptkanal auswählen...
    KMix_Master
  5. Den Kanal "AllCh" auswählen
    KMix_Master_Dialog
  6. Das wars. Der Kanal "AllCh" ist jetzt der neue "Master" und kann (sofern die Tastatur bzw. die Tastenbelegungen so konfiguriert sind) mit den Multimediatasten Lauter/ Leiser/ Stumm geregelt werden
    KMix

KDE konfigurieren

Dank der hint-Direktive (mit "show on" und "description") erscheinen die angelegten Devices auch in KDE/ Phonon und können dort als Ausgangsgerät ausgewählt werden. Somit sind auch bspw. die KDE-Benachrichtigungen unter dem Einfluss des "AllCh"-Reglers und es ertönt kein Ton mehr wenn "AllCh" auf Stumm geschaltet ist.

KDE_Phonon