FIG. 1: This is an overview of SynthMaker showing the Toolbox (the two columns to the left), the Schematic area (lower right), and the Navigation area (above the Schematic area). The Schematic displays a simple MIDI sine-wave synthesizer.
In the simpler early days of electronic music, many composers created their own circuits, partly out of necessity and partly because they had a specific idea they wanted to carry out. The growing sophistication and complexity of digital hardware and software today makes it much more difficult for nonexperts to create their own electronic-music circuitry and computer programs. This situation has given rise to software that provides a set of building blocks for creating soft synths and effects without having to do everything from scratch. Though Outsim SynthMaker isn't the first program of its kind, this recent entry into the market has a lot to offer in terms of ease of use, elegance, and power.
From the Ground Up
Working with SynthMaker is simple: you choose from a large selection of building blocks, which the program calls Primitives and Modules, and then wire them together to create designs called Schematics. Primitives are the most basic units, and Modules are created by combining Primitives, perhaps with other Modules. Some 300 Primitives and Modules come with the program, and it's also very easy to create your own Modules and add them to the library.
When you launch SynthMaker, you'll see a screen divided into three main work areas (see Fig. 1). To the left are two columns collectively called the Toolbox, where you select the Primitives and Modules for use in your Schematic. A large grid-covered work area dominates in the lower right. This is where you drag Primitives and Modules and hook them together. Above the Schematic area is the Navigation area, which provides an overview of your project and a place from which you can easily jump from one section to another (a useful feature as your Schematics become more complex).
Modules are organized by category. Many categories — for example, Maths, MIDI, Effect, and Control — are so obvious, you'll typically be able to find what you want without consulting the manual. Notice in Fig. 1 that the word External has been selected, so the Toolbox shows only the five External Modules. (External Modules pass MIDI and audio data between the program and your computer.) You can also locate Modules by selecting the data type they use or by typing keywords into the Search field.
When you create your own Modules, you can either add them to an existing category or create a new category. Modules can have front panels, so any combination of items such as knobs, sliders, and level meters can be included.
Wires and Data
One of SynthMaker's striking features is its colorful curved connecting wires (see Fig. 2). You bend the wires by clicking on any part of them with the mouse and dragging, very much the way you would physically move an actual piece of wire around other components if you were making a real electronic circuit. Curved wires help keep your Schematics clearly organized and pleasing to the eye.
FIG. 2: A striking visual feature of SynthMaker is its flowing curved wires with colors that show the type of data they are carrying.
There are two general types of data that travel through wires: stream and trigger. Stream data, as the name suggests, is continuous, passing through at the sampling rate, whereas trigger data is sent only when a change is made in that data. A simple example of trigger data is the output of a control knob Module: changing the knob position sends the appropriate floating-point number or integer down the line to all other connected Modules. Trigger data can be Boolean (true/false), floating point, integer, or string, and there is also support for arrays. An array is simply a list of items of the same type. You might use an array of integers to store a melodic idea, or a string of floating-point numbers to represent notes in a microtonal scale, or an array of strings that give the names of various chords you are using in a Schematic.
Stream data can be Mono or Poly. A Mono stream allows only one channel at a time and always has data flowing through it. A Poly stream allows more than one channel (an example is a synthesizer that is playing more than one note) and is active only when data is being sent. There's also a category called MIDI, which is one of the Special Data types. In a typical situation, MIDI data would be transmitted by an external device and would be immediately converted to a Poly stream within SynthMaker. One advantage of this approach is that in Poly streams, you are not limited to 127 discrete pitch and Velocity steps as you are in MIDI.
Data types are color coded and are also identified by unique symbols. That makes it easy to tell what type of data a Module's inputs and outputs are associated with, and, by looking at a wire's color, what sort of data it is carrying. (Notice, for instance, in Fig. 1 that a red wire is carrying MIDI data, white wires are carrying Poly stream data, and a blue wire is carrying Mono data.) You are prevented from hooking incompatible data types together. On the other hand, if you connect, say, a float to an integer, an automatic conversion is made by simply dropping the fractional part of the number.
VST and Standalone Apps
SynthMaker lets you create standalone applications or VST plug-ins, an extremely valuable feature. The process of doing this is ridiculously easy.
First, you select all the Primitives and Modules that will make up your soft synth, and choose the Make Module command. You can see the result of this in Fig. 3: the internal workings of Fig. 1 (the M to P, Sine, ADSR, and Poly to Mono Modules) have been placed inside the Module, and I've added a label to name the synth, a small grouping graphic to set off the ADSR knobs, and a panel color to give it a simple gradated gray appearance.
After you've created a Module that contains your soft synth or effect, select it and click on the VST or EXE tab beneath the Module. You'll be prompted to give the file a name and indicate where it should be saved, and the plug-in or standalone application is then created in seconds. SynthMaker provides a number of Modules that let your VST plug-ins communicate with the host application (for example, providing the tempo, time signature, play status, and the like). There is also a Preset Manager Module that allows you to easily create and manage presets.
FIG. 3: The simple sine-wave synth of Fig. 1 has been turned into a single Module with a functional panel. Clicking on VST or EXE on the tab beneath the Module will turn this Module into a VST plug-in or a standalone Windows application.
In this early stage of its development, SynthMaker provides a useful collection of oscillators, filters, effects, controls, tools for building distinctive display panels and user interfaces, many Modules for manipulating data, and much more. You can create a fully functional standalone classic synth or VST effects plug-in in just seconds. Obviously, more time is needed if you're creating your own inventions from scratch. And if something you're looking for isn't in the collection of Modules and Primitives that come with the program, you can often find it on the SynthMaker Web site. (Two examples I found there are a great-sounding physically modeled plucked-string Module, and a toolkit of frequency-analysis Modules.) I expect that the organization and extent of these online resources will develop more fully over time.
I especially like the idea that you can dream up an idiosyncratic sound or effect for a particular purpose and implement it relatively quickly. I love tone clusters, for instance, and enjoy creating rich additive-synthesis Schematics where notes are added to what you're playing based on a combination of harmonic formulas, random numbers, and time delays. There is also a Code Module that lets you write your own code in an elegant, high-level language that is both powerful and surprisingly simple. In my Frequency Sweeper, for example (see Web Clips 1 and 2), the Code Module was where I implemented the frequency changes you hear.
SynthMaker has three help documents: a User Guide, a Tutorials Guide, and a Component Reference. The User Guide provides an excellent overview of the program. The Tutorials Guide gives a good introductory lesson, but more tutorials on specific topics and techniques would be useful. The Component Reference is clear and terse. Personally, I'd like examples of typical ways each Primitive or Module is used and perhaps a “see also” reference pointing to other Primitives and Modules that are related to or commonly used with the item you're reading about.
There is also a user forum and wiki on SynthMaker's Web site populated by a vibrant and knowledgeable user community. It would be useful if, in time, a more-extensive and -organized user library of Modules and Schematics could also be provided on the site (see Web Clips 3, 4, 5, and 6 for examples of users' Schematics).
SynthMaker is an elegant, powerful program that is easy to learn and fun to use. It's not difficult to get started, and there's no limit to what you can do as your understanding deepens. Being able to create your own professional-looking VST plug-ins and standalone applications is quite exciting. SynthMaker gives composers and producers a tool that can help them develop their own unique voice in electronic music.
Peter Hamlin teaches composition, theory, and electronic music at Middlebury College and plays in the live electronic improv band Data Stream.
sound-programming environment Personal Edition (noncommercial use only) $133 Standard Edition (unrestricted use) $255
PROS: Easy-to-use, elegant, and functional user interface. Can produce standalone applications and VST plug-ins. You can easily create your own Modules. Curved wires keep your Schematics clear and attractive.
CONS: Could use more examples in the documentation and a more extensive and well-organized library of third-party or user-created Modules.
FEATURES 1 2 3 4 5 EASE OF USE 1 2 3 4 5 DOCUMENTATION 1 2 3 4 5 VALUE 1 2 3 4 5