Welcome back for another round of internal audio routing. Last time we took a look at various third party applications that allow for more flexible audio routing possibilities. Of all those programs, the JACK Audio Connection Kit offered the most flexibility while being free and cross platform to boot. The catch? Setup can be a royal nightmare with JACK!
That is why this time we will focus exclusively on JACK, how to set it up, what the available options are, and how to get the most out of the program. No matter if you are PC, Mac, or Linux, if you need the ultimate audio routing control then JACK is the program for you. Ready to jack in?
1. Setting it All Up
Download and Available Options
Obviously the first step with using any program is to actually get your hands on it! For that go to jackaudio.org/download and find your favorite OS.
Generally speaking, you will want to be using JACK 2 unless you have a very good reason not to. Why? Because if for no other reason JACK 2 supports multi-processors which is good for you and the environment (your digital environment to be more precise). If you happen to be running a 64bit OS you should definitely get your hands on the 64bit version if it is available. For the more technically inclined, there are also options for GIT as well.
For Mac users, things will be a little different. You may have noticed that for OS X, the latest version of JACK was in fact only the source and not a compiled binary—not fun stuff. The easiest way to get JACK for OS X is via a sister site jackosx.com.
Obviously things will work a little different here, so we need to separate the different setups.
Install and Initial Setup for PC and Linux
After having downloaded and installed your desired version of JACK, it is time to begin the configuration process to get things up and running at a minimum. In order to set JACK up, we need to call upon the right program from the JACK installation, as more than one program (as far as the OS cares) was installed. For Windows and Linux users this will be called Jack Control.
Once you have Jack Control open, you may or may not be greeted with the Jack Control window. If not, check your star bar in the lower right hand corner for a little 1/4 inch audio jack icon and click it to show Jack Control.
Jack Control is essentially your interface to the JACK server, which is what handles all the necessary audio routing. However if Jack Control currently shows JACK running, you will need to stop it in order to configure it for your personal setup. After you stop JACK, click on the setup button and enter the setup window for JACK.
For the most basic JACK setup you will need to perform the following inside the setup window:
- Go to Parameters>Driver and choose PortAudio. PortAudio is an audio library that supports all the major connections, such as CoreAudio and ASIO, and is the most versatile for our needs.
- Under Parameters>Interface, choose your desired audio interface for playback. If using a CoreAudio or ASIO device, make sure you choose the appropriate option; IE MotuASIO, RmeASIO, FocusriteASIO.
- At Parameters>Input Device and Output Device ensure the correct hardware devices are chosen. They correspond with the above Interface option.
- To make sure JACK starts smoothly, we should also set the Timeout option to its max as well (10,000).
- Save your settings and restart Jack Control. Assuming you see no errors pop up (these are in the Messages Window), JACK should be running!
- To use JACK, enter your DAW and choose Jack Router as your audio device, and sound should flow from DAW>JACK>Hardware>Ears.
If Jack Control does throw you errors, try closing and restarting JACK. Sometimes JACK fails to connect with the hardware, and just needs to be closed and opened again.
Install and Setup for OS X
After having downloaded and installed JACK OS X, we can begin to configure it. Just like with the PC and Linux setup, we need to know the appropriate program to open to use JACK on OS X. While it was called Jack Control before, on OS X it is called Jack Pilot. It can be found in your applications folder.
After Jack Pilot is open you will want to follow the following steps for a basic setup:
- With Jack Pilot open go to the top left portion of the screen and go to Jack Pilot>Preferences.
- Once inside the preferences, go to Driver and make sure it is set to CoreAudio.
- For Input and Output, make sure each is set to your desired hardware interface, just as the PC and Linux setup.
- Save your preferences, and in Jack Pilot start the Jack Server.
- Go to your DAW and choose Jack Router as your audio device.
- Back in Jack Pilot and under Routing, insure you are routing your DAW out to the hardware interface.
If you are having issues hearing JACK on OS X, go to your Audio MIDI setup and try setting your audio input and output to JACK. If you want to listen to YouTube with JACK, for example, you will need to do this.
2. Internal Routing with JACK
Adding Virtual Ports
With a basic implementation of JACK now set up, we can begin to tweak JACK to our needs—internal routing. For those of you with larger 8-channel interfaces, you probably have noticed a slight problem with JACK: you do not have all eight microphone inputs available anymore! This is because we need to tell JACK how many inputs we want (both in and out).
For OS X users, simply adjust the Virtual I/O settings under Preferences until your hearts content and you should be good to go. For Linux and PC users however, things are not so easy. While the Channel I/O option sounds like a perfect match, it really does nothing most of the time. Instead we need to edit an .INI file.
- Close down JACK, as well as any connected apps.
- Go to where you installed JACK (most likely C:\Program Files(x86)\Jack).
- In the 32 or 64 bit folder (depending on what version you are using) there is a file called JackRouter.ini
- Open JackRouter.ini with Notepad, and change the input and output values to however many channels you want. Presto!
- Restart Jack Control, enter your DAW, and you should now have a multitude of inputs and outputs at your disposal.
The adventurous among you probably chose a high number like 16 or 32 inputs and outputs, and noticed it all still worked. But why? Your interface doesn't have that many ports right? You are correct, but the I/O we defined just now was for JACK, not our interfaces. Essentially these I/O are virtual connections used inside JACK.
Thankfully JACK automatically knows to map your microphone inputs to the same number virtual port, hence why Mic1 appears on In1, Mic2 on In2, etc. But we can use these virtual ports to connect multiple audio feeds to multiple locations.
Routing with JACK
If you leave your DAW open and head back to Jack Control (or Jack Pilot for OS X) then to Connect (Routing for OS X), you will be meet the all powerful routing hub of JACK. Here you will see all currently available inputs and outputs and where they are currently routed.
Any open application with audio capabilities will have its own subset of connections, while your audio interface should show up under System. By highlighting an input and output, we can select the Connect or Disconnect options to manually change the audio connections ourselves.
You didn't want Mic1 on In1? Just disconnect it. Want to route a stand alone app into your DAW instead? Open the app and make the connection! It is this ability to connect virtual ports that allows us to connect two DAWs, a DAW and Skype, etc. Every time you open a audio application it will appear here and will disappear when the application closes.
Do keep this in mind however: You must still assign your inputs and outputs inside your DAW just like you would with a microphone! If you do not you will not hear anything. Promise!
However, making these connections every time can be a drag if you are doing it a lot. The solution? The Patchbay option of Jack Control. It has the same functions, but will automatically make the defined connections every time JACK opens.
As you can see, JACK is intensely powerful, and a wee bit on the confusing side. However once you pass the learning curve, there really is no better option for internal routing. Plus with options such as NetJack there is even the possibility of multi-channel audio over the Internet!
Also keep in mind that if you ever need to adjust your buffers or sample rate, you would change those options under Jack Control setup just as you would for a ASIO or CoreAudio interface. The only difference is you may first need to close out of your project completely, since changing Jack Control or Jack Pilot involves shutting down JACK.
Good luck, and until next time, thanks for reading!