Re: Jack Problems

Holger Marzen <[email protected]>
Newsgroups gmane.comp.audio.jackit
Message-ID <[email protected]>
On Fri, 22 Mar 2019, [email protected] wrote:

> Holger, I have a question regarding your very good instructions below.
> 
> As far as I know Alsa handles all the 1818VSL and other USB interface
> connections..
> How is that going to influence my abilty to use audio interfaces as now alsa
> wont be able to access the usb ports directly when I follow the link advice
> you included in your message. If I understand it right

ALSA has "2 levels": The low level stuff, "the driver", and high level
stuff "the API for clients".

If you have an USB interface then jackd uses the ALSA driver, iow
"backend": jackd -dalsa ...

Without Pulseaudio you can redirect ALSA clients to jackd via
~./asoundrc or system wide files:

-- snip ---
pcm.!default {
    type plug
    slave { pcm "rawjack" }
}

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

pcm.jack {
    type plug
    slave { pcm "rawjack" }
    hint {
    description "JACK Audio Connection Kit"
    }
}
-- snap --

So jackd can "own" the card and ALSA-clients can use the ALSA-API.

When Pulseaudio is installed there will be a similar redirection
installed, systemwide. All ALSA-clients are redirected to Pulseaudio.
If Pulseaudio outputs to jackd then all clients can output their sound.

jack-client -> jackd -> audio interface
pulseaudio-client -> Pulseaudio -> jackd -> audio interface
ALSA-client -> Pulseaudio -> jackd -> audio interface

You have all the benefits and you can record the sound of Youtube videos
or SoundClout with Audacity if you choose the correct jackd-port.

You can even have several jack_thru instances to have "fixpoints" where
you can tap the signal.

I run a jack_thru named "main" (1st arg) as central point where I can
tap the signal. Here an example with a running Qtractor:

http://marzen.de/tmp/jack_flow_simple.png

This way I have ALWAYS that central point regardless if and how many
audio applications are running.

To maintain the connections of started applications I have jack-plumbing
active with the following ruleset ~/.jack-plumbing
As you can see in the last lines: Whenever I start ebumeter it gets
automagically connection to "main" (a jack_thru instance) and processes
every client's audio since every client will be redirected to "main".

If you have more questions that might not be of interest for the whole
mailing list you can email me directly.

My other PC in the home studio has a more complicated setup since I use
2 jackd instances: one with a big latency for Qtractor sessions and one
with a small latency for Guitarix, which sends its analog output to the
first.

-- snip --
(connect "main:output_1" "system:playback_1")
(connect "main:output_2" "system:playback_2")
(disconnect "system:capture_.*" "main:input_.*")

(connect    "alsa-jack\..*jackP\..*:out_000" "main:input_1")
(connect    "alsa-jack\..*jackP\..*:out_001" "main:input_2")
(disconnect "alsa-jack\..*jackP\..*:out_.*" "system:playback_.*")

(connect    "Clementine:out_jackaudiosink-.*_1" "main:input_1")
(connect    "Clementine:out_jackaudiosink-.*_2" "main:input_2")
(disconnect "Clementine:out_jackaudiosink-.*" "system:playback_.*")

(connect    "Qtractor:Master/out_1" "main:input_1")
(connect    "Qtractor:Master/out_2" "main:input_2")
(disconnect "Qtractor:Master/out_.*" "system:playback_.*")

(connect    "ardour:Master/audio_out 1" "main:input_1")
(connect    "ardour:Master/audio_out 2" "main:input_2")
(disconnect "ardour:Master/audio_out.*" "system:playback_.*")

(connect    "MPlayer.*:out_0" "main:input_1")
(connect    "MPlayer.*:out_1" "main:input_2")
(disconnect "MPlayer.*:out_.*" "system:playback_.*")

(connect    "PortAudio:out_.*[13579]" "main:input_2")
(connect    "PortAudio:out_.*[02468]" "main:input_1")
(disconnect "PortAudio:out_.*" "system:playback_.*")

(connect    "PulseAudio.*:front-left"  "main:input_1")
(connect    "PulseAudio.*:front-right" "main:input_2")
(disconnect "PulseAudio.*:.*" "system:playback_.*")

(connect "netjack:capture_1" "main:input_1")
(connect "netjack:capture_2" "main:input_2")

(connect "main:output_1" "ebumeter:in.L")
(connect "main:output_2" "ebumeter:in.R")
-- snap --
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.