Computer-generated music has been with us for decades. Research labs have been developing algorithmic software for years, and the commercial products

Computer-generated music has been with us for decades. Research labs have been developing algorithmic software for years, and the commercial products are starting to show a few gray hairs. I'm happy to report that after all this time, the state of the art for computer-created music is still advancing nicely-and if you want proof, take a look at SSEYO's Koan Pro 2.2.

Make no mistake: Koan Pro is no ordinary auto-accompaniment program. It won't have you typing in chord progressions, building verse-chorus-bridge structures, or jamming with your computer into the wee hours of the morning. Koan Pro is a generative music-making program. You give it various parameters to work with, and it in turn gives you music. Koan Pro generates music in many different ways, so you can use it to create anything from ambient textures to dance beats.

KOAN HOMEFirst, let's get a little terminology out of the way. Each composition that you create with Koan Pro is called a Piece. Pieces are composed of one or more Voices, which come in several types. A Voice is a single "player" in the Koan system. It plays one Instrument (that is, one patch), which can be an MP3 or WAV audio file, a SoundFont, or a MIDI file. A Voice is somewhat similar to a track in a traditional MIDI sequencer. Instruments, envelopes, parameters, and rules determine exactly what a Voice will do (more on this shortly).

As it starts up, Koan Pro offers you a choice of Templates. A Template is a "head start" for your Koan Piece; Template options include Normal (which brings up a simple one-Voice Piece), Dance, Latin, Rock, and others. Most of the Templates give you nothing more than a good drumbeat to start with.

Koan Pro's user interface (see Fig. 1) holds dozens of parameters. Each Piece has its own window, and you can load multiple Pieces simultaneously. A window consists of rows, one for each Voice in the Piece; each row contains the Voice's parameters and envelopes. (As their name implies, envelopes alter parameters over time.)

Row and column sizes are adjustable, but some autopositioning options for the windows would have been useful. As I worked with the program, I found myself constantly adjusting the sizes and positions of the Piece windows and the controls inside them.

You can reconfigure elements on the screen by clicking on the numerous View buttons in each window. Fifteen buttons enable different parameters, and six others enable different envelopes.

So what are these envelopes? They control a Voice's volume, pan, Velocity, and Velocity change over the duration of the Piece. (Velocity change defines how much a note's Velocity can differ from that of the previous note.) Various drawing tools allow you to create any envelope shape imaginable, so it's easy to make a constantly changing Piece in which Voices fade in, fade out, and move around the stereo field.

TYPE-O-MATICKoan Pro provides six Voice types, each with its own special powers. The Rhythmic Voice is good for generating musical phrases. With this Voice type, you set minimum values as well as range values (that is, how far above the minimum a parameter value can be) for pitch, for phrase length, and for phrase-gap length, which is the amount of time elapsed between phrases. You can also have rests occur within phrases a certain percentage of the time.

The Ambient Voice is good for drones, pads, and special effects. It isn't necessarily tied to bar or beat boundaries. Instead, it plays notes for a certain duration (expressed in seconds, milliseconds, or 60ths of a beat). You can specify minimum and range values for duration and gap length.

The Follow Voice is intended to harmonize or echo other Voices. You identify the Voice that you want it to follow (called the lead Voice) and, using a percentage value, indicate how often the effect should occur. Follow Voice delay values (both minimum and range) are expressed in seconds, milliseconds, or 60ths of a beat. You can create some interesting imitative effects with delay times of four or eight beats. A Follow Voice's shift interval, which also takes minimum and range settings, determines the interval that will be used to harmonize the lead voice.

The Repeat Bar Voice allows you to establish repeating themes in your music. You decide which Voice should be repeated and set the likelihood of repetition as a percentage value. Whenever Koan Pro determines that a repeat should occur, it uses the minimum and range values of the Repeat Bar History and Repeat for Bars parameters. Repeat Bar History indicates how far back in the Piece Koan Pro can search for the Voice that it needs to repeat; Repeat for Bars determines the length of the repeated passage.

The Listening Voice responds to input from an external MIDI source, such as your sequencer or controller. Thus, you can play along with the Koan Piece, as well as harmonize, delay, repeat, and note-correct the external source and the other Koan Voices. A Listening Voice has parameters for setting the range of "listened to" notes and for adjusting the notes or note Velocities as they come in.

FIX ITThe final Voice type is the Fixed Pattern Voice. You'll use it when you want the Voice to play from a set of predefined musical phrases. In Koan Pro such a set is called a Pattern, and a phrase within the set is called a Sub-Pattern. The Fixed Pattern Voice is good for drums and repeating bass lines; for example, you might use one to create snare drum hits every second and fourth beat.

