Dmix

Aus Gentoo Linux Wiki

Wechseln zu: Navigation, Suche
Dieser Artikel ist Teil der HOWTO Sammlung.
Installationsmethoden LiveCDs Kernel & Hardware Laptops & Notebooks Portage System Netzwerke & Services X Software Anderes alphabetischer HOWTO Index


Inhaltsverzeichnis

[Bearbeiten] ALSA mit DMIX-Plugin nutzen

Das dmix-Plugin von ALSA ermöglicht es, ohne Hardware-Unterstützung mehrere Sounds gleichzeitig abspielen zu lassen. Nach der richtigen Konfiguration sollte jedes Programm, welches native ALSA-Unterstützung hat dieses automatisch nutzen.

Zu beachten ist jedoch, dass OSS-Programme dmix nicht direkt nutzen können, hierzu wird entweder der kernelseitige OSS ALSA Wrapper benötigt, oder das aoss-Skript. Das aoss-Skript hat den Vorteil, das OSS-Programme somit das dmix-Plugin nutzen können – funktioniert aber nicht bei allen Programmen. Der kernelseitige OSS ALSA Wrapper funktioniert praktisch immer.

[Bearbeiten] Konfiguration

Um das ALSA-dmix-Plugin systemweit zu nutzen, muss die Datei /etc/asound.conf angelegt/verändert werden.

[Bearbeiten] /etc/asound.conf für dmix-Plugin

Diese Konfiguration sollte problemlos auf jedem System mit einer Soundkarte funktionieren:

# Die Soundkarte wird festgelegt.
pcm.snd_card {
    type hw
    card 0
}

# Das dmix-Plugin wird definiert.
pcm.dmixer {
    type dmix
    ipc_key 1024
    ipc_perm 0666	# Andere Benutzer können ebenfalls dmix gleichzeitig nutzen  (geil! :))
    slave.pcm "snd_card"
    slave {
        # buffer_size kann bei Problemen der jeweiligen Karte angepasst werden.
        period_time 0
        period_size 1024
        buffer_size 4096
        # bei Störungen kann die Konvertierung auf die Rate 44100 eingeschaltet werden.
        # rate 44100
    }
    bindings {
        0 0
        1 1
    }
}

# Dies definiert unser dmix-Plugin als Standard für alle ALSA-Programme.
pcm.!default {
    type plug
    slave.pcm "dmixer"
}

########
# AOSS #
########

# DSP wird simuliert und benutzt das dmix-Plugin.
pcm.dsp "dmixer"
pcm.dsp1 "dmixer"

# OSS-Steuerung für dsp0 (falls es benötigt wird ...)
ctl.dsp {
    type plug
    slave.pcm "snd_card"
}

# OSS-Steuerung für dsp0 (falls es benötigt wird ...)
ctl.mixer {
    type plug
    slave.pcm "snd_card"
}

[Bearbeiten] /etc/asound.conf für Duplex-Betrieb mit dmix- und dsnoop-Plugin

Dies ist eine Konfiguration mit zusätzlich eingebautem DSNOOP-Plugin, dies ermöglicht neben gleichzeitigem Wiedergeben mehrerer Sounds auch noch gleichzeitiges Aufnehmen mehrerer Sounds.

# Die Soundkarte wird festgelegt.
pcm.snd_card {
    type hw
    card 0
}

# Das dmix-Plugin wird definiert.
pcm.dmixer {
    type dmix
    ipc_key 1024
    ipc_perm 0666	# Andere Benutzer können ebenfalls dmix gleichzeitig nutzen  (geil! :))
    slave.pcm "snd_card"
    slave {
        # buffer_size kann bei Problemen der jeweiligen Karte angepasst werden.
        period_time 0
        period_size 1024
        buffer_size 4096
        # bei Störungen kann die Konvertierung auf die Rate 44100 eingeschaltet werden.
        # rate 44100
    }
    bindings {
        0 0
        1 1
    }
}

# 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 
    {
        period_time 0
        period_size 1024
        buffer_size 4096
        # bei Störungen kann die Konvertierung auf die Rate 44100 eingeschaltet werden.
        # rate 44100
    }
    bindings {
        0 0
        1 1
    }
}

# Dies definiert unser Fullduplex-Plugin als Standard für alle ALSA-Programme.
pcm.duplex {
    type asym
    playback.pcm "dmixer"
    capture.pcm "dsnooper"
}

pcm.!default {
    type plug
    slave.pcm "duplex"
}

########
# AOSS #
########

# DSP wird simuliert und benutzt das dmix-Plugin.
pcm.dsp "duplex"
pcm.dsp1 "duplex"

# OSS-Steuerung für dsp0 (falls es benötigt wird ...)
ctl.dsp {
    type plug
    slave.pcm "snd_card"
}

# OSS-Steuerung für dsp0 (falls es benötigt wird ...)
ctl.mixer {
    type plug
    slave.pcm "snd_card"
}
'Persönliche Werkzeuge
Andere Sprachen