ubuntuusers.de

Programme ohne JACK-Schnittstelle

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Nicht alle Programme haben eine JACK-Schnittstelle. Dieser Artikel erklärt, wie sie trotzdem in JACK eingebunden werden können. Damit können dann zum Beispiel Programme zur Internet-Telefonie mit Audiobearbeitungsprogrammen wie Ardour und mhWaveEdit verbunden werden.

Cadence

Für aktuelle Versionen von Ubuntu ist das Programm Cadence aus dem vom Ubuntu Studio Projekt benutzten KXStudio Repository verfügbar. Cadence sorgt dafür, dass Eingaben und Ausgaben von Pulse Audio automatisch mit den Ein/Ausgängen eines laufenden Jack2 Servers verbunden werden. Dabei bleiben alle automatischen Annehmlichkeiten von Pulse Audio erhalten: Jack2 fungiert de facto als vrituelle Soundkarte. Beide Systeme können gleichzeitig genutzt werden, bei einem Neustart von Jack sorgt Cadence automatisch für die Wiederherstellung der Verbindung. In der Patchbay der Plugin Hostsoftware Carla lassen sich die Pulse Audio Ports auch mit Eingängen von jackfähiger Software verbinden, so lässt sich beispielsweise der Ton von Games oder Webbrowser in Ardour aufnehmen und mit Effektplugins bearbeiten. Cadence konfiguriert das System automatisch, nach der Installation empfiehlt sich ein Neustart, da Pulse Audio sehr tief mit dem System verbunden ist und daher eine erneute Intitialisierung eventuelle Konflikte mit noch laufenden Audioanwendungen vermeiden hilft.

Pulseaudio Modul

Mit einem Modul für PulseAudio können Programme ohne eigene JACK-Schnittstelle mit JACK verbunden werden. Ab Ubuntu 10.04 Lucid Lynx kann folgendes Paket installiert werden[1]:

  • pulseaudio-module-jack

Befehl zum Installieren der Pakete:

sudo apt-get install pulseaudio-module-jack 

Oder mit apturl installieren, Link: apt://pulseaudio-module-jack

Mit dem Befehl[2]

pactl load-module module-jack-sink 

kann die Audioausgabe (z.B. Lautsprecher) eingebunden werden und mit dem Befehl

pactl load-module module-jack-source 

kann der Audioeingang (Mikrofon) in JACK eingebunden werden.

Jackplug

Mit Jackplug können Programme ohne Jack-Schnittstelle durch Änderung der Datei /home/BENUTZERNAME/.asoundrc (oder der Datei /etc/asound.conf) in JACK eingebunden werden.

Installation

Jackplug benötigt das Modul libasound_module_pcm_jack.so. Folgendes Paket muss installiert [1] werden:

  • libasound2-plugins (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install libasound2-plugins 

Oder mit apturl installieren, Link: apt://libasound2-plugins

.asoundrc einstellen

Achtung!

Mit der Änderung der Dateien ~/.asoundrc oder /etc/asound.conf können einige Audioanwendungen nicht mehr richtig funktionieren.

Um Jackplug zu benutzen, wird die Datei ~/.asoundrc (oder die Datei /etc/asound.conf) folgendermaßen gefüllt[4]:

## Jackplug

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

pcm.jack {
    type jack
    playback_ports {
        0 alsa_pcm:playback_1
        1 alsa_pcm:playback_2
    }
    capture_ports {
        0 alsa_pcm:capture_1
        1 alsa_pcm:capture_2
    }
}

ctl.mixer0 {
    type hw
}

Für die Benutzung von Internet-Telefonie mit der IDJC kann man statt Jackplug auch folgendes in die Datei ~/.asoundrc (oder die Datei /etc/asound.conf) schreiben:

pcm.idjcvoip {
   type plug
   slave { pcm "idjcjack" }
}

pcm.idjcjack {
   type jack
   playback_ports {
      0 idjc-mx:voip_recv_lt
      1 idjc-mx:voip_recv_rt
   }
   capture_ports {
      0 idjc-mx:voip_send_lt
      1 idjc-mx:voip_send_rt
   }
}

Nun muss ALSA mit dem Befehl

restart alsa-mixer-save 

neu gestartet werden. Dann wird JACK gestartet und dann die entsprechenden Audioprogramme, die nur ALSA-Schnittstellen haben. Die Einbindung erfolgt dann z.B. in QJackCtl unter "Connect".

.asoundrc per Skript umstellen

Da durch die Änderung der Dateien ~/.asoundrc oder /etc/asound.conf einige Audioanwendungen nicht mehr richtig funktionieren können, benötigt man für unterschiedliche Anwendungen eventuell unterschiedliche Einstellungen. Daher empfiehlt es sich, nur die ~/.asoundrc lokal zu verändern. Das kann man sich durch das Skript asoundconfsetter.sh ⮷ vereinfachen.

Hinweis!

Fremdsoftware kann das System gefährden.

Dieses kopiert man sich mit Root-Rechten[5] in den Ordner /usr/local/bin/, passt auf, dass das Skript ausführbar und für alle lesbar ist[6]. Dann schreibt man die Datei /usr/share/applications/asoundconfsetter.desktop mit folgendem Inhalt:

[Desktop Entry]
Name=Asoundconfsetter
GenericName=Asoundconfsetter
Comment=Change ~/.asoundrc between idjcvoip, jackplug and pulseplug.
Type=Application
Exec=asoundconfsetter.sh
Icon=/usr/share/pixmaps/asoundconfsetter.xpm
Terminal=false
Categories=GTK;Settings;HardwareSettings;
StartupNotify=true

und kopiert noch dieses Symbol ⮷ mit Root-Rechten[5] in den Ordner /usr/share/pixmaps/. Nun kann man das Skript bei Ubuntu-Varianten mit einem Anwendungsmenü über "System → Einstellungen → Asoundconfsetter" öffnen und damit verschiedene Einstellungen der ~/.asoundrc wählen. Für das Skript asoundconfsetter.sh muss das Paket zenity installiert[1] sein.

In der Praxis wird man die ~/.asoundrc nur verändern wollen, wenn man JACK mit dem grafischen Programm Qjackctl starten möchte. Dazu kopiert man sich das Skript qjackctl-start.sh ⮷ in den Ordner /usr/local/bin/, passt auf, dass das Skript ausführbar und für alle lesbar ist[6] und ändert in der Datei /usr/share/applications/qjackctl.desktop die Zeile 'Exec' mit Root-Rechten in

Exec=/usr/local/bin/qjackctl-start.sh

Wird JACK nun gestartet, ändert das Skript die ~/.asoundrc nach Jackplug und startet ALSA neu. Beim Schließen von JACK wird die ~/.asoundrc wiederhergestellt und ALSA wird nochmal neu gestartet.

OSS

Manche Programme haben nur eine Open_Sound_System-Schnittstelle. Um diese in JACK einzubinden, leitet man sozusagen erst OSS auf ALSA weiter, um das dann mit Jackplug in JACK einzubinden. Dazu muss folgendes Paket installiert sein: [1]

  • alsa-oss (universe)

  • qjackctl (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install alsa-oss qjackctl 

Oder mit apturl installieren, Link: apt://alsa-oss,qjackctl

JACK muss mit QJackCtl unter "Setup... → Driver" auf alsa gestellt sein. Ist JACK gestartet, gibt man im Terminal [3] vor dem Startbefehl des einzubindenden Programmes 'aoss' ein. Z.B.:

aoss khdrecord 

Diese Revision wurde am 22. Dezember 2021 07:01 von noisefloor erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Multimedia, System, Tonstudio