You edit Patterns in Koan Pro's three Pattern Editors. The Pattern Editors give you access to the Patterns' Sub-Patterns, and you can set the probability that a particular Sub-Pattern will be played.

To create a Sub-Pattern in the Melodic Pattern Editor (see Fig. 2), you specify a root note, scale, and number of bars. Then you draw the notes into a display that has notes and beats organized in rows and columns (the notes are restricted to those in your chosen scale). Many standard mouse operations, such as dragging, event copying, and lassoing, can be used to tweak your data. You can edit the Velocities of the individual events and import or export MIDI sequences.

The Rhythmic Pattern Editor, which contains only one row, is used when you want to specify just the rhythm to be played (Koan Pro chooses the notes according to parameters that you set elsewhere.)

With the Pattern Sequence Editor, you can limit the selections that Koan Pro uses. For example, you could ensure that Sub-Pattern 1 gets played first, followed by two iterations of Sub-Pattern 2, followed by one iteration of Sub-Pattern 3. You can even set up several different Sub-Pattern sequences, assign probabilities to them, and then let Koan Pro determine which one to use.

A couple of important points need to be made. First, Koan Pro transposes your Pattern to other root notes as part of its normal transformation functions (although the Force Frequency button can prevent this). Second, Patterns are monophonic-that is, they can play only one note at a time. If you want to use chords, you have to set up Follow Voices or use Chord rules. This limitation is unfortunate, though no doubt necessary to ensure that Follow Voices can correctly track Fixed Pattern Voices. The downside is that if drum notes need to sound simultaneously (bass drum and hi-hat, for instance), you can't create the drum part in one Pattern Editor-you have to spread it out across multiple Voices. If chords were allowed, the program could function as a full-fledged pattern-based sequencer. (It's still a pretty good one anyway, as long as you don't mind monophonic tracks.)

Fixed Pattern and Repeat Bar Voices can mutate over time. You specify the likelihood that one or more notes will mutate, and you establish a range of bars over which the mutation can occur. For instance, you can set a 15.5 percent chance that a note will change every five to eight bars. Once a Pattern (or Repeat Bar) mutates, it will not revert to its original form. This allows the Piece to evolve over time.

Finally, Fixed Pattern Voices can have their own meter, creating interesting possibilities for polyrhythms and other such goodies. You can also set the likelihood that Koan Pro will use the Patterns at all; for instance, you might program it to play the Patterns 60 percent of the time and make Pattern-playing random for the remaining 40 percent.

OBEY THE RULESKoan Pro offers quite a bit of note-generating power. However, such a program would be nothing but a noisemaker if it only spit out random notes in any order and at any rate of speed. To make music, you must have rules.

Koan Pro has four types of rules. Scale rules define which notes the program will choose from when it looks for notes to play. Among the default Scale rules are major, minor, and pentatonic, and you can also create your own with relative ease.

An option in the Scale Rules window (see Fig. 3) lets you establish the probability that a given note will sound. For one Voice, you may want to weight all of the notes in a blues scale equally. But for another Voice, you may want to give high probabilities to the first, fourth, and fifth scale steps and assign medium-high probabilities to the third and seventh.

Harmony and Next Note rules work much like Scale rules. Harmony rules control the likelihood that a note will be chosen, relative to the harmony implied by the currently sounding notes. Next Note rules establish the probability that the next note after the Voice's currently sounding note will be chosen. Using Next Note rules, you can set up melodies that move from note to note only in half or whole steps, or you can create melodies that jump around radically.

Rhythm rules aren't really what their name suggests (I'd call them "Note Length" rules). With these, you establish the probability that notes of a particular duration will sound. If you choose high-probability settings for whole and half notes, your Voices will play long, sustained notes. High probabilities for eighth and 16th notes will result in fast passages. One of the Rhythm rules makes your Voices play in a syncopated fashion.

CHORDS AND CONTROLLERSAs a default, each Koan Pro Voice type will generate monophonic phrases. If you'd like to generate chords instead, head to the Auto Chord parameters. Here you can input minimum and range settings for chord depth (how many notes Koan Pro will play), interval (how far it will go for the next note in the chord), and chord delay. Longer chord delays produce arpeggios instead of chords.

You also have your choice of chord "strategies." You can tell Koan Pro to consider the Scale, Harmony, and Next Note rules, just the Scale rule, or no rules at all. You can set the probability that a given note in a chord will sound, and you can vary the Velocities of the notes in a chord; these two features help make the chords sound much more natural.

Koan Pro also boasts hefty real-time controller support. For each Voice, you can set parameters for several MIDI continuous controllers, as well as a number of the "special" controls (for example, envelope, LFO, and filter settings) on Yamaha XG, Roland SCC1, and Creative Labs AWE devices.

