The Linux Softsynth Roundup
The testing hardware included a generic machine with an 800MHz AMD Duron CPU, 512MB RAM and a 15GB IDE hard disk. The audio hardware consisted of two sound cards, a SoundBlaster SBLive Value and a SoundBlaster PCI128; a Casio CZ101 synthesizer was used for external MIDI keyboard input. I used Steve Ratcliff's pmidi MIDI file player, and I also employed a second computer running Voyetra's Sequencer Plus Gold under MS-DOS. The video system included a generic 19" monitor and a Voodoo3 graphics card. Audio output from the sound cards ran to a Yamaha DMP7 mixer then out to a 100-watt QSC power amplifier and a pair of Yorkville Sound YSM-10 reference speakers.
The low- and middle-level software included Linux kernel 2.4.5 patched for low latency, the ALSA 0.9.0rc6 package (audio library, drivers and utilities), the latest JACK and the LADSPA plugin sets from Richard Furse and Steve Harris. Other support software included Maarten de Boer's alsamixergui and Bob Ham's ALSA MIDI patch bay, both of which provide GUIs (and more) for the ALSA alsamixer and aconnect utilities.
Many of the synths profiled here include the recommendation to be run with root permissions, either as root yourself or by making the binary suid root. Doing so usually ensures a higher priority for the running application but is also considered a serious security risk if the user is on a network.
Apart from the security issues, I should explain that when a real-time process runs away from the root user the outcome is not pretty, and your machine may lock up entirely. In one test while running as root user, simply specifying an unrecognized MIDI device froze my system. So be warned. Running as root can indeed enhance performance, but you also are running risks. Run normal applications as a normal user as much as possible.
The Software Synthesis section of the Linux Sound & Music Software site includes a subsection of Softsynths & Samplers. More than 30 URLs are currently active, taking you to a variety of software synthesizers. Table 1 has pruned some of that variety by focusing on synthesizers capable of polyphonic (plays many notes at once) real-time output, ignoring off-line synthesizers and environments such as Csound or RTCmix. Due to their real-time nature, I have included beatbox programs and the MAX-like environments of Pd and jMax.
Because this article is a roundup and not a shoot-out, I'll profile only some selections from Table 1 and prune it a bit more. The profiles represent a cross section of the various synthesis methods, but I have purposely focused on the standalone softsynths.
Nick Dowell's amSynth is an excellent representation of the dedicated subtractive synthesis architecture. The signal flow is fixed in a classic design. The output of the two oscillators is routed through a filter and an amplifier, then that signal can be given to the effects (amSynth provides reverb and distortion) and/or modulation stages for final processing before heading to your sound card digital-to-analog converter (DAC). In classic synthesis, the main parts of this design are referred to as the VCO (voltage-controlled oscillator), the VCF (voltage-controlled filter) and the VCA (voltage-controlled amplifier).
amSynth includes some great-sounding presets. No General MIDI patch is set to support the General MIDI standardized map of instruments, but it does respond to incoming MIDI Program Change messages. Because amSynth is essentially a standalone single instrument that handles only one MIDI channel at a time, it is perhaps best used as a lead or pad instrument. It can be driven by a MIDI sequencer.
The full name for amSynth is Analogue Modelling Synthesizer. There are no real voltage-controlled components, so we might rightly wonder if Nick has been able to achieve his goal of modelling the sound of an analog subtractive synth. I'm happy to report that the sounds from amSynth are fat and lively, but you need not take my word for it. The excellent demos on the amSynth home page show off its sounds far better than I can describe here.
Similis sum folio de quo ludunt venti.
- My Childhood in a Cigar Box
- Tech Tip: Really Simple HTTP Server with Python
- Papa's Got a Brand New NAS
- Applied Expert Systems, Inc.'s CleverView for TCP/IP on Linux
- Panther MPC, Inc.'s Panther Alpha
- Rogue Wave Software's TotalView for HPC and CodeDynamics
- Simplenote, Simply Awesome!
- Returning Values from Bash Functions
- Debugging Democracy
- NethServer: Linux without All That Linux Stuff