The Linux Softsynth Roundup

Are you ready to rock? Now that you've got ALSA and kernel preemption, add software to turn your Linux box into a synthesizer studio.

Stefan Nitschke's RTSynth is one of my favorite softsynths. It is another excellent example of the patcher synth. A main canvas is presented, iconic modules are deposited and connected together on the canvas, and right-clicking on a module opens a dialog for editing its parameters. RTSynth is the only softsynth represented here that creates its sounds via physical modelling.

Figure 5. RTSynth

Physical modelling synthesis is capable of extremely realistic sounds. Some of RTSynth's patches are quite convincing. The examples on the RTSynth home page show off some amazing acoustic and electric guitar sounds in full arrangements with bass, drums and keyboards. RTSynth is a multi-timbral softsynth, complete with drumkits and effects processing, and the demos really showcase its capabilities as a single-solution softsynth.

RTSynth is ALSA- and JACK-aware. It is fully MIDI-capable under ALSA and the older OSS/Free kernel sound modules. On systems lacking the ALSA drivers, it is still possible to connect RTSynth to external processes, such as a concurrently running MIDI sequencer via the UNIX mechanism known as a named pipe. A named pipe provides an easy method of interprocess communication for programs that may have no other way to share data. Using RTSynth as an example, here's how you set up a named pipe.

First, create the pipe with the mkfifo utility:

mkfifo $HOME/tmp/midififo

Next, prepare RTSynth for receiving data from the pipe:

RTSynth < $HOME/tmp/midififo
Finally, you must indicate the named pipe as the preferred output device for the driving application. In the following example, I've used Simon Kagedal's clavier virtual keyboard:
clavier -o $HOME/tmp/midififo
Now you can play RTSynth directly from the virtual keyboard. You also can use a normal, unnamed pipe to route the output from a process into RTSynth using this type of command:
cat foo | RTSynth
These connectivity strategies are particularly effective in the absence of MIDI hardware and/or the ALSA virmidi driver.


Nick Copeland is perhaps best known for his SLab hard-disk recording system, but he also has given us the Bristol Synthesizer Emulator. This softsynth provides GUIs and synthesis engines for emulations of the Mini Moog, Moog Voyager, Sequential Circuits Prophet-5, Roland Juno-6 and Yamaha DX7 synthesizers. It also provides graphic interfaces and engines for the Hammond B3 and Vox Continental organs and the Fender Rhodes electric piano. Bristol even emulates a generic mixing board and the Yamaha Pro10 digital mixer, but they were not tested for this review.

Figure 6. Bristol

As shown in Figure 6, the GUIs are nicely drawn, but they are more than mere eye candy. Nick has emulated the controls and functions found on the original synths as much as possible; however, not all of a particular synth's features may be implemented yet, and Nick notes that some emulations (notably the DX7) still need some work. Meanwhile, all those switches and knobs and wheels can be flipped, twirled and rotated in real time with smooth response and fast parameter updates. Bristol accomplishes a rather daunting task by providing not only the look-alike graphics for its variety of synthesizers and keyboards but the sound-alike synthesis engines as well.

Running Bristol with ./startBristol -v -h lists the runtime options to give the synth a wide degree of performance customization. For example, I started Bristol with ./startBristol -alsa -seq -bufsize 2048 -voices 6, which launches Bristol in its default Mini Moog mode, declares ALSA as the driver source, registers Bristol with the ALSA sequencer, sets the sound-card buffer size (the default value is 1,024, but Nick recommends 2,048 for my SBLive) and restricts the polyphony to six voices (Bristol's default polyphony is 16 voices). Incidentally, Bristol can be run in multiple instances with simultaneous control, effectively letting you layer synths exactly like we did in the old days.

I would need much more space to describe each of Bristol's interfaces adequately. The example I've placed at demonstrates only the Mini Moog emulation, but it should give you an idea of what you can expect from this synth engine—some old-school synthesizer fun.


Similis sum folio de quo ludunt venti.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Is there a distribution that integrates all this?

VirtualFlavius's picture

I've been using Dyne:Bolic, which is very very nice, especially the Pure:Dyne flavor.

Is there a distro of that sort (not necessarily a live CD) that integrates all the components described above? Meaning, RT kernel with jack, alsa, etc' fully integrated and working properly, all the synths, good MIDI support, wide driver base and high performance on a standard PC.

Kind regards,


@L's picture

A very interesting and usefull article.

Thanks a lot

Wow! I had no idea!

Musician's picture

Absolutely amazing article! I had no idea Linux could do this! Thanks for introducing me to these! More articles like this please!