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.
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.
|Speed Up Your Web Site with Varnish||Jun 19, 2013|
|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|
- Speed Up Your Web Site with Varnish
- Containers—Not Virtual Machines—Are the Future Cloud
- RSS Feeds
- Lock-Free Multi-Producer Multi-Consumer Queue on Ring Buffer
- Non-Linux FOSS: libnotify, OS X Style
- Linux Systems Administrator
- Weechat, Irssi's Little Brother
- Senior Perl Developer
- Technical Support Rep
- UX Designer
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?