jack.plumbing - Helferlein zum Legen von jack-Verbindungen

Dieses Thema im Forum "Linux" wurde erstellt von bluebell, 2. April 2015.

  1. bluebell

    bluebell aktiviert

    JACK ist fein. So fein, dass ich jackd immer laufen hab und sogar ALSA-Clients über eine Definition in ~/.asoundrc umleite. So weit, so gut.

    Aber mein Audio-Interface hat keinen Hardware-Mixersupport. Also muss ich einen Softwaremixer nehmen, z.B. jack_mixer. Nun fängt das Gefummel an, denn die meisten Clients, die sich automatisch verbinden, verbinden sich zu system:playback. Damit man sie mit einem Softwaremixer regeln kann, müssten sie sich aber zum Eingang des Mixers verbinden, und der Mixer müsste sich mit system:playback verbinden, wenn man es nicht immer von Hand machen will.

    Ja, es gibt die diversen Session manager, z.B. NSM. Aber dann muss man eine vordefinierte Session starten, alle Clients aus dem NSM heraus. Das macht man mit einem Browser schon mal nicht.

    Hier kommt jack.plumbing ins Spiel. Wenn dieses Programm aktiv ist, setzt es Regeln um. Diese Regeln können heißen:

    - Wenn ein Ausgang von jack_mixer da ist, verbinde ihn mit system:playback
    - Wenn umgeleitete ALSA-Clients da sind, verbinde sie mit jack_mixer:ALSA
    usw. usf.

    Hier sind meine Regeln in ~/.jack.plumbing als Anregung:

    Code:
    (connect    "alsa-jack.jackP..*:out_000" "jack_mixer:ALSA L")
    (connect    "alsa-jack.jackP..*:out_001" "jack_mixer:ALSA R")
    (disconnect "alsa-jack.jackP..*:out_000" "system:playback_1")
    (disconnect "alsa-jack.jackP..*:out_001" "system:playback_2")
    
    (connect    "Clementine:out_jackaudiosink-.*_1" "jack_mixer:JACK L")
    (connect    "Clementine:out_jackaudiosink-.*_2" "jack_mixer:JACK R")
    (disconnect "Clementine:out_jackaudiosink-.*_1" "system:playback_1")
    (disconnect "Clementine:out_jackaudiosink-.*_2" "system:playback_2")
    
    (connect    "Qtractor:Master/out_1" "jack_mixer:JACK L")
    (connect    "Qtractor:Master/out_2" "jack_mixer:JACK R")
    (disconnect "Qtractor:Master/out_1" "system:playback_1")
    (disconnect "Qtractor:Master/out_2" "system:playback_2")
    
    (connect    "rosegarden:master out L" "jack_mixer:JACK L")
    (connect    "rosegarden:master out R" "jack_mixer:JACK R")
    (disconnect "rosegarden:master out L" "system:playback_1")
    (disconnect "rosegarden:master out R" "system:playback_2")
    
    (connect    "MPlayer.*:out_0" "jack_mixer:ALSA L")
    (connect    "MPlayer.*:out_1" "jack_mixer:ALSA R")
    (disconnect "MPlayer.*:out_0" "system:playback_1")
    (disconnect "MPlayer.*:out_1" "system:playback_2")
    
    (connect "jack_mixer:MAIN L" "system:playback_1")
    (connect "jack_mixer:MAIN R" "system:playback_2")
    
    Wenn also gerade ein Youtube-Video im Browser dudelt und ich jack_mixer starte, verbindet jack.plumbing automatisch den Mixer mit system:playback und hängt den Browser-Output um zum Eingang namens "ALSA" des jack_mixer.
     

Diese Seite empfehlen