You're walking down the street, sniffing the daisies. A car goes by, packed with cool guys cruising at high volume: Doof! Doof! Doof! Doof! Weee! Rh-rh-rh-rh-zhuuuu. You've heard that music before: four-on-the-floor kick drum, bass synth taking up most of the picture, some juicy chord stabs, a plinky riff.
And you wonder: It's loud and full, but it doesn't have many simultaneous parts like the music of previous decades. Why is that?
The answer probably lies in the technology used. The music was mainly created on a computer, using software synthesizers, also known as virtual instruments. The PC's speed limited the number of simultaneous voices and their complexity, promoting grandiosity rather than symphonic subtlety. Musicians tailor their music to fit the technological opportunities, and the most exciting opportunities currently come from virtual instruments.
Some virtual instruments, most made with SynthEdit,a drag-and-drop synthesizer
design program
This is the first of a series of three articles road-testing SynthEdit, a shareware program that has become a major force in creating virtual instruments for Windows and Linux using the VST plug-in format. Whereas most virtual instrument users stick to preset sounds or tweak them slightly, with SynthEdit you can design your own perfect instrument and personal sounds from the ground up.
Don't worry if you're already confused by all the jargon: this is an exciting, quirky, and rich area, and I'll explain many terms along the way.
What are these virtual instruments? Typically, they're small software applications that run from inside a host program such as a MIDI sequencer. To trigger and shape notes on a virtual instrument you may send it data from the host sequencer, an external sequencer, a MIDI keyboard, or other control surface. The host may also provide mixing and effects capabilities.
Virtual instruments have given the home or laptop-based musician unprecedented access to new sounds and new ways to make them, especially with the availability of high-class, free, or shareware VST plug-ins such as the Greenoak Crystal synthesizer, Ichiro Toda's Synth 1 Nord emulation, RGC Audio sfz sample player, Big Tick Angelina choir synth, Ticky Clav Clavinet emulator, and the Tweakbench Tapeworm Mellotron emulator. Effects processors have been virtualized as well; examples include the Ambience and SIR reverb units and Endorphin compressor.

