Music By Design (Part 1)
With algorithmic composition sotware finding commercial use at last, the question has to be asked "will it write a tune?". Greg Truckell takes a close look at the applications of M.
Music composition software may be well suited to experimentation, but can it help you write a decent song? This two-part series examines the practical applications of Intelligent Music's M and Dr T's KCS. Text by Greg Truckell.
SINCE THE DAWN of synthesis, before the Minimoog had established itself, before the first tick of the clock of some steam-driven sequencer, the fingers have been pointing. "It's not real music", cried the "serious" composers and musicians who, of course, had no idea what they were talking about. They must be as sick as parrots by now.
In this two-part series, we'll explore some applications of certain sorts of computer software. Broadly labelled "compositional" software, we're in the realm of algorithmic sequencers and artificial intelligence. The aim of this series is not to consider the history of this family of software (see The Secrets of Computer Composition, MT March and April 1989). Instead, we'll consider the potential of compositional software in terms of what it can be persuaded to do. Algorithmic sequencing excels in such areas as textural, serialist, minimalist, atonal, avant garde and other similar musics. This series is intended to show that you can also get well funky with artificial intelligence.
There's a lot of software to choose from. However, for the purposes of this series we'll consider two programs: Intelligent Music's Interactive Composing and Performing System, M, and Dr T's Keyboard Controlled Sequencer. M takes most of the brain-ache out of using computer-controlled user-variable part random processes by using icons, and allowing you to slide things about the screen and so on. Just in case you get too comfortable with M, we'll be looking at probably the most expensive, and arguably the most powerful piece of compositional software: Dr T's Keyboard Controlled Sequencer, Level II, with Programmable Variations Generator (KCSII for short). As far as hardware is concerned, apart from an Atari ST, we'll assume that we're talking along the lines of a Roland D110; we need plenty of drum and percussion voices, and a few synths or samplers. At a push you could compose with a scorewriter co-resident in memory, and play the parts on acoustic instruments, but that wouldn't be real MIDI, would it... This month we'll look at M, leaving KCS for next month.
Let's introduce a rather important concept; this software can't write a good piece of conventional, structured music, any more than Spirograph can create an old master. It should be viewed as a compositional tool, no more. The basic ideas still have to come from you.
Down to business. A bassline is more than a collection of notes; dynamics, and perhaps even more importantly, the rhythm in terms of note duration and staccato/legato articulation, are what gets toes tapping. But what do you do if you haven't got the right notes to begin with? You could try this; put just one note into your sequencer (which we shall assume is M), create a loop or loops for the dynamics, the note durations, and their articulation. Hopefully the rhythms you create will suggest directions for the bassline to take.
So how does M create rhythmic loops? The first thing to note is that it's one of the growing family of software sequencers which you don't need to stop. As soon as you put in a note, off it goes until you stop it (you can also record into M while it is stopped, if you feel the need for tranquillity in which to choose the next note). This feature makes M ideal for working on fairly repetitive phrases like bass riffs and drum and percussion parts. Regrettably though, this same feature has led certain parties to liken M to an overgrown arpeggiator. To use M as a tool for arranging a longer section of music composed from a number of different lines in different combinations and at various transpositions, you must employ the Conducting Grid, Snapshots, and Movies. You have to admire Intelligent's choice of jargon - they brought in Bondage in Realtime!
Having enabled record and MIDI Thru on the Patterns Window (Figure 1), and selected your MIDI Channel and program number on the MIDI Variables Window (Figure 2), we're ready to select a Pattern Type and go into record. For the purpose of recording a bassline, there are two possibilities, namely Pitch Distribution Pattern or Step-Time Record Pattern. The former does not allow polyphonic playing (hardly a problem with the average bassline); the relevant differences lie in how the software regards the source data - the notes you play - for randomisation/ variation and editing purposes. Pitch Distribution Patterns can be more fun, but Step-Time Record Patterns give you the composer more control of the sort you are used to expecting; namely, being able to go to a step, and edit it.
As you record notes in Step-Time Record or Pitch Distribution, the Note Counter changes. The handy thing here is that you can click on the numerical to reduce the number of notes in the Pattern, and restore them later by increasing the numerical up to the number of notes you put in; this means that you can experiment with polyrhythms and pattern phasing, whenever the whim takes you.
M plays the number of notes indicated by the Note Counter in a loop, at a tempo controlled by the Pattern's Time-Signature Numericals and the Tempo Numerical in the Global Control Window (Figure 3). At this stage each note has the same velocity, duration and articulation (the glorified arpeggiator).
Time now to look in some detail at the principal means by which M allows you to create rhythms. The Cyclic Editor Window looks like some ancient Chinese board game, but in fact it does for the creation of rhythms what Roland's TR707 window did for drum machine programming. I should stress at this stage that just about any piece of compositional software will allow you to do what the Cyclic Editor Window does, in its own way. The trouble is that most other ways involve screens full of numbers, and that can just be far too cerebral for the average pop muso.
There are four grids on view at any time in the Cyclic Editor Window; they will be either the Durations, Articulations, or Accents Cycles, for Patterns 1 to 4. All 12 grids are independent of each other; the length of each grid is 1-16 determined by the position of the last column used in the grid. Each column consists of five rows, and these correspond to five different values for Duration, Articulation, and Accent - the values can be adjusted if the defaults do not suit your needs. Basically, the idea is that the higher (vertically) a value in a column, the longer or louder that step in the cycle will be. The system is not without its problems; inserting or deleting a step or steps in a Cycle involves manually copying data to its new position, as does shifting a Cycle backwards or forwards relative to other Cycles. The advantage of M is that figuring out what is going on is as easy as spotting a full pint glass on a table full of drinks.
Time for an example - a few notes to get things rolling. If you have M at home you can try this, but make sure there's a grown-up there to help you, because some of the notes are sharp. You're still ready to record, so play the following notes;
Just in case you don't read AMPLE MCL too fluently (I only picked it up from reading MT), upper case means you go up in pitch from the previous note, lower case means you go lower in pitch. Simple.
First things first; let's sort out the note durations. Nine notes of equal length don't make the ideal 4/4 bassline, do they? Let's pinch the phrasing from a wellknown toon. Set the length of the Durations Cycle for Pattern 1 to 9, and set the levels in the columns to 1, 2, 2, 2, 1, 2, 2, 2, 2. In AMPLE what you should now get is;
For those of you still struggling with pidgin AMPLE (I include myself), the "/" means that the note should be held for an extra beat. The riff now works in 4/4, because of the way the values in the columns add up. The Durations rows default to values such that each row is twice as long as the row below it - you can change these values if they don't suit your plans. As long as the values in the rows add up to a multiple of eight (or whatever), your Pattern will stay in the groove. Change one column without changing another to compensate, and your Pattern will shift out of the groove, in a polyrhythmic manner. Change the length of the Durations Cycle so that it's not an integer multiple or division of the Note Counter Numerical, and your Pattern will shift out of the groove in an equally fascinating isorhythmic manner. The same thing will happen if you change the Note Counter Numerical so that it is no longer an integer multiple or division of the number of steps in the Durations Cycle.
As things go so far, our bass riff is no further forward than the sort of thing you might get from a Roland TB303 Bassline with the bare minimum of effort. Even the Bassline has an accent facility, so let's go there next. The Accent Cycles are shown for Patterns 1 to 4 in Figure 4. Once again, the ability to place an accent of whatever strength on any beat without having to learn to play the thing is a strength of this sort of software.
Next in line for our attention is the Articulation Cycle; with conventional analogue (or should that be traditional, or medieval...) sequencers, changing a note from legato to staccato might involve inserting a rest. With MIDI sequencers the event duration would have to be numerically edited. Not so with M; enter the following step cycle:
Step 1 2 3 4 5 6 7 8 9 Value 1 1 2 3 1 2 3or2 3or2or1 3
Steps 7 and 8 are now up to M to consider. Their Durations will be selected each time at random from the range set in the Cyclic Editor Window. This allows controlled randomness, only about certain parts of the riff, that can turn what is actually a very repetitive Pattern into something with a little more life to it, while allowing you to preserve certain parts of the riff.
The Articulation Cyclic Editor Window is, in my opinion, one of M's most powerful and endearing features. I don't care how good your keyboard technique is; if you're trying to fake Tony Levin, piano grade eight is irrelevant. With algorithmic sequencing you can emulate the articulation of modern bass playing in no time at all, complete with subtle variations. Another interesting possibility is to set the Articulation Cycle to 15 steps instead of 9; this means that the bassline repeats every five passes (the smallest number into which 9 and 15 both divide is 45; 45/9 notes = 5 passes). Since your pop song is unlikely to have verses five lines long, there should be a rich sense of variety throughout the song, without throwing the listener off the trail.
Don't be mistaken about the sense of simplicity running through the techniques discussed so far. The points to note are, first of all, that it's "just a pop song" we're discussing here, not some IRCAM-styled exercise in self indulgence. Secondly, software like this, used at this level, seems to work at its best with small amounts of material at a time. The avid listener picks up very quickly on repetitive phrases, or motifs; consequently, they'll notice any simple variation on these motifs, as a variation. If the degree of variation from a simple motif is too great, then the listener will fail to make the connection. Thirdly, if you already have a complete song composed, arranged and orchestrated in your head, then you'd be best advised not to key it into an algorithmic sequencer. Fourthly, I've suggested but not implemented a range of possible variations which generate polyrhythms, isorhythms, and some other sorts of pattern phasing whose names I don't even know. The reasons for this are simple; what I'm looking at for now is the simple backbone of a verse or chorus. The more oddball variations would be inappropriate, as they would not give a regular beat. They should instead be used for variety at the ends or starts of sections, as little breaks, or as secondary sequences running alongside the main bassline, indulging in a little interplay. I'll say no more; this is a family show.
Let's deal with some drum and percussion parts. Such is the formula for the pop song, and dance music in particular, that there are rules which need to be followed. We're almost certainly talking 4/4 time and around 120bpm tempo; but there are other, more subtle rules. In all probability there will be a kick drum on most of the odd-numbered downbeats, and the snare is unlikely to be a major source of surprises, except at the ends of phrases of four bars or so. There is of course no reason why you should stick to the currently fashionable drum pattern, but don't despair if you've already set your heart on ripping off that pattern. There are plenty of other percussion sounds to play with, and we'll come to them in the fullness of time.
Meanwhile, let's tackle the kick and snare. We already have a bassline or lines to keep us going, but a regular snare pattern of the simplest order might be handy. You can always add the odd handclap or cowbell just to keep boredom at bay.
Back to the kick; a fairly standard, but effective trick is to have the kick follow the bass notes. Not all the time, of course; but as a change from the usual thud-crash routine, this is a promising starter. Stick a kick on the next free Pattern, then copy the Duration Cycle from the bassline Pattern to the kick Pattern. This has to be done "by hand" as the Copy function from the Edit menu only copies Pattern Type and note information. At this stage, every bass note is doubled by a kick - and there may very well be rather too many of them. Copy the Accent Cycle from the bassline Pattern to the kick Pattern, then reduce to zero the Accent level of any kick that needs kicking out (see Figure 4). It's possible that the level of the kick is varying too much; dynamics are one thing, but delicate kick drums don't cut the groove. Simply raise the lower (and upper, if need be) limits of the Velocity Range Bar in the MIDI Variables Window. This will bring the quieter kicks up in level; the dynamic variation will be preserved, but compressed.
Once all is fine down below, we can return to the snare drum. There isn't much you can do to a simple Drum Machine Pattern (although they can be real fun with sounds other than drums). Create a New Pattern instead of the original, and make it a Pitch Distribution Pattern. Record one snare drum, and set up a two-step Accents Cycle, with step one at zero, and step two at full level. The result should be the same as you had earlier. You could now enter another, different snare sound in the Pitch Distribution Pattern, either by recording it or by editing it in. This would create an effect whereby every 2nth snare was slightly, or radically, different, where "n" is the new Note Counter value. Since only one snare was recorded, the proportion of usual to alternate snares can be set, and changed at any time, by recording more of either snare; M will make the choice between the two, in sequence, or however the sequence is varied by such features as Note Manipulation (see below); also bear in mind that the two-step Accents Cycle effectively mutes half the snares. If you want to use extra snare fills it's probably best to record these in real time over the completed arrangement, then fine-tune and flam to taste. More on this next month; in the meantime, what you should have so far is at least one near-to-completed groove up and running.
Time to do something silly; Latin percussion would seem a good place to start. Take three Latin sounds - a handful of bongos, timbales, congas or such like. We want 16 notes to be going on with, so divide these notes between your sounds, then record, in the Pitch Distribution Pattern, all the notes for the first instrument, then the second, then the third. Set up a reasonably simple Accents Cycle - high levels on steps 1, 4 and 7 of an 8-step Cycle, for instance. Set Duration to a -step Cycle. Now it's time to play seriously with the Note Manipulation variables (Figure 5).
M approaches each note as a possibility; it looks at the Note Manipulation Window Numericals, throws the random number generator a couple of times, and takes action accordingly. For example, the Note % value determines the likelihood that any note will actually be played. Set 75%, and each note has a three-in-four chance of sounding. This can be handy for thinning out an over-busy layer of Patterns, without losing the sense of a full orchestration. The Direct value determines which direction M will take from any given position; set 75% and each note will be the next note three times out of four, and the previous note once out of four. Set a value around 50%, and M will stagger through a Pattern rather than just play through it. Set 0% and the Pattern reverses altogether. Last but by no means least (apart from the Transpose function, which does just what you would expect), are the Note Order bars. Here you are presented with three percentage values; the first is the chance that the next note will be the next note; if it is not, it will probably be the next note from a scrambled version of the sequence using only the original notes - if you don't like the way M has scrambled your Pattern, you can rescramble it. If the next note isn't the next note or the next scrambled note, then it will be any note at all, randomly selected from the notes in the Pattern.
Back to the bongos; try a setting of 50% - 25% - 25% on the Note Order bar, and 75% on the Note Direct. That should shuffle the pack a little. Depending upon how busy the rest of your groove is, you might be able to afford to lose some notes altogether, and you could try 75% on the Note % numerical. Any algorithmic sequencer could do this, but none as intuitively or elegantly as M. Now for KCS...
Feature by Greg Truckell
Previous article in this issue:
Next article in this issue:
mu:zines is the result of thousands of hours of effort, and will require many thousands more going forward to reach our goals of getting all this content online.
If you value this resource, you can support this project - it really helps!