ALSA kann auf zwei Weisen konfiguriert werden: Über das Programm Asoundconf und über die Datei .asoundrc im Heimatverzeichnis beziehungsweise global über die Datei /etc/asound.conf. In diesem Text geht es um die Konfiguration über die Dateien.
Von Jonas Knudsen
Minimale Konfiguration
Ein minimaler Aufbau der Datei .asoundrc kann wie folgt aussehen:
pcm.snd_card {
type hw
card 0
device 0
}
ctl.snd_card {
type hw
card 0
device 0
}
pcm.!default {
type plug
slave.pcm „snd_card“
}
Die beiden Einträge clt.snd_card und pcm.snd_card definieren ein virtuelles Gerät, damit die Soundkarte richtig erkannt wird.
»snd_card« ist der Name des Gerätes. Der Name kann beliebig aus den Zeichen A bis z und allen Zahlen gewählt werden. Außerdem ist der Unterstrich (_) im Namen möglich. Der Name dient als Alias für diese Soundkarte.
»card 0« bedeutet, dass die als erste von ALSA gefundene Soundkarte im Rechner mit diesem Alias verknüpft wird. Sollten sich mehrere Soundkarten im Rechner befinden, oder kommen neue Audio-USB-Geräte hinzu, so werden diese automatisch durchnummeriert: die zweite Karte ist als »card 1«, die dritte als »card 2«, usw. einzutragen. Mehr über die Zuordnung zu den Soundkarten kann man mit dem Befehl
cat /proc/asound/cards
erfahren.
Der Eintrag pcm.!default ist der Standard-Eingang. Alle Programme leiten ihren Ton an dieses Gerät, wenn es nicht anders definiert ist. Die Zeile type gibt erwartungsgemäß die Art des Gerätes an. hw steht für eine Soundkarte und plug für einen Eingang.
Slave.pcm gibt an, an welches Gerät der Sound weitergeleitet werden soll. In diesem Beispiel schicken alle Programme ihre Klangausgabe an das Gerät pcm.!default und dieses leitet es direkt an die Soundkarte pcm.snd_card weiter.
Mixen
Wenn kein anderer Soundserver wie Pulseaudio betrieben wird, hat dieser Aufbau einen großen Nachteil: Es kann maximal ein Programm gleichzeitig Klänge von sich geben, da es die Soundkarte belegt. So erscheinen in einer grafischen Benutzeroberfläche Meldungen wie: »Das Gerät ist gerade belegt«.
Abhilfe schaft das Plugin Dmix, welches mithilfe von Software verschiedene Audio-Signale zusammenmischt. Auch die Plugins Duplex und Dsnooper seien erwähnt. Duplex ermöglicht gleichzeitiges Aufzeichnen und Abspielen von Musik. Dsnooper ähnelt Dmix: Es mischt mehrere gleichzeitig aufgenommene Audio-Signale zusammen. Die Plugins werden geladen, indem sie in die Datei .asoundrc wie folgt geschrieben werden.
pcm.snd_card {
type hw
card 0
device 0
}
ctl.snd_card {
type hw
card 0
device 0
}
# Das dmix-Plugin wird definiert.
pcm.dmixer {
type dmix # pcm.NAME: der Name jedes Gerätes kann angepasst werden
ipc_key 1024
ipc_perm 0666 # Andere Benutzer können ebenfalls dmix gleichzeitig nutzen
slave.pcm „snd_card“
slave {
channels 2
}
}
ctl.dmixer {
type hw
card 0
}
# Das dsnoop-Plugin, welches es erlaubt, mehrere Programme gleichzeitig aufnehmen zu lassen.
pcm.dsnooper {
type dsnoop
ipc_key 2048
ipc_perm 0666
slave.pcm „snd_card“
slave
{
channels 2
}
}
# Dies definiert unser Fullduplex-Plugin als Standard für alle ALSA-Programme.
pcm.duplex {
type asym
playback.pcm „dmixer“ #natürlich muss dann auch das passende Gegenstück angepasst werden
capture.pcm „dsnooper“
}
pcm.!default {
type plug
slave.pcm „duplex“
}
Wichtig sind die Zeilen ipc_perm 0666, damit Benutzer welche nicht Root sind, ebenfalls gleichzeitig dmix und dnooper benutzen können. Gut zu sehen ist auch, wie die Audio-Signalweiterleitung angepasst wurde; vom default-Gerät wird es über das duplex- und das dmix-Gerät zur Soundkarte geleitet.
Programme individuell in der Lautstärke regeln
Im Alsamixer gibt es eine Anzahl von Software-Lautstärkereglern. Sie steuern verschiedene Ausgänge. Mindestens sind der Master und der PCM-Regler vorhanden. Manchmal kann es nützlich sein, einem Programm einen eigenen Lautstärkeregler zu spendieren. Hierfür sind zwei Plugins notwendig: Zum einen das schon erwähnte plug-Plugin und zum anderen das Softvol-Plugin.
# phonon
pcm.phonon {
type plug
slave.pcm „phonon_vol“
hint {
show on
description „Alsa“ # Anzeigename in den Phonon-Einstellungen
}
}
# phonon-Lautstärkeregler
pcm.phonon_vol {
type softvol
slave.pcm „default“ #natürlich kann der Sound auch direckt nach dmix oder duplex geleitet werden.
control {
name „phonon_vol“
card 0
}
}
# ctrl for phonon_vol
ctl.phonon_vol {
type hw
card 0
}
Mit diesen virtuellen Geräten kann das Audio-Signal aus Phonon, der Multimediaschnittstelle des KDE-Desktops ab Version 4, über einen eigenen Lautstärkeregler geregelt werden.
In Systemeinstellungen – Multimedia muss nur noch das Standardausgabegerät auf ALSA gestellt werden.
Bevor das Standardausgabegerät umgestellt wird, kann man das neue virtuelle Gerät testen. Zwei mögliche Befehle sind hierfür:
mpg123 -a phonon -cH /pfad/zur/Musik.mp3
oder
aplay -D phonon /pfad/zur/Musik.wav
(aplay spielt keine MP3-Dateien ab)
Ähnlich funktioniert dieses auch mit anderen Programmen: Beim Music Player Daemon muss sowohl die Datei .asoundrc als auch die Datei mpd.conf (meistens im Verzeichnis /etc) angepasst werden.
# mpd
pcm.mpd {
type plug
slave.pcm „mpdvol“
}
#clt für mpd
ctl.mpd {
type hw
card 0
}
# mpd volume control
pcm.mpdvol {
type softvol
slave.pcm „duplex“
control {
name „MPD“
card 0
}
}
# ctrl for mpd volume
ctl.mpdvol {
type hw
card 0
}
Passende Anpassung der Datei mpd.conf im Bereich audio_output:
audio_output {
type „alsa“
name „My ALSA Device“
mixer_type „mpdvol“
device „mpd“
mixer_device „mpdvol“
mixer_control „MPD“
}
Übrigens kann man, wenn man .asoundrc verändert, ganz einfach überprüfen, ob die letzte abgespeicherte Version funktioniert. Man hört dabei einfach Musik. Wenn plötzlich nichts mehr zu hören ist, hat man wahrscheinlich einen Fehler in .asoundrc.
Weitere Informationen:
ALSA-Projekt
Inoffizielles ALSA-Wiki
ALSA-Plugin-Dokumentation
Datei .asoundrc
Das Werk darf vervielfältigt, verbreitet und öffentlich zugänglich gemacht werden, Abwandlungen und Bearbeitungen des Werkes müssen unter den gleichen Bedingungen weitergegeben werden. Der Name des Autors/Rechteinhabers muss in der von ihm festgelegten Weise genannt werden.
– Weitere Informationen