Jack is a software package that connects a number of different applications to an audio device, such as your computer speakers, as well as allowing your applications to share audio between themselves. Jack runs on GNU/Linux, Solaris, FreeBSD, OS X and Windows.
QjackCtl provides a graphical user interface to control the Jack sound server daemon. QjackCtl is specific to the Linux Audio Desktop infrastructure.
I use QjackCtl to bind the MIDI signals received on ttymidi to the drumkit sounds in Hydrogen which output to the computer speakers. Below are installation and configuration instructions for QjackCtl.
- Using Ubuntu Software Center search for QjackCtl and select Install
- Using the terminal: sudo apt-get install jackd qjackctl
Start QjackCtl from Applications > Sound & Video > Audio Production > Jack Control
QjackCtl displays a message window to show you log messages. You may see xrun errors and other output that can help you understand problems with your installation that are keeping QjackCtl from running optimally. This image is a quick view of my QjackCtl Settings.
The objective is to get the Latency to its lowest setting possible without experiencing xruns. Installing jack on a real-time operating system such as Ubuntu Studio will help reduce latency. There are a number of tweaks you can do to your system to run jack in realtime. My installation runs fine without the tweaks, but they may be useful depending on your environment.
Once jack is running without xrun errors you can start sharing audio between applications. To get ttymidi to send output to Hydrogen with the help of Jack, start QjackCtl and open the connections window.
Click on the MIDI tab and expand the system option under Readable Clients and Writable Clients. The two connections that are present are the Jack capture and playback options.
Next start ttymidi and notice the two new connections that appear under the MIDI system clients. midi_capture_2 and midi_playback_2 belong to the ttymidi application.
Start Hydrogen and notice the newly added midi_playback_3 option listed under Writable Clients. Highlight midi_capture_2 and midi_playback_3 and click the Connect button. This tells jack to take the input from ttymidi and send it to Hydrogen. Any time you restart ttymidi or Hydrogen or make any changes in jack you will have to run through this process again. The numbers will change so you need to watch the Connect MIDI tab when starting your programs to make sure you are connecting the correct capture and playback options for the desired applications.
Select the Audio tab and make sure Hydrogen is exporting sound to the speakers by connecting out_L to playback_1 and out_R to playback_2.
If everything is running and connected properly you should now be able to tap a trigger and hear sound coming from your speakers. Read my posts on ttymidi and Hydrogen for installation and configuration instructions.