You are here

getting started with qJackCtl on macos

I just installed qJackCtl (and jack) on my Macbook running Catalina 10.15.7. I plugged in my Scarlett Focusrite Solo (MIDI-USB interface) and also started Jamulus. My goal is to be able to connect a 3rd party audio source like iRealPro or Chrome (Youtube) to Jamulus (the audio sink) so that my online band partners and I can play along to a backing track, drum track, or just listen to a recording without leaving the Jamulus session. I'm having trouble getting started and I can't find any docs to help me on a Mac. Most of the docs cover Linux with Alsa.

I tried to attach screenshots but got error messages. Here is the selection I chose in the Interface dropdown: "AppleUSBAudioEngine:Focusrite:Scarlett Solo USB:Y75UBHZ0432290:1,2". I selected the driver "coreaudio". I assume that that's the correct one for Mac.

How do I set up the sources and sinks? I opened the patchbay. Both input and output are empty. I click on "Add" for input; the Client dropdown has only one entry "system". If I select it, then I have two choices for "Plug": "capture_1" and "capture_2". For "Output", the plugs choices are "playback-1/2". I have no idea how these relate to Jamulus and the client or clients I might want to connect.

Where can I find the help I need to get started?

If you need to see screenshots, I'll find another way of hosting them for you.

Forums: 
rncbc's picture

hi,

you rather use "Connections" (or "Graph") to explore around... the "Pathbay" is mainly to keep active persistent connections...
you can also read this to get acquainted with the distinct functions of either ;)

hth.
cheers

Thanks. I read it. I created "capture_1" and "playback_1" plugs and connected them, saved and activated the setup, but I don't know how to connect other apps to these. For example, I would expect "capture_1" and "playback_1" to show up as sound input and output devices in the System Settings / Sound and in apps like Jamulus, but they're not there. Just "Default", "System", and "Scarlett Solo ...". So I'm not there yet.

rncbc's picture

you have to have those apps up and running though, to have them show up in the patchbay sockets and plugs listings... right?

My understanding is that first I use qJC to create and patch input and output sockets that will then appear to other apps as additional input/output "devices" that I can then connect those apps to with their Settings windows. But they don't show up.

Even then, I still don't know how I can connect it all so that my Jamulus session partners can hear what I play on youtube or iReal, for example. For example, I want Jamulus to get input from both my Scarlett Solo device AND from Youtube (browser), then play everything back to my Scarlett solo so I can hear the mix on headphones. But Jamulus only lets me choose one input and one output device. In my case I always choose my MIDI-USB interface for both input and output so I can hear myself play and hear others via Jamulus.

I guess I want to "mux" my MIDI-USB with some playback app (e.g. Chrome or iReal) then connect that mix to Jamulus as input. But for that to happen, I think that my Scarlett Solo would have to show up in qJC as an input and output device so that I can connect it to other plugs. Maybe I don't yet understand what qJC is for?

If I'm on the wrong track, please let me know. Otherwise, could you sketch and send me a diagram of the connections I need?

My bass teacher has a student who might use this and be able to help me. Guess I'm at the age now where I need a kid to figure it out. ;)

rncbc's picture

