At the Sounding Edge: Using QSynth and QJackCtl
The fluidsynth project provides Linux musicians with a free and open-source soundfont-based synthesizer. A soundfont is a soundfile format combining audio data and performance control data. Soundfonts are not merely played back, they require an engine (synthesizer) designed to apply the performance controls to the raw audio data. fluidsynth is such an engine.
Like JACK, fluidsynth can be run from the command line, but its configuration at the prompt can be a bit complicated (see 'man fluidsynth'). QSynth is the GUI solution to that problem.
Figure 4 shows QSynth's default appearance. The main panel is arranged clearly and is comprehensible. As with QJackCtl, QSynth employs helpful tooltips to clarify the function of each interface component.
Again, we start our little tour with the Setup panel. Options here include tabs for audio and MIDI driver configuration, soundfont bank selection and a summary of QSynth's default and current settings. QSynth supports audio and MIDI drivers for ALSA and OSS, a MIDI-only driver for MidiShare and an audio-only driver for JACK. In Figures 5 and 6, QSynth has been configured as an ALSA sequencer client and as a JACK audio client, respectively.
Click the Soundfonts tab to specify the soundfont banks you want to assign to the QSynth engine. As Figure 7 shows, you can list multiple banks, but only the last font listed is active.
Close the Setup panel and click on the Channels button to open the channel/instrument assignment panel shown in Figure 8. The maximum number of channels is determined in the Setup/MIDI tab, with a default of 16 channels to the allowable maximum of 256, all in increments of 16. Right-click on an entry in the Channels dialog and select an instrument from the soundfont instrument list seen in Figure 9. Repeat per channel as necessary.

Figure 8. Channels Dialog

Figure 9. Instrument Selector
QSynth is a multitimbral synthesizer, meaning that you can assign a different instrument to each channel for a mixed ensemble of independent players. Alternatively, you can assign a single instrument to multiple channels to create rich layered sound textures. Or, you can mix all of these methods as you please. To use different soundfonts at the same time, right-click on the engine selector tab at the bottom left corner of the main panel--labeled qsynth1 in Figure 4--to add another instance of QSynth to the fun. Each engine can access a different soundfont, with independent master gain and effects settings. With the right fonts, you might find that QSynth is all the synthesizer you'll ever need.
By the way, if you want to expand your collection of soundfonts, be sure to check out the listings at Hammersound (see Resources), which link to some excellent free fonts. You might also want to peruse the Linux Audio Users mail list archives for links to free fonts. Some list members have designed fonts for truly free redistribution, but the community still needs a truly free and open-source general MIDI soundfont.
At this point, return to QJackCtl and start the JACK server if it isn't already running. Click on the Connections button and select the Audio tab to make your JACK audio connections. Figure 11 illustrates one arrangement of multiple QSynth engines with independent output ports connected to the ALSA PCM input ports; it's a good example of how QJackCtl simplifies complex routing arrangements.
Now select the MIDI tab to set your MIDI connections. Here we find the same flexibility found in the audio tab, as shown in Figure 12. In that screenshot the input from my physical MIDI port--SBLive with adapter connected to a Casio CZ101 MIDI keyboard--is routed to the first QSynth engine. The first ALSA virtual MIDI port is connected to the second QSynth engine and to the EMU10k1 synthesizer on the SBLive. Finally, the last virtual MIDI output port is connected to the third QSynth engine and to the EMU10k1 synth. Again, a complex configuration is simplified by using QJackCtl.
Click the Patchbay button to view, edit and save/load your audio and MIDI connections as user-defined presets. Figure 13 illustrates this neat feature, showing the Patchbay preset defined for the connections in Figures 11 and 12.
We've made QSynth's audio and MIDI connections, so now it's time to put them to use. Figure 14 illustrates seq24 using QSynth with multiple engines, with each engine driven by a separate sequence in seq24. Remember, seq24 makes its MIDI connections internally, there's no need to use the MIDI Connections tab in QJackCtl. QSynth autoconnects to the ALSA PCM input ports, but you need to reconnect if you want to route QSynth's output elsewhere. Figure 14 also demonstrates such a connection, with one engine's output routed to a LADSPA effects processor in the JACK Rack, the output of which is sent to the ALSA PCM ports.
By the way, the screenshot in Figure 14 is included for demonstration only. QSynth's own effects processors, reverb and chorus, are quite serviceable, but they're not going to equal the performance of a dedicated software or hardware processor.
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
Built-in forensics, incident response, and security with Red Hat Enterprise Linux 6
Every security policy provides guidance and requirements for ensuring adequate protection of information and data, as well as high-level technical and administrative security requirements for a system in a given environment. Traditionally, providing security for a system focuses on the confidentiality of the information on it. However, protecting the data integrity and system and data availability is just as important. For example, when processing United States intelligence information, there are three attributes that require protection: confidentiality, integrity, and availability.
Learn more about catching the bad guy in this free white paper.
Sponsored by DLT Solutions
| Dynamic DNS—an Object Lesson in Problem Solving | May 21, 2013 |
| Using Salt Stack and Vagrant for Drupal Development | May 20, 2013 |
| Making Linux and Android Get Along (It's Not as Hard as It Sounds) | May 16, 2013 |
| Drupal Is a Framework: Why Everyone Needs to Understand This | May 15, 2013 |
| Home, My Backup Data Center | May 13, 2013 |
| Non-Linux FOSS: Seashore | May 10, 2013 |
- Dynamic DNS—an Object Lesson in Problem Solving
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- Using Salt Stack and Vagrant for Drupal Development
- New Products
- RSS Feeds
- A Topic for Discussion - Open Source Feature-Richness?
- Validate an E-Mail Address with PHP, the Right Way
- Drupal Is a Framework: Why Everyone Needs to Understand This
- Readers' Choice Awards
- The Secret Password Is...
- All the articles you talked
1 hour 40 min ago - All the articles you talked
1 hour 43 min ago - All the articles you talked
1 hour 44 min ago - myip
6 hours 9 min ago - Keeping track of IP address
8 hours 15 sec ago - Roll your own dynamic dns
13 hours 13 min ago - Please correct the URL for Salt Stack's web site
16 hours 25 min ago - Android is Linux -- why no better inter-operation
18 hours 40 min ago - Connecting Android device to desktop Linux via USB
19 hours 8 min ago - Find new cell phone and tablet pc
20 hours 7 min ago
Enter to Win an Adafruit Pi Cobbler Breakout Kit for Raspberry Pi

It's Raspberry Pi month at Linux Journal. Each week in May, Adafruit will be giving away a Pi-related prize to a lucky, randomly drawn LJ reader. Winners will be announced weekly.
Fill out the fields below to enter to win this week's prize-- a Pi Cobbler Breakout Kit for Raspberry Pi.
Congratulations to our winners so far:
- 5-8-13, Pi Starter Pack: Jack Davis
- 5-15-13, Pi Model B 512MB RAM: Patrick Dunn
- 5-21-13, Prototyping Pi Plate Kit: Philip Kirby
- Next winner announced on 5-27-13!
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