At the Sounding Edge: Using QSynth and QJackCtl
In last month's column, I introduced seq24, a minimal but powerful MIDI sequencer. The final screenshot for that column shows off seq24 at work here in Studio Dave. In that screenshot you can see two of my favorite Linux audio programs, Rui Nuno Capela's QJackCtl and QSynth. In this month's column, we look at those applications more closely to learn what they do and how you can use them in your own Linux MIDI music workstation.
QSynth and QJackCtl are GUI front-ends for other software. QSynth provides a friendly user interface for the fluidsynth soundfont-based synthesizer. QJackCtl supplies a similar interface for the JACK audio server/transport control system. Both applications use a recent version of the Qt graphics toolkit and up-to-date versions of their other required components. Complete instructions for installing and configuring QSynth and QJackCtl can be read on their respective Web sites (see Resources), and most of the necessary software is included in mainstream Linux distributions. JACK and fluidsynth typically are not found in mainstream distros, but the QSynth/QJackCtl Web sites include URLs for those and all other required parts.
When I refer to a feature of QSynth or QJackCtl in many instances the feature really belongs to the underlying application. The GUIs organize the available functions of fluidsynth and JACK for easier access and control, so for convenience I've written as though QSynth and QJackCtl are complete in themselves.
JACK is an audio server and transport control system designed for low-latency and robust performance up to professional levels of use. Given a properly tuned base system--low-latency kernel, optimized disk throughput and so on--client applications can be routed and connected freely, sharing audio data without dropouts and potentially working with synchronized transport control. The system has been adopted throughout the Linux audio development community and has become a necessary part of any modern Linux-based music and sound production system.
JACK can be launched and controlled from the command prompt. But, when working in X, it's much nicer to use a GUI to configure the parameters of the JACK system. QJackCtl provides that GUI.
If you're running an audio-optimized Linux system, such as AGNULA/Demudi or Planet CCRMA, QJackCtl either is activated by default or is available as a menu item. If you start QJackCtl from the command prompt you can add the --help option to see a few possible startup options.
Figure 1 shows off QJackCtl's main panel. Its buttons control the JACK system active state (start/stop/quit), messaging and status reports, device connection management, transport control (play/pause), the setup configuration and a program information pop-up. The main panel also includes a visual display of the information reported by the status button.

Figure 1. QJackCtl
Click the Setup button to open the system configuration dialog shown in Figure 2. This article is not about JACK, so I am going to skip a detailed explanation of JACK's parameters. QJackCtl attempts to configure itself with sensible defaults, but you will be able to tune JACK for better performance as you learn more about its capabilities. (See the JACK reference materials for more information).
The Setup panel contains tabs for startup/shutdown scripts, font display settings and some miscellaneous options. The Display tab includes two items of special note, an option for connections to be drawn as Bezier curves and an option for renaming the clients and their ports. They may not seem so remarkable, but they are thoughtful and useful touches.
Assuming you have a working system, you now can click on the Start button to start using JACK. Figure 3 demonstrates QJackCtl at work with my M-Audio Delta 66. JACK typically handles only one soundcard at a time, so I have separate server configurations for my SBLive and Delta 66 cards. Figure 3 also shows the system status represented by the status panel and its visual display.
Now that we have a running JACK system, we can use it with QSynth. However, before making the connections, let's look at QSynth.
Similis sum folio de quo ludunt venti.
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Sponsored by AMD
If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.
Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.
Sponsored by ActiveState
| Non-Linux FOSS: libnotify, OS X Style | Jun 18, 2013 |
| Containers—Not Virtual Machines—Are the Future Cloud | Jun 17, 2013 |
| Lock-Free Multi-Producer Multi-Consumer Queue on Ring Buffer | Jun 12, 2013 |
| Weechat, Irssi's Little Brother | Jun 11, 2013 |
| One Tail Just Isn't Enough | Jun 07, 2013 |
| Introduction to MapReduce with Hadoop on Linux | Jun 05, 2013 |
- Containers—Not Virtual Machines—Are the Future Cloud
- Non-Linux FOSS: libnotify, OS X Style
- Linux Systems Administrator
- Validate an E-Mail Address with PHP, the Right Way
- Lock-Free Multi-Producer Multi-Consumer Queue on Ring Buffer
- Senior Perl Developer
- Technical Support Rep
- UX Designer
- Introduction to MapReduce with Hadoop on Linux
- RSS Feeds
- One advantage with VMs
1 hour 6 min ago - about info
1 hour 39 min ago - info
1 hour 40 min ago - info
1 hour 41 min ago - info
1 hour 43 min ago - info
1 hour 44 min ago - abut info
1 hour 46 min ago - info
1 hour 47 min ago - info
1 hour 48 min ago - info
1 hour 49 min ago
Featured Jobs
| Linux Systems Administrator | Houston and Austin, Texas | Host Gator |
| Senior Perl Developer | Austin, Texas | Host Gator |
| Technical Support Rep | Houston and Austin, Texas | Host Gator |
| UX Designer | Austin, Texas | Host Gator |
| Web & UI Developer (JavaScript & j Query) | Austin, Texas | Host Gator |
Free Webinar: Hadoop
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Some of key questions to be discussed are:
- What is the “typical” Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?





Comments
Latency w. Delta 66 and Fluidsynth?
What kind of latency do you get from the Delta+Fluidsynth combo? I have a MIDI instrument (Akai EWI 4000s) and I'd like to send MIDI from the EWI to the computer and have it render the sounds. But with my current, (and crappy) onboard soundcard, the latency is simply terrible. I'd like a MIDI-in => audio-out latency of something < 10ms; is that feasible at all?
Cheers,
/Martin.
akai 4000s
Hiya,
I've been trying to edit the patches on my EWI 4000s from my Debian box with no success. I successfully got the Uniquest software installed under Wine, but can't seem to get it to find the EWI. I configured it with OSS drivers to my emu10k (SB Live) card, but no luck. Any pointers? Thanks!
cant find ewi
My Uniquest software can't find my ewi too.
Do you know how to solve this?
Bird.
Hammersound
You forgot to put Hammersound in the Resources. Here is the URL:
http://www.hammersound.net/
Thanks for this article.
In the soundfonts-list (Figur
In the soundfonts-list (Figure 7 - Soundfont Selector)
select a soundfont with right mousebutton and choose edit.
You now can set the offset (wich is the bank number !)
This way you can play different soundfonts on different banks, without
adding another qsynth-engine.
doesn't work in ubuntustudio default install
tried, but that edit button shows up under the mouse cursor, but doesn't work. nothing happens, no dialogs or choices.
:-(
niyam
Author's reply
Thank you, I didn't realize that's what the Offset label meant.
I'm still learning something new everyday... :)
Best,
Dave Phillips
Author's addenda
Two additions:
To select a new synth engine in QSynth click anywhere in the bottom strip of the GUI. You don't have to click on just the qsynth1 tab (see Figure 4).
The Options dialog also includes a selector for a very handy VU meter (not shown in the screenshots, sorry about that). The meter indicates the sum of amplitudes from each engine, making a handy tool for avoiding clipping (i.e. amplitude distortion).
Best regards,
Dave Phillips