You can do even more with Pitch Bend, Modulation, and Volume data. You can specify minimum and range values for these messages, and set how often (again, with minimum and range values) you want any changes to take place. The Modulation values even have separate "pulse" parameters that dictate how long Koan Pro applies the controller.

You can have two user-definable MIDI controllers, which have similar capabilities. They can also behave like LFOs. In addition, you get a built-in ADSR envelope generator, a fixed pitch offset for tuning (this uses the Pitch Bend control), and a "micro" note-delay feature for rushing or dragging the beat. Whew! No lack of control here.

SOUND OFFWhat sounds come out when Koan Pro generates notes? You have many choices. Each Voice has a patch parameter that can be set either to a General MIDI patch number or to a patch-and-bank number combination for Roland GS or Yamaha XG support. Of course, you can use an external MIDI synth as well, but you can't import patch names into Koan Pro.

The program also supports SoundFonts. You can browse through a SoundFont file, choose an Instrument, and have Koan Pro load it into any SoundFont-compatible card before playback starts.

As if that weren't enough, you can also use MP3 or WAV audio files as a Voice's "noisemaker," provided the appropriate Windows or Macintosh drivers are installed. The audio file's frequency can be fixed (for ambient noises or special effects), or the file can be pitch-shifted across the keyboard. You can even set up keyboard splits using multiple audio files, but you'll need to use a complex text syntax for this.

"Audio breakbeats" can be created by using a collection of numbered audio files (such as those generated by a product like Steinberg's ReCycle loop editor). Koan Pro will assign these files to consecutive MIDI note numbers, which can then be used in a Fixed Pattern or other type of Voice.

MAKE A LISTEvery Koan Pro parameter can take a list of entries instead of a single value. Each time you play a Piece, the program will choose new values from the lists. Given the multitude of parameters, your Piece might be drastically different each time you play it. You can also use the list feature to change a Voice's patch every few bars.

Koan Pro's parameters can be randomized. You can create entire random pieces from scratch, make subtle changes to an existing template, or simply randomize a few select parameters. The program gives you plenty of control over how much randomization takes place; for example, you can choose the percentage of parameters that change, what types of parameters change, and how much they change.

If your Piece is already close to being what you want, you can mutate a parameter rather than randomize it. The operations are similar, but mutation makes random changes to the current value, whereas randomization chooses new values from scratch. Both of these functions are great for generating new ideas and getting the creative juices flowing.

THE SOUND OF KOANWhat does Koan music sound like? You can use it to create beats for everything from straight rock to modern jazz. To my ears, however, Koan Pro is best at generating complex, evolving textures. The program could crank out months of music for a shopping mall or a new-age bookstore.

Koan Pro's attempts at more upbeat music are not quite as impressive, although I was able to create some decent techno dance Pieces. Other Pieces containing nothing but percussion sounded fine-in fact, the program is an excellent session drummer that can come up with its own new ideas. However, the music on top of the drumbeats tends to sound a little chaotic. Popular music requires a certain structure in its chord progressions and repeated passages. Koan Pro generates music that can evolve over time, but it doesn't currently "think" in terms of verses and choruses. (The manufacturer claims that the forthcoming version of Koan Pro comes with enhanced features for creating dance material.)

Koan Pieces are particularly well suited for use on Web pages. Instructions and JavaScript examples on the SSEYO Web site show you how to post Koan Pieces on your own site. The company provides a plug-in, Koan Plugin 6.1, that allows visitors on your site to hear your Koan music. When they click on a Koan file on the site, they can download the plug-in and listen to your material. And because Koan Pieces can constantly evolve, the music need never become repetitive or tiresome.

The program's built-in recorder can record Koan Pieces as MIDI or WAV files. The WAV recorder supports 8-bit and 16-bit recording at several different sample rates and can record your sound card's synthesizer output straight to disk (provided your hardware supports this feature). Also included in the Windows version only is the Koan File Player (see Fig. 4), which is installed separately. This package lets you create collections of Koan Pieces and play them one after the other.

Koan Pro's documentation is extensive, but it is provided entirely in HTML format; there is no printed manual. This is a very complex program, and good documentation is essential. The online docs taught me what I needed to know, but I often had to read through more than I wanted to know. A little less wordiness and a little more organization would help tremendously. SSEYO says it will include new tutorials in a future version. The company also tells me that the next Koan Pro version will have even more goodies, such as a built-in software synth and enhanced MIDI-file capabilities.

All in all, Koan Pro is a huge program with a stupendous amount of music-making potential. If you're looking for new ways to generate music, if you want to add sound to your Web site, or if you need some new creative ideas, you'll like what you can do in Koan Pro.

Allan Metts is an Atlanta-based musician, software/systems designer, and consultant.