[Jack-Devel] Suggestion to include loopback capability in a Jack session

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[Jack-Devel] Suggestion to include loopback capability in a Jack session

Thomas Howe
Hi Jack-devel,

This time it's not an impossible-to-reproduce bug, but a feature request! Let me know it there's a better place to post this. I think similar things have been suggested before, but this idea for a 'loopback' client hasn't as far as I'm aware.

A loopback Jack client to intercept streams to and from partially Jack-aware programs such as SMPlayer and Firefox would be useful. Both of these programs output audio to Jack, but only to the system ports, which makes routing the audio inconvinient. My setup includes a Jack client for pre-speaker processing (called "Apps Out"), which reduces the audio by 35 dB and applies EQing, so any unexpected connetions directly to the system ports are inconveniently loud and muddy. Even if these programs gain support for changing their default output ports, there may be other programs that won't.

The ALSA loopback device effectively pretends to be hardware, so most ALSA-aware programs will be connected by default to Apps Out (and its counterpart "Apps In"), as there is a persistent connection between these clients and the ALSA-Jack bridge. Some way of configuring a Jack session so that programs would think that Jack's hypothetical loopback client is the system capture/plackback - with the real system capture/playback appearing to be a non-system client - would solve everything. Like adding a monitor strip for use between the apps and the hardware.

Failing that, is there a way I can force partially Jack-aware programs to use the ALSA loopback device instead of Jack, maybe by hiding Jack's existence?

 - Tom

_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Suggestion to include loopback capability in a Jack session

Michael

On 2016-12-30, at 7:26 PM, Thomas Howe <[hidden email]> wrote:

A loopback Jack client to intercept streams to and from partially Jack-aware programs such as SMPlayer and Firefox would be useful. Both of these programs output audio to Jack, but only to the system ports, which makes routing the audio inconvinient. 

When you call Firefox "partially Jack-aware", what do you mean? I can only get firefox to output to the default system audio; I can set that to Jack, but neither Firefox nor flash do anything special when playing videos / ogg files / etc.

---
Entertaining minecraft videos


_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Suggestion to include loopback capability in a Jack session

Thomas Howe
Maybe I'm using the wrong terms. I mean it has its own Jack client 'Firefox' whenever it runs, unlike programs like Flash which rely on ALSA/PulseAudio, so it's Jack-aware. Firefox seems to lack features that would let me establish a persistent connection between its Jack client and another Jack client, which would generally be expected of a Jack-aware program, so that's why I used "partially Jack-aware".

On 31 December 2016 at 17:06, Michael <[hidden email]> wrote:

On 2016-12-30, at 7:26 PM, Thomas Howe <[hidden email]> wrote:

A loopback Jack client to intercept streams to and from partially Jack-aware programs such as SMPlayer and Firefox would be useful. Both of these programs output audio to Jack, but only to the system ports, which makes routing the audio inconvinient. 

When you call Firefox "partially Jack-aware", what do you mean? I can only get firefox to output to the default system audio; I can set that to Jack, but neither Firefox nor flash do anything special when playing videos / ogg files / etc.

---
Entertaining minecraft videos



_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Suggestion to include loopback capability in a Jack session

Michael

On 2016-12-31, at 2:41 PM, Thomas Howe <[hidden email]> wrote:

Maybe I'm using the wrong terms. I mean it has its own Jack client 'Firefox' whenever it runs, unlike programs like Flash which rely on ALSA/PulseAudio, so it's Jack-aware. Firefox seems to lack features that would let me establish a persistent connection between its Jack client and another Jack client, which would generally be expected of a Jack-aware program, so that's why I used "partially Jack-aware".

Hmm?

First, you're talking about Jack/Firefox on Linux; I'm talking about Jack/Firefox on MacOS.

With that said, any program that talks to Jack through the default audio out (10.9.5, when this was still possible) shows up as the program name. In the case of firefox, I will see Firefox or plugin-container, depending on firefox native or flash.

