Sound mit mehreren Programmen gleichzeitig ausgeben lassen
Aus LinWiki.de
Um mehrere Programme gleichzeitig Sound ausgeben zu lassen gibt es verschiedene Möglichkeiten: Benutzung eine sog. Sound-Daemons, die Vollduplexfähigkeit der Soundkarte, oder der dmix plugin von ALSA.
Inhaltsverzeichnis |
[Bearbeiten] eSound benutzen
- man installiert sich den eSound daemon (esd)
- starten aus der konsole mit: esd
- nun in allen Programmen die gleichzeitig laufen sollen als Ausgabe-plugin esd einstellen, bzw. 'esdplay' angeben
[Bearbeiten] aRts benutzen
seit kde 3.3 kann das auch mit aRts gelöst werden. einfach aRts als Ausgabe-plugin einstellen, bzw 'artsplay'
[Bearbeiten] Multiplexing
Bei multiplexing-fähigen Soundkarten (Karten mit unterstütztem wavetable synthesizer, dazu gehören derzeit nur Sound Blaster Live!/Audigy Karten mit emu10kxx Chipsatz und der VIA ac97) sollte der karteneigene Hardware-Mixer (i.d.R /dev/dsp) in der Lage sein die Streams zu bündeln. Dieses Feature wird von weiteren Karten unterstützt, die einen Hardware-Mixer bereitstellen. Siehe ALSA Soundcard Matrix, Tag 'HWMIX': http://www.alsa-project.org/main/index.php/Matrix:Tag-HWMIX
[Bearbeiten] dmix
dmix ist eine art plugin für ALSA, eine elegante Möglichkeit einen Hardware Mixer zu "simulieren", also sogenanntes Software-Mixing. Dazu muss man zunächst eine Datei ~/.asoundrc anlegen. Hier ein Beispiel für eine Karte mit ICE1712/envy24 chip (zB M-Audio Delta Audiophile 2496):
pcm.ossmix {
type dmix
ipc_key 1024
slave {
pcm "hw:0,0"
format S32_LE
period_time 0
period_size 1024
buffer_size 4096 # buffer size < 6653, aber pow(x, 2)
rate 44100 # wir spielen nur CDs
}
bindings {
0 0
1 1
}
}
# alles soll über dmix laufen, daher redefiniert man das 'default' device:
pcm.!default {
type plug
slave.pcm "ossmix"
}
# OSS via aoss soll auch dmix'ed werden:
pcm.dsp {
type plug
slave.pcm "ossmix"
}
ctl.mixer {
type hw
card 0
}
Damit sollte dmix aktiviert sein. Als Ausgabe-Plugin stellt man in allen Programmen nun ALSA ein, das Device ist 'default'. Eine genaue Beschreibung und mehrere Beispiele für eine .asoundrc findet man unter http://alsa.opensrc.org/index.php?page=DmixPlugin. Programme die nur OSS können, müssen über den Wrapper 'aoss' gestartet werden.
[Bearbeiten] Anmerkung
Bei Programmen die keine oder nur eine eher bescheidene auswahl an Ausgabe-plugins haben, kann ein Wrapper verwendet werden! gutes beispiel dafür ist Skype
artsdsp -m skype (KDE)
esddsp skype (GNOME)
Bitte beachte auch den Hinweis zu Codebeispielen!

