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!

Diese Seite wurde zuletzt am 3. Juli 2008 um 19:41 Uhr geändert.
Diese Seite wurde bisher 3.653-mal abgerufen.