But this is just using the normal audio out system on Macs; this is the same system that fails on 10.10 or later (as I understand it, only programs that let you explicitly select an audio device can talk to Jack on those OS's; since Firefox/flash, as well as most games and other programs, only talk to the default audio device, none of them can use Jack on newer Mac OS's.)



On 31 December 2016 at 17:06, Michael <[hidden email]> wrote:

On 2016-12-30, at 7:26 PM, Thomas Howe <[hidden email]> wrote:

A loopback Jack client to intercept streams to and from partially Jack-aware programs such as SMPlayer and Firefox would be useful. Both of these programs output audio to Jack, but only to the system ports, which makes routing the audio inconvinient. 

When you call Firefox "partially Jack-aware", what do you mean? I can only get firefox to output to the default system audio; I can set that to Jack, but neither Firefox nor flash do anything special when playing videos / ogg files / etc.

---
Entertaining minecraft videos


_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org

---
Entertaining minecraft videos


_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Suggestion to include loopback capability in a Jack session

Thomas Howe
Whoops, putting the list back in the email.
Default system output, that is.

On 31 December 2016 at 23:35, Thomas Howe <[hidden email]> wrote:
Ah, I have no idea how Jack works on MacOS. As far as I know it isn't possible on Linux to specify a Jack port as the default output.

On 31 December 2016 at 23:02, Michael <[hidden email]> wrote:

On 2016-12-31, at 2:41 PM, Thomas Howe <[hidden email]> wrote:

Maybe I'm using the wrong terms. I mean it has its own Jack client 'Firefox' whenever it runs, unlike programs like Flash which rely on ALSA/PulseAudio, so it's Jack-aware. Firefox seems to lack features that would let me establish a persistent connection between its Jack client and another Jack client, which would generally be expected of a Jack-aware program, so that's why I used "partially Jack-aware".

Hmm?

First, you're talking about Jack/Firefox on Linux; I'm talking about Jack/Firefox on MacOS.

With that said, any program that talks to Jack through the default audio out (10.9.5, when this was still possible) shows up as the program name. In the case of firefox, I will see Firefox or plugin-container, depending on firefox native or flash.

But this is just using the normal audio out system on Macs; this is the same system that fails on 10.10 or later (as I understand it, only programs that let you explicitly select an audio device can talk to Jack on those OS's; since Firefox/flash, as well as most games and other programs, only talk to the default audio device, none of them can use Jack on newer Mac OS's.)



On 31 December 2016 at 17:06, Michael <[hidden email]> wrote:

On 2016-12-30, at 7:26 PM, Thomas Howe <[hidden email]> wrote:

A loopback Jack client to intercept streams to and from partially Jack-aware programs such as SMPlayer and Firefox would be useful. Both of these programs output audio to Jack, but only to the system ports, which makes routing the audio inconvinient. 

When you call Firefox "partially Jack-aware", what do you mean? I can only get firefox to output to the default system audio; I can set that to Jack, but neither Firefox nor flash do anything special when playing videos / ogg files / etc.

---
Entertaining minecraft videos


_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org

---
Entertaining minecraft videos




_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Suggestion to include loopback capability in a Jack session

Fons Adriaensen-3
In reply to this post by Thomas Howe
On Sat, Dec 31, 2016 at 03:26:17AM +0000, Thomas Howe wrote:

> This time it's not an impossible-to-reproduce bug, but a feature request!
> Let me know it there's a better place to post this. I think similar things
> have been suggested before, but this idea for a 'loopback' client hasn't as
> far as I'm aware.

ALSA's 'jack' plugin can route audio from an ALSA-aware app to
jack. You can specify to which jack ports it should connect.

You need the alsa-plugins package and an .asoundrc file in your
home directory. This works by making the jack plugin the default
ALSA device. In the example below it will connect to zita-mu1 for
output. I'm using this with Opera, works perfectly.

Example .asoundrc:

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

pcm.jack {
    type jack
    playback_ports {
       0 zita-mu1:in_2.L
       1 zita-mu1:in_2.R
    }
    capture_ports {
        0 system:capture_1
        1 system:capture_2
    }
}
___


