Configuring The Jack Audio-Connection Kit, And Changing Qsynth To Use It
Note: In my testing on Chromebook, the only case where I was able to get JACK to work, was in the case where an entire Linux system was installed within ChromeOS (the 'crouton' option). The instructions on this page are applicable to that particular environment.
Before trying to use JACK (qjackctl) on your system, you need to make a few preparatory changes:
First, you have to add your user name to the hwaudio group. You can do this by entering the following command in a terminal session:
sudo usermod -a -G hwaudio "$USER"
You have to logout, and re-start the Linux desktop for this change to take-effect.
You can check if the change worked by entering groups in a terminal session.
You find the graphical-user-interface for controlling the Jack Audio-Connection Kit (QjackCtl) in the application menu, under “Sound & Video”, or “Multi-Media”. Click on it to activate it. You may want to create a launcher icon for it on your desktop, but you can always get to it from the launcher menu.
When you launch it, a small window appears for it, but it will not start operating until you configure it. Its window looks like the following:
Click on the “Setup” button to configure it (as shown above). A dialog-box will appear that looks like the screen-shot below:
On Chromebooks, where you are installing in a virtual box within ChromeOS, or are installing into a complete Linux system installed within ChromeOS (called “crouton”), you need to place the cursor within the “Interface” combo-box, delete the text already there, and type-in cras – that choice (which you need) will not appear in the menu.
Newer versions of JACK show a graphical picture of the connections, which is pretty, but much harder to use. You can change the “Graph” button back to the “Connections” button, by un-selecting the “Replace Connections with Graph button” option, as shown in the screen-shot below:
The option (where the cursor is) to clear, restoring the use of the “Connections” button
QjackCtl is now configured, and ready to start running. You start it running by clicking the “Start” button, as shown in the screen-shot below:
If there are errors, you need to address the cause of the error, and fix it. You'll have to answer any error dialog-boxes that appear, before you can change the configuration, and there may be a delay before the next error-dialog box appears.
To change the configuration to fix errors, click the “Setup” button. After you change it, you'll have to click the “Start” button again.
Once you get it working (without errors), you might want to configure JACK so that it starts running automatically (without having to click the “Start” button).
To do this, click the “Setup” button, and then click on the “Misc” tab of the Setup window:
Click the “Start JACK audio server on application startup” check-box, as shown in the screen-shot above, then click the “OK” button.
For more information on JACK, refer to the JACK Audio Connection Kit web-site at the following link:
JACK Audio Connection Kit Web-Site
Assuming it starts running successfully, you are ready to re-configure Qsynth to use JACK.
Changing Qsynth To Use JACK Instead Of PulseAudio
To use Qsynth with JACK, you first need to make these changes.
If QjackCtl is already running, you need to terminate it by clicking on its “Quit” button. If you don't do this, you could cause your system to hang.
After making sure QjackCtl isn't running, launch Qsynth. Assuming you have added a 2nd engine to it (for use by the integrated MIDI player), you will have to repeat the steps below for that engine as well. Clicking the “Setup” button affects only the currently-highlighted engine-tab's engine.
Click the “Setup” button of the Qsynth window, to change the configuration of the currently-highlighted engine. A dialog-box will appear similar to the following:
Click on the “Audio Driver” drop-box, and select its “jack” entry, as shown in the screen-shot above. Then click the “OK” button.
It will ask you if you want to restart the sound server. Tell it NOT to restart the sound server. If you restart it now, you could hang your system.
Having done that, click on your other engine's tab (highlighting it), and click Qsynth's “Setup” button. Set its “Audio Driver” drop-box to “jack”, as you did with the other engine, and click the “OK” button.
Again, it will ask you if you want to restart the sound server. Tell it not to restart the sound server. If you restart it now, you could hang your system.
Repeat these steps for each Qsynth 'engine' you have configured.
Now, click the “Quit” button of Qsynth's window, causing it to exit, with the configuration safely changed.
At this point, launch QjackCtl, and when it finishes initializing, launch Qsynth, which should now be using JACK, and therefore will be running much more efficiently.
With Qsynth now depending on JACK, it is important to first bring up QjackCtl, before bringing up Qsynth. You also, you need to be aware that you can't use the Java Sound (Gervill) synthesizer when JACK (QjackCtl) is running. But where Qsynth is a better synthesizer, you shouldn't need to do this.
At this point, you are done. You can use your browser's “back” button to return to other sections you were reading.