ALSA konfigurieren
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.
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.