Ciao,

--
FA

A world of exhaustive, reliable metadata would be an utopia.
It's also a pipe-dream, founded on self-delusion, nerd hubris
and hysterically inflated market opportunities. (Cory Doctorow)

_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Suggestion to include loopback capability in a Jack session

Thomas Howe
Here's my asound.conf. I don't have the plugin, but shouldn't the ALSA loopback configuration have the same effect and instruct Firefox to output to the loopback device instead of outputting as a Jack client?

On 1 January 2017 at 15:32, Fons Adriaensen <[hidden email]> wrote:
On Sat, Dec 31, 2016 at 03:26:17AM +0000, Thomas Howe wrote:

> This time it's not an impossible-to-reproduce bug, but a feature request!
> Let me know it there's a better place to post this. I think similar things
> have been suggested before, but this idea for a 'loopback' client hasn't as
> far as I'm aware.

ALSA's 'jack' plugin can route audio from an ALSA-aware app to
jack. You can specify to which jack ports it should connect.

You need the alsa-plugins package and an .asoundrc file in your
home directory. This works by making the jack plugin the default
ALSA device. In the example below it will connect to zita-mu1 for
output. I'm using this with Opera, works perfectly.

Example .asoundrc:

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

pcm.jack {
    type jack
    playback_ports {
       0 zita-mu1:in_2.L
       1 zita-mu1:in_2.R
    }
    capture_ports {
        0 system:capture_1
        1 system:capture_2
    }
}
___


Ciao,

--
FA

A world of exhaustive, reliable metadata would be an utopia.
It's also a pipe-dream, founded on self-delusion, nerd hubris
and hysterically inflated market opportunities. (Cory Doctorow)

_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org


_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org

asound.conf (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Suggestion to include loopback capability in a Jack session

Fons Adriaensen-3
On Mon, Jan 02, 2017 at 02:21:35AM +0000, Thomas Howe wrote:

> Here's my asound.conf. I don't have the plugin, but shouldn't the ALSA
> loopback configuration have the same effect and instruct Firefox to output
> to the loopback device instead of outputting as a Jack client?

If you don't have the plugin then just get it from your distro.

I posted a solution to your problem, one which actually works
since I've been using this for the last five years or so.

You respond by posting something that starts by saying that
you don't understand it.

I'm not going to waste any more time on this.

Ciao,

--
FA

A world of exhaustive, reliable metadata would be an utopia.
It's also a pipe-dream, founded on self-delusion, nerd hubris
and hysterically inflated market opportunities. (Cory Doctorow)

_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Suggestion to include loopback capability in a Jack session

Thomas Howe
Ok, I tried it, and as I assumed it had no effect apart from stopping SMPlayer playing through ALSA at all. I'm guessing this is a glitch in SMPlayer, because MuseScore plays fine through ALSA and makes the ALSA-Jack client appear. This solution still seems functionally identical to my ALSA loopback setup - most things work fine but Firefox still creates a "Firefox" Jack client and outputs through that instead of the default ALSA device.

Also, this deviates from the point I was trying to make in the first email - Jack's system ports can't currently be hidden from programs, and it would be useful if they could.

On 2 January 2017 at 19:25, Fons Adriaensen <[hidden email]> wrote:
On Mon, Jan 02, 2017 at 02:21:35AM +0000, Thomas Howe wrote:

> Here's my asound.conf. I don't have the plugin, but shouldn't the ALSA
> loopback configuration have the same effect and instruct Firefox to output
> to the loopback device instead of outputting as a Jack client?

If you don't have the plugin then just get it from your distro.

I posted a solution to your problem, one which actually works
since I've been using this for the last five years or so.

You respond by posting something that starts by saying that
you don't understand it.

I'm not going to waste any more time on this.

Ciao,

--
FA

A world of exhaustive, reliable metadata would be an utopia.
It's also a pipe-dream, founded on self-delusion, nerd hubris
and hysterically inflated market opportunities. (Cory Doctorow)

_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org


_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Loading...