More SynthEdit virtual instruments; note the similarity to classic ARP
synths
VST stands for Virtual Studio Technology, which recreates hardware instruments and effects in software, often with a photorealistic control panel onscreen. It was originally developed by the German music software company Steinberg for its Cubase sequencer program. Steinberg offers a C++ library for creating VST effects and synthesizers.
Almost all major audio programs support VST. PC programs typically look for VSTs in a common directory, such as VstPlugins, close to the root or under the application's installation directory. They may also look in the directory set in a %VSTPLUGINS% registry entry. On PCs, VST plug-ins are .DLLs, sometimes with extra patch banks or samples provided as separate files.
As mentioned, VST instruments must be played from a host: SynthEdit itself is such a host and even provides an onscreen keyboard. At a minimum, the host accepts MIDI data, and the VST synthesizer generates audio data. If you want to run VST instruments without a fancy host program (for example, if you want to use the computer as a sound module for live performance from your MIDI keyboard), check out Herman Sieb's SAVIhost (Windows) or the Ugly VSTi Interface (Mac). Note that if you don't have a fast CPU, low-latency soundcard, or optimized drivers, virtual synth modules may be slow to speak, to use the term favored by cathedral organists. Another option is to use a standalone hardware VST host such as the Muse Receptor.
One important factor in VST's success is that it supports parameter automation: The host and the VST instrument can exchange the settings of each knob or control on the VST's GUI, allowing the users to "play the panel" rather than being stuck with static settings. Each VST also may have support for receiving control information such as vibrato, brightness, and portamento (glide) over MIDI.
The VST application programming interface (API) is defined for both Windows and Mac OS; however, VST modules need to be compiled separately for each platform. So when you download a VST module, make sure to get the correct one for your platform, if it's available.
VST is not the only game in town. Apple and Microsoft also support their own APIs—Audio Units and DirectX, respectively—and there are many more plug-in formats. There are also non-VST hosts. The most notable include Buzz and AudioMulch, which, like SynthEdit, allow you to connect modules into complex studios. To my ear, Buzz sounds smoother than SynthEdit, while AudioMulch allows much more sophisticated digital signal processing (DSP) and experimentation.
One very popular use of VSTs is to create emulations of older synthesizers. Musicians who do not want the problems of geriatric hardware get to experience retro pleasures; venerable manufacturers such as Korg, PPG (now Steinberg), and EMS can resurrect classic designs; and new developers such as Arturia get a more easily sellable target.
With a USB MIDI keyboard, you can play your virtual instrument like a real
one. The Korg
Legacy Collection of software synths includes this compact controller
that's modeled on Korg's classic MS-20 analog synth. Korg and other manufacturers
also make controllers with full-size keys.
SynthEdit is a phenomenon. A shareware program in very late beta, it has been used to make hundreds of synthesizers and signal processors. The quality varies enormously, from amateurish, naive efforts that just use stock modules in the least innovative way, to slick, professional-quality plug-ins, many featuring custom modules written with the SynthEdit C++ Software Development Kit (SDK). The variety is such that the front page of the KVR Audio web site, a portal and community for users of VSTs, divides VSTs into those made with SynthEdit and all the rest.
SynthEdit acts primarily as a standalone modular synthesizer, where you connect virtual patch cords between modules, as on the old hardware instruments. But it has taken center stage because of its unique functionality: After you've created a system, you can save it as a VST for use by other VST hosts. SynthEdit has a thriving and helpful developer community; for example, SynthEdit creator Jeff McClintock puts out a new beta once or twice a week, fixing bugs or making improvements almost as soon as they're reported.
It is now 25 years since I programmed a big modular Moog system, and I find SynthEdit brings back the same kind of homemade fun. The program has brought me the chance to try out the synthesizer configurations that have been floating around in my head ever since 1980. A common complaint among SynthEdit developers is that they started developing synths to realize their musical dreams but found it so much fun they never actually get to making music. So beware!
The modules in SynthEdit include:
Mixing and matching different methods is the order of the day. Because SynthEdit schedules each module one at a time to process a buffer full of information, frequently with 96 or more samples, synthesis techniques that rely on small delays cannot be done very successfully by connecting existing modules. That includes most of the physical modeling, FFT, or convolution-based techniques that produced much of the sound of the last decade. However, there is a network of C++ programmers who make and share custom modules using the SynthEdit SDK that implement physical modeling (in particular), as you can hear in the audio examples below. So SynthEdit is far from being purely retro.
You can download a stable release from the SynthEdit web site and the latest beta and help files from a special beta page. A Yahoo group, SynthEditUsers, hosts community discussions. The group is very active and friendly, and features frequent contributions from most of the developers mentioned in this article. Often the developer of one synthesizer will also provide a bank of presets for another developer's synths.
Creating a synthesizer in Synth Edit can be as simple as connecting audio
modules. (View bigger image.)
Above is a screenshot of a SynthEdit project. At the top is a virtual MIDI keyboard to allow us to trigger notes without needing an external keyboard. At the bottom left, partially obscured, is the front panel we will be using. At the bottom right is a window with various modules connected together. The black boxes with green lines are waveshapers used to generate different characteristic waveforms. Finally, at the top right is the Audio Output module, to let us hear the results.
A sound is worth a thousand words. Most of the following MP3s were made by the designer of a particular synth to demonstrate the sound of that instrument, rather than be pure music. And most of them are 100 percent SynthEdit, though often people use other tools for drums and final effects. Note: Most samples are hosted offsite, so their availability may vary. All MP3s open in new windows.
| Artist | MP3 | Description |
|---|---|---|
| Krakli (Ian Webster) | PolyEz demo | Virtual analog (pad) |
| Krakli (Ian Webster) | Rticul8 | Physical model (plucked) |
| Novakill | whyWONTyouDIE | VA and Phase Distortion |
| Odo | Odo Machines | Various VA synths, with campy vocoder MC |
| Guido Scognamiglio | Mr Ray Presets | Physical model |
| Mik Sybrandt | Oryend | Tends towards Korg sounds |
| SynthEdit Labo | Receptor Pad demo | FM, with the modulator signal coming from SoundFont samples |
| Ugo | Impact | Virtual analog |
| Ugo | Traveler | Physical model (plucked string) |
| Etric Van-Mayer | Mindless Shapeshifter | Virtual analog + FM |
| Xoxos (Rurik Leffanta) | When Everyone Should Receive an Instrument | Quite a few SynthEdit users are interested in semi-automatic composition. This demo is all done in SynthEdit but uses several external modules. The performer read random lyrics into a microphone, and the software generated a stochastic (algorithmic) melody. Both are combined by a vocoder module into a hysterical song. The backing music is also stochastic. For a slightly more conventional piece, Xoxos also created "Breath Cube," the world's first (free) robot singer. (Hear an MP3.) |
The less interesting SynthEdit synths have given the program a reputation for being CPU-hungry and sounding the same. There is more than a grain of truth in this. Commercial VSTs can be written in assembler using the special DSP-derived multimedia instructions built into modern CPUs, which are not utilized by standard C++ compilers; furthermore, the commercial imperative keeps developers from adding extraneous features, whereas SynthEdit positively encourages exploration and growth. And many SynthEdit synths are constructed from the same stock oscillators and filters, arranged in the same basic Minimoog-style architecture with just cosmetic differences. It is quite like the situation with the first polyphonic synthesizers in the late 1970s and early 80s: Two companies started making oscillator and filter chips, and most synths were basically designed by selecting between the two choices, resulting perhaps in a narrowing of the range of sounds compared to the more experimental monophonic days.
However, a really good synthesizer design will involve many other factors apart from the oscillator and filter design. Two important ones are how to compensate levels so that changing tone (by pulse-width modulation, waveshaping, high-pass filtering, and so on) does not cause volume dropouts, and whether the envelope generators (typically labelled "ADSR" for Attack, Decay, Sustain, and Release) provide exponential or linear slopes.
SynthEdit also allows the creation of synthesizers with novel architectures that would otherwise not be developed. Here are some commercial SynthEdit creations, typically virtual analog synths with a lot of attention paid to good presets and GUI. If there is any doubt about the "world" in World Wide Web, the links below should dispel it! Australia (Novakill, the AudioMulch program, me), Denmark, Germany, Italy, Japan, New Zealand (Jeff McClintock), Russia, Spain, Sweden, UK, and the USA are all represented.
| Plug-In | Developer | Description |
|---|---|---|
| Adventus | Gino Côté | Made for thick trance and rave music (Hear a demo.) |
| GreenMachine Amp II | Wurr Audio Engineering | Tube amplifier simulator |
| Jup 6 | EFM | An emulation of the Roland Jupiter 6. EFM also makes many other emulations as well as real (solder and chip!) modular synths. |
| Nebula 42 | Algomusic (Tim Conrady) | Virtual analog paired with SoundFont player. Includes sophisticated arpeggiator. |
| Performer | SuperWave | Virtual analog paired with FM |
| Synpack | EVM | A great value pack with 12 synths and two rhythmic devices |
| Plug-In | Developer | Description |
|---|---|---|
| AgonyX | Prodyon | Virtual analog, especially for trance music. (Hear a demo.) |
| ARP 2600 | Richard Brooks | Look-alike recreation of an ARP 2600 semi-modular synth. Brooks is very interested in providing skins based on famous modular synths on top of standard SynthEdit modules, rather than slavish sonic emulation. A great site. |
| Drummatic | E-phonic | Virtual analog drums |
| ELOTTRONIX XL | Elogoxa | Frippertronic-style long tape delay |
| Mr Ray | Guido Scognamiglio | An electric piano emulator based on physical modeling |
| Organized | Guido Scognamiglio | An organ. Istvan Kaldor's free DirtBag is highly regarded as well. |
| Ricko-3A | Rick Jelliffe | A vintage synth emulator inspired by Roland's 1974 SH-3A monosynth |
| Plug-In | Developer | Description |
|---|---|---|
| etEquet | Krakli | String ensemble sounds. The synth called reticul8 is also very good. |
| Nerve | Neko Sudios (Stefan Toivonen) | Dual virtual analog with arpeggiator, and some extras. Good for trance and electro. Very good sound. |
| Oud | Safwan Matni | Ultra simple plug-in: the sound of the Oud with various middle Eastern tuning options. |
| Receptor | SynthEdit Labo | FM synth using SoundFonts. This site also hosts Japanese tutorials and forums for SynthEdit |
| Satyr | Land of Cockaigne (Mikko Hyyryläinen) | A large virtual analog. The tiny Oberon has a great panel design and may be easier to handle. |
| String Theory | Ugo | Physical model of plucked sounds |
| SuperWave P8 | Christopher Gill | A virtual analog synth with special waveshapes. An enhanced version of this, the Performer, is also available commercially at SuperWave's site. This is a free version. |
Note: These tables were made at the beginning of 2005, so the links may change. Check with sites such as KVR Audio for news on recent creations.
I hope you've enjoyed this introduction to the potential of SynthEdit. Part 2 of this series, "Outside the Ricko-3A," will begin the SynthEdit road test. I'll provide some general info on types of softsynths, and then introduce an example synth I developed, the Ricko-3A. I'll introduce block diagrams, explain how I made the GUI, and include audio examples and an appraisal of the design experience.
Part 3, "Inside the Ricko-3A," is the under-the-hood part. It will give more details on specific operation of the SynthEdit application, as well as the kinds of modules available. Stay tuned! (Of course, staying tuned is much easier with software synths than the original analog ones.)
Copyright © 2007 O'Reilly Media, Inc.