IDK :(

Let me tell ya that I have zero knowledge on how this all is supposed to behave on macosx and coreaudio, because i just don't care.
But anyway, qjackctl is a UI interface to JACK, and JACK as an infrastructure only deals with JACK-aware devices and applications, period.
That said, I'm afraid I just can't help you on whether macosx/coreaudio have this or that facility for you to share or "mux" some sound, in and out, to and from the JACK sub-system--maybe there's something, maybe not, I really don't know, sorry. Perhaps, you'll need to go into another forum, one that is dedicated to the bitten-fruit corp. at least :)

Is Jamulus configured to run as JACK client application? if yes, then it should appear on the qjackctl Connections and/or Graph windows, showing that it have a couple of input ports and, on the other side, another couple of output ports. It's is at this point that you shall connect each one of the Jamulus input ports to system/capture_N, and its output-ports to system/playback_N, respectively. Only after that you can play, hear and be heard, through the sound device you are using for JACK, a Focusrite Scarlett Solo USB, right? And only after that you can go to the qjackctl Patchbay and setup a persistent connections profile, as to save you all the trouble to re-connect all this stuff again tomorrow or after... but remember, you'll always need to start JACK and launch Jamulus on your own: the Patchbay only makes the intended connections, it doesn't run ther apps for you, ever.

hth.
cheers

Here is a link to using jack on osx,
https://www.youtube.com/watch?v=FhrJ9rTMcBU

I do not use osx, but there is something called agregate devices you can create in the sound setup
section of macs, heard that somewhere when my son was setting up a macbook pro, you can also set
up the headphone jack as an input for whatever that small cable fits in there, you can also install focusrite
drivers instead of using core audio for your interface, you may be better off asking on a music forum about
which drivers work best for your audio interface, core audio or the manufacturers supplied ones, you will find
latency / buffer settings in the scarlet drivers to adjust for best throughput or latency.

Wish I could help more, but maybe someone who can will chime in.

I think I read that on MacOS, you are limited to coreaudio. There are no 3rd party drivers. I don't see any setting for "Aggregate Devices" in my system sound config window.

I just spent an hour on Zoom with a high-school kid (a very good sax player) who uses jack, but he sets it all up from a terminal shell on his PC (I think). We were able to get into a session using Jamulus, and the private server I set up on AWS. We still couldn't figure out how to use qJackCtl to connect anything else.

I was imagining that qJackCtl would let me create virtual audio devices that would show up in any list of audio devices in my app settings windows, that I could then connect each app to as an input or output. But I guess that's not how it works, at least on my Mac.

Maybe this all just works on a PC. I haven't had a PC running Windows for a few years now and don't know anybody that has one now. Oh well. Maybe I'll just have to get a mixer-board and plug in a phone or tablet or MP3 player if I want to add a backing track to the mix. Just more wires and cables!

Thanks for your responses all the same. I'll watch the video shortly.

-Larry

That video is a bit dated. From 2013. jackosx.com no longer exists. I've seen some posts from others that they can no longer find anything called "jackpilot" or "jack-pilot". I think jackctl replaces it. So based on your earlier "I don't care" comment, I'm beginning to think that Jack is just not that well supported on MacOS and I'm lucky it works at all. I might have no other choice but to buy an inexpensive audio mixer board if I want to play backing tracks, drum tracks, or share other audio in a Jamulus session. Hopefully, COVID-19 will be gone (or at least under control) eventually and we can get back to playing in person.

Yes, video is rather old, but the same methods of linking different programs, ins and outs apply.
Some versions of osx have issues with jack, here it is mentioned and a version that does work
is linked, https://ccrma.stanford.edu/software/jacktrip/osx/index.html
jackctl is whats used in Linux, the name is unimportant, and it was not me who said I did not care.
It is a relatively easy program to use, the video I linked shows the way around it.
First you tell osx to use it as the sound device instead of core audio.
And in the jackctl settings, you can tell it to use 15 chanells, or more if they are available,
these channels can then be used by the programs, so each program uses a different one or two
and not conflict with another program.
Then in every program you want to use with jackctl you find the settings in the program and tell it to use
jackctl.

Most audio programs work with stereo, so channel 1 will be left and 2 will be right on the master,
if you input only on channel 1 you might see only one side of the DAW master meter light up, if so and
you want stereo input the same source to chanel 2, that should solve that problem.
Its just a matter of playing around and building up on how it comes together.

Looking at the image in your first post, it doesn't seem jack is installed, though am not familiar with mac,
the images in the link I posted in this replay are very different.
You also need to install jack first, then whatever jackCtl you are advised to use.

Sorry @musicalme, I got you mixed up with @rncbc who wrote "I don't care". My bad.

Anyway, I downloaded and installed the package "jacktrip-macos-installer-x64-1.2.1.pkg". When I typed "jacktrip -s" into a shell, I now have a private jack server on my MacBook that only I can connect to and I the qJackCtl connection window shows additional connections (screenshot attached). That doesn't quite solve my goal, but it's still helpful to my understanding, so thank you for your comments.

Meanwhile, it doesn't quite solve my problem since my bandmates and I are using Jamulus as the client, and I built a Jamulus server on AWS. I thought that Jamulus and Jack are compatible, so that I could use qJackCtl with Jamulus, but it seems they run separate stacks. So to do what I want, I would have to set up a Jack server, perhaps on the same AWS instance, then get my bandmates to switch. I already got them to switch once, from JamKazam to Jamulus. Not sure I can put them through that again, especially when jacktrip doesn't have a GUI interface for them. Doing anything with musicians is like herding cats. ;).

Thanks, nevertheless for your help. If you still think I'm misunderstanding something I'd welcome your input, but for now I'm ready to put qJackCtl aside and just get a small mixer board that I can plug a phone into if we want to play with a drum loop or listen to a recording or backing track.

Mind if I ask, where are you located? What do you play? I'm in Ann Arbor, Mich, USA. I play guitar and bass (intermediate level).

rncbc's picture

yes, I don't care a bit to macosx, nor even close to anything that comes from cupertino, sorry again.

but that doesn't mean I don't care about you or your problem. even though it seems deeply related to the idiosyncrasies of the platform, which is NOT GNU/Linux (the only one in careful support here:)).

now, about two other things which I think you misunderstand about JACK and qjackctl:
1. QjackCtl does not come with JACK bundled, although the opposite is often true, especially on non GNU/Linux platforms;
2. As far as I know of Jamulus architecture: a standalone Jamulus server only deals with network exchange--it is entirely useless for you to install JACK on the server, or even run it there, no matter if you use QjackCtl or else to start and interfere with it.

as @Musicalme said, you have to install JACK (jackd) on the very machine that you have your physical sound device plugged in--this is your macbook and the focusrite usb for sure--you have to install, setup and start JACK over that very sound device exactly, possibly under the "coreaudio" driver, and you can use QjackCtl for just that (or you can start jackd from the command line, giving it the right arguments, your choice). And finally, when JACK (jackd) is all set up and running, you launch the Jamulus client and connect its JACK ports to the system:capture_N (mic, guitar, etc.) and system:playback_N ports (speakers). You may use QjackCtl Connections or Graph to do the connections (but not the Patchbay yet) or you can go full command line with jack_connect et al.

hyu.
byee

@lsiden
Regarding jackCtl, its a standalone app, its a middle man,
some programs install and use alsa on linux, or coreaudio on a mac,
they don't need jack if they are able to output sound on their own.
jack is used with programs that need to connect with each other,
some programs start jack when they start, some don't, so you need to
start jack first, AND press the play button on the jackCtl inrerface, or press pause
to see how it stops playback of the connected programs or devices.

But as mentioned, jack is no good in certain circumstances, programs that use networking
will most likely not have been designed to work with jack, as the network is their middle man,
though am sure some programs will work with jack, some streaming / broadcasting programs I think do this,
jack routes the various sources to the program, the program then uses the internet to send the output.

I don't play any instrument, I tried piano, loved it, but life got in the way, I set up audio for our Church,
which I do on a computer with a DAW, I tend to our website, I have an interest in broadcasting, but I seem
to be the only one, so am afraid to start putting anything online because I would be personally tied up and
responsible for everything, if I get sick, then what, but I still keep the interest and try to unravel what would
be required to set up such, living in hope.

I finally found a solution: https://github.com/ExistentialAudio/BlackHole.

Thanks for your responses.

Add new comment