The Linux Softsynth Roundup
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.
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:
Next, prepare RTSynth for receiving data from the pipe:
RTSynth < $HOME/tmp/midififoFinally, 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/midififoNow 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 | RTSynthThese 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.
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 www.linux-sound.org/sounds 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.
- Promise Theory—What Is It?
- New Products
- Integrating Trac, Jenkins and Cobbler—Customizing Linux Operating Systems for Organizational Needs
- New Products
- RSS Feeds
- Tech Tip: Really Simple HTTP Server with Python
- Raspberry Pi: the Perfect Home Server
- EdgeRouter Lite
- Non-Linux FOSS: Remember Burning ISOs?