A fascinating program from Algorithmic Arts, SoftStepresponds to your playing in creative and spontaneous new ways. Play a major scale on your MIDI controller, and the software responds with an exotic microtonal cluster. Play a few more notes, and it responds with a soft, delayed version of the melody at a tempo determined by your playing Velocity. When you pause for more than a specified period, a long arpeggiated chord sounds. The harmony unfolds in response to biological information from genetic code, and a background rhythm responds to the patterns of a fractal image on the screen. Those are only some of the musical scenarios you can produce with SoftStep.
Algorithmic Arts describes SoftStep as “a Windows-based, modular MIDI step sequencer and algorithmic-composing program patterned somewhat after the modular analog step sequencers: the big ones, with lots of knobs and blinky lights.” On the Algorithmic Arts Web site, you can download a free introductory version called SoftStep Basic. There's also a fully loaded Pro version and SoftStep LE ($79), which is positioned about midway between the other two. The difference between them is the number of functions available. Although serious users will soon want to upgrade from the free version, SoftStep Basic provides more than enough for you to learn how to use the program and decide which level is best for your needs.
When you launch SoftStep Pro, you're greeted with an empty Workspace window. A menu bar at the top offers basic functions such as opening and saving files, creating modules, setting configurations, creating your own user functions, navigating the Workspace, and getting help (see Fig. 1). Below the menu bar are tools for creating a snapshot of a configuration and for storing and retrieving those settings. You can also launch the Composer utility, a playlist editor that lets you create a sequence of configuration snapshots. The Composer is useful for building large and varied compositions.
A metronome sets the master tempo, and the Run button acts as the Play control on a sequencer transport does. Monitor lights indicate MIDI input and output, quarter-note tempo ticks, and timing errors if they occur. You can show or hide a console of 16 faders. An indicator reminds you if the current configuration has changed since the last time you saved it.
A REALLY BIG WORKSPACE
SoftStep Pro's opening screen is just 1 of 16 work areas. The entire program is organized into four Banks of four Pages; the Banks are numbered 1 through 4, and the Pages are identified as North, East, South, and West.
The opening screen (Bank 1, North) is large enough for many typical configurations, but when you create a large, complex configuration that doesn't fit comfortably on one screen, you can span different Pages and Banks and switch easily between them. You select which Page is visible by clicking on buttons marked N, E, S, or W and toggling between the four Banks with another button. The program's modules can be interconnected across Bank and Page boundaries, so there are no limitations other than whether a Page is visible.
Pressing the Map button brings up an overview of all 16 Workspace areas, allowing you to keep track of the whole structure. You can click on any part of the Map overview to move to that Bank and Page. Such a system of organization works well: it avoids screen clutter and lets you organize your project any way you want.
ALL THE INS AND OUTS
SoftStep Pro has 175 modules with various functions that you can freely interconnect. To create a module on the screen, left-click where you want the module to show. A pop-up list of categories arranged by function appears, and you can select the type of module you want from the list. Modules can also be selected from the Modules menu, or you can right-click in the Workspace to duplicate the last module you created.
Each module has one or more inputs, which appear as green rectangles for data and yellow rectangles for clock inputs. Clicking on an input produces a pop-up screen with a choice of numerical values, control flags, or the output of any other module (SoftStep follows the MIDI standard of using numerical values 0 through 127). Rather than using visible “patch cords” to show connections, each input clearly displays the name of what has been connected to it. That keeps the screen clean and uncluttered.
Control flags indicate various system values and track information such as the Run button's status, which computer keys you press, or the status of Composer playlists as they run. For example, if you press a key on the computer keyboard, the KeyChar control flag will equal the ASCII code for that character, and that value will be available to any module that has KeyChar selected as its input. If you push the Run button on SoftStep Pro's transport, the Run control flag will equal 127 (logical “true”). Pushing the Run button again will toggle it off, and the Run control flag will equal 0 (logical “false”).
Having access to those system states through the control flags provides many options for interactivity while the program plays. For instance, you could push the computer key that determines which chord the program will play, or you could simply use the Run button on the transport to start and stop Clock modules in a configuration.
When they're created, modules are assigned numbers to make them easily identifiable. For example, the first Clock module you create will be called Clock-1, followed by Clock-2, Clock-3, and so on. That makes the modules easy to differentiate when you interconnect them.
In my example of a simple SoftStep configuration in Fig. 1, a Clock module drives a Counter module, which causes an eight-knob Step-Sequencer module to cycle through its eight positions. A MIDI-Voice module (labeled Voice-1) plays the notes specified by each knob setting on the sequencer. In other words, the Knob08-1 output controls the Note input of the MIDI-Voice module. The horizontal bar, marked 01 and set to 85, is used as a volume control and is connected to the Velocity input (Velo) of the MIDI-Voice module. Moving the right edge of the bar's blue rectangle changes the setting within the range from 0 (silence) to 127 (loudest). The Loudness Control information box identifies the horizontal bar's function.
WATCH YOUR STEP
Many functions provided by the modules are straightforward, such as those that let you set values with a slider or knob. Other modules are more complex; the Kicker module, for example, monitors a stream of numbers and produces a clock pulse if less than a user-determined number of different notes appears within a user-determined period of time. You can use the Kicker to make sure there's enough variety in a sequence of numbers being generated in a configuration.
SoftStep provides Clock modules for timing; they include an innovative Ball module in which a ball creates interesting and varied rhythms as it bounces within four walls. You can adjust the box's size and shape and the ball's speed to get many variations in the rhythm. The Ball module creates a natural and changing rhythmic pattern without the rigid regularity of a precise MIDI Clock, offering one useful way to create more fluid and less mechanical timings in your configurations.
You can create rhythmic patterns using both the Arpeggio module and a series of Pattern modules. You can have as many as 128 separate patterns, each containing 32 steps, in a single module.
Central to the program are the many step sequencers, which offer different numbers of steps and distinct kinds of controls. The controls include knobs, sliders, and numerical inputs. Step sequencers with many steps work the same way the smaller ones do, but they take up more space on the screen; you are free to select the size you need. The individual controls allow you to enter data in the manner you find most convenient and most appropriate for the task.
Two other options are a choice of several types of Matrix modules, which are two-dimensional sequencers organized in rows and columns; and a choice of Page modules, which can hold 128 sequences at once.
FILL 'ER UP
All the sequencers make use of the powerful Fill feature, which can be used to control parameters such as pitch, Velocity, and tempo (see Fig. 2). Adjust the green sliders by dragging with the mouse to specify MIDI values from 0 through 127. You can also set values by checking the Keyboard option, which summons an onscreen music keyboard you use to select pitches.
To use the Fill function, click on the Fill button of the step sequencer you are working with. You can enter the data for each step manually or use Source commands to automatically create different data patterns. Available patterns are Random, Random-Walk, Repeat the First Value, and Count Up from the First Value. The Modify commands change the values in various ways, such as adding a value to all steps, sorting them in ascending order, removing duplicate values, and scattering the values to random positions. That's quite a bit to keep track of, and fortunately, tool tips appear when you move the mouse over each button.
Quantize functions force the notes to conform to selected scales and chords. Five working buffers are marked A through E, letting you try various options and compare them. For example, say you have a random sequence, and you want to try some variations without discarding the original. You could copy the sequence to all buffers using the Copy/Paste feature and then move to the B buffer and quantize to a major triad, move to the C buffer and quantize to a whole-tone scale, and so on. Available options are major, minor, pentatonic, and whole-tone scales as well as octaves, fifths, and major and minor triads. A Jitter function moves notes randomly one step at a time.
SoftStep Pro offers several modules that create either random numbers or numbers that follow probability distributions. Random sequences are useful in many settings, but if you don't want pure randomness, you can use the Probability module to make certain outcomes more likely than others according to a probability table you create. A simple example would be to emphasize the tonal center of your piece by creating a probability-distribution table that makes the tonic pitch most likely, emphasizes the intervals of a fifth and a third, and uses seconds and sevenths least often.
You can also get data from fractals or other graphic images. SoftStep Pro's Fractal module draws fractal images on the screen in real time; you can use the patterns created by the changing positions of the pixels as they are drawn (see Fig. 3). The Clock module determines how quickly the drawing unfolds. The Image module works a little differently: import any image you wish (in BMP format), and SoftStep Pro will extract the color values at every x-y coordinate. You can use a Clock and a Counter to trace horizontally across the screen and then use the changing color values as loudness, pitch, or tempo information in other modules. The Image module includes a simple tool for drawing and editing fractal images to work with rather than importing them.
SoftStep can also read data from MIDI files, but they must first be imported and converted to SoftStep's own MIDI-data format. You can create a SoftStep configuration that reads a MIDI sequence of a song, or even a tone row, and creates variations on it. You can choose to extract just the Velocity, Program Change, or Pitch Bend information from the MIDI file and use that data as a control source.
SoftStep's Tone module has extensive support for microtonality. A built-in selection of 103 tuning tables includes ancient Greek scales, just intonation, scales from various non-Western traditions, and scales developed by Harry Partch, Wendy Carlos, and Lou Harrison. If you want to create your own tuning tables, you can purchase a copy of the MicroTone editor (see the sidebar, “Musical Weather, Singing DNA, and Exotic Tunings”).
You might be wondering how SoftStep Pro could offer microtonality when MIDI uses only the 12-tone tempered scale. That's easy: it uses Pitch Bend messages before each note. Because Pitch Bend is a Channel message, though, if you want more than one note to sound at a time, you have to put each note on a separate MIDI channel. If the notes are playing quickly, you will hear a Pitch Bend “swoop,” especially when the difference from traditional tuning is great. Consequently, if you really want to explore microtonality, you'll probably need to work with a synthesizer that has good support for it. Even with that limitation, microtonal support is a welcome feature.
DO YOUR MATH
SoftStep Pro's math modules support standard features such as adding, subtracting, dividing, or multiplying values. The program also has modules that combine functions, such as multiplying two numbers and then dividing the result by a third, and a module that works with percentages.
Modulus arithmetic is supported, and because the Western musical scale is itself an example of modulus arithmetic, the feature is useful. For example, say you have a random sequence of pitches, and you want a chord to play whenever the note C sounds, no matter what octave it's in. If you performed modulus division by 12 on the sequence of pitches, all the Cs would give a result of 0. You could then use the number 0 as a trigger for the desired chord. Modulus arithmetic would also allow you to compress all MIDI notes into a single octave.
Logic modules come in two general categories: logical and bitwise. The output of the logic modules is true (127) or false (0). Logic modules are for functions such as synchronizing two clock signals, delaying clock signals by a specified amount, changing state at every clock pulse, and producing the opposite of the input at the output (a logical “not” function).
Bitwise logic modules let you work with each bit of a number. They have many uses; for example, you could create as many as seven tracks of rhythmic patterns using the Rhythm module (a clock function) and then employ the Mask logic module to select which of those tracks, in any combination, will be sent to the output. The logic modules give you many opportunities to control your configurations in various ways and to make the musical results interesting and varied.
MAKE YOUR OWN
Although I just touched the surface, you can see that a module exists for just about anything imaginable. If you think of something the built-in modules can't easily handle, however, SoftStep includes User Function modules for creating unique functions (see Fig. 4). Though they take a little effort to learn, there are some particular features, such as interactive graphics, that User Functions make possible.
For example, you can use User Functions to create a visual MIDI monitor that displays notes and their Velocities with vertical bars of varying sizes or colors. Or you might create a geometric design that dances on the screen in response to the music. Various drawing commands are available to create graphic images, and you can also import preexisting graphic files.
IN A WORD
SoftStep's help documentation is good: the tutorials are excellent, and handy tool tips appear when you move the mouse over different parts of each module. It would be useful, though, to be able to reach detailed help for each module directly from the Workspace. In addition, an index within the documentation would be helpful.
I would appreciate the ability to organize modules in my own way or create personalized palettes of modules that I use often. I also wish you could select several modules and then move, copy, or delete them as a group. As it is, you must deal with the somewhat disconcerting fact that you have to delete modules in different ways. You click on a box in the upper-left corner to delete most modules, but some require you to shift-click on little squares to delete them; others even insist that you right-click on the modules themselves. Moreover, some modules disappear as soon as you delete them, but others ask you to confirm your decision with a dialog panel. Although I understand why those differences exist (you wouldn't want a Button module to be too easy to delete accidentally, for example), a group select-and-delete function would be a useful, timesaving feature.
Aside from those minor points, SoftStep Pro is a well-conceived program that's a pleasure to learn and use. It has many innovative and useful features; the bouncing-ball timer, microtonal support, and ability to use unusual data sources in your music are a few of my favorites. Customer support is excellent, and the upgrade paths let you start anywhere you want and dig in as deeply as your interests demand. Musicians interested in algorithmic techniques or interactive performance will find that SoftStep Pro delivers just about anything their musical imaginations can dream up.
Peter Hamlinis a composer who teaches at St. Olaf College. He is also a member of the live electronic-music improv band Data Stream.
Minimum System Requirements
Pentium/120; 32 MB RAM; Windows 95/98/ME/2000
MUSICAL WEATHER, SINGING DNA, AND EXOTIC TUNINGS
SoftStep has modules that let you use genetic information and other kinds of data in your musical materials as well as offer support for microtonal scales. If you want to go beyond the built-in features, you can buy three additional programs.
DataBin ($29) imports any text file and converts it to a binary format that SoftStep understands. That file could be a list of numbers, data organized in columns, or data delimited by commas. You could, for example, use a year's worth of temperature data to control changing tempos in a composition that depicts the passing of the seasons.
BioEditor ($39) lets you import genetic information (available on the Web and elsewhere) and use it in SoftStep configurations. SoftStep's Bio-Sequencer module contains a number of built-in examples of genetic sequences, and the help files offer detailed information as well as links to additional sources. Those sequences produce not-quite-random patterns that often translate into interesting musical results. SoftStep Pro limits you to a few built-in genetic sequences, however; if you want to add new information, you need BioEditor. (To learn more about work in that area by biologist Mary Anne Clark and SoftStep creator John Dunn, go to http://mitpress.mit.edu/e-journals/Leonardo/isast/articles/lifemusic.html.)
MicroTone ($49) is a program you can use to create customized tuning tables. SoftStep comes with more than 100 tuning tables, but if you have a hankering to create your own, MicroTone is the way to go.
Each program is easy to learn and use, and all have well-conceived editing features appropriate to the type of data they handle. You can download the programs for free to try them, but you have to purchase a license key before you can save the data to files that SoftStep can use. You can buy all three programs in a bundle for $89.
SoftStep Pro 2.06a algorithmic software
FEATURES5.0EASE OF USE4.0DOCUMENTATION4.0VALUE4.5
RATING PRODUCTS FROM 1 TO 5
PROS: Flexible and powerful. Wide range of available modules. Innovative features such as support for microtonality and genetic information. Free Basic version with easy upgrade paths available.
CONS: No group move, copy, or delete functions. No user-customized palette of modules. No help index.