Creative Sounds Improviser Software
Atari ST Software
Computer improvisation - genuine inspiration or deep bleep?
One of the major drawbacks of sequencer systems is their ability to rob your music of spontaneity - unless they're specifically designed to create it.
We are currently enjoying an epidemic of composition/arranger programs. Critical opinion concerning their actual worth seems to be divided - you tend to love 'em or hate 'em. But for anyone interested in computer assisted composition, there are lots of programs around at the moment to play with.
Personally, I love 'em. It's fascinating to see just how 'musical' (or not) the output of a collection of silicon chips can be. After all, they are attempting to imitate one of man's most unique abilities - music composition.
Improviser (review v1.1) was developed by jazz saxophonist Paul Hodgson and is described as a real-time interactive dedicated editor with the aim of assisting in the learning of instrumental improvisation and to help with composition. The declared intention of the program is not to replace human improvisation, but to use the computer as a tool to demonstrate different structures used in improvisation and to encourage exploration on your own. Worthy stuff. Let's see how it shapes up.
The first step is to set up your MIDI equipment to suit the program. It handles five parts - Bass, Drums, Harmony, Melody and Improvisation each of which can be set to transmit on any MIDI channel.
The program requires four tracks of music - Bass, Drums, Harmony and Melody - as raw material on which to do its stuff, which you load as a standard MIDI file. You can create your own input material (as long as you follow the format) in a sequencer which supports the MIDI File format.
However, Improviser has been designed to load files produced by Band-in-a-Box v5 and these work a treat. Load or create a song in Band and save it as a MIDI File. It's a lot easier doing this than creating a harmony, bass and drum track from scratch. Once you have an improvisation, of course, you can alter the other parts of the song if you wish.
The program derives its 'inspiration' from the Harmony and Melody tracks and it will follow the harmonic structure of a piece more closely if chords in the Harmony track use four or more notes.
The program was written in C and assembles and performs an amazing number of computations. As all actions take place on the fly, it reads ahead to analyse the harmonic content of the next bar in order that the settings you make on screen are correctly applied.
Adjusting the settings alters the improvisation line. The other four music parts stay the same although you can switch them on and off. This doesn't stop the on-going analysis, just the output.
Improviser was designed to be used in real time. In other words, as it plays a piece of music, you take charge of the improvisation it produces. There is only one screen which is divided into five areas.
The Melody button has an area to itself. It makes the Improvisation follow the melody line exactly and offers an instant "back to the tune, lads" option.
The area to the right-hand side of the screen contains four buttons. Same Chord will lock the harmony to the current chord and Same Note locks it to the current note. These are useful for analysing some of the other functions (coming up) although the Same Chord button could be used for extended improvisation (but bear in mind, this doesn't hold up the other parts - they trundle on regardless).
Seed gives the random number generator a jolt and the Chromatic button introduces a 99.9 per cent probability of chromaticism. At the bottom of the box is a Transpose function for altering the pitch of the improvisation.
In the top right of the screen is the Pattern box. There are 16 Melodic and Rhythmic patterns which can be scrolled through by clicking on the numbers. The patterns themselves are activated by toggling the Melodic and Rhythmic Pattern buttons on and off. If you select Pattern 17 and click on the Random Pattern button, the program will produce - you guessed - a random pattern. The manual says there are over 16 million possibilities. I didn't count 'em.
The best way to hear the patterns is to select the Same Chord button and run through the Melodic patterns one by one. Then select the Same Note button and run through the Rhythmic patterns. Try different combinations of Melodic and Rhythm patterns. You may well find some favourite combinations and some will lend themselves to certain tunes. Also bear in mind that the output is still dependent on the underlying harmony chord so you may well get different results depending on how complex this is.
At the bottom right of the screen are a set of note icons which the manual confusingly, I believe, calls Tempo Boxes. These set the note duration which the improvisation will use. A button in the middle of these icons switches the improvisation on and off - silence is important, too.
To the left are five sliders. One controls the volume of the improvised output, another the tempo of the whole piece and a third pulls or pushes the timing of the improvisation behind or ahead of the beat. The final two sliders control the chromatic content of the improvisation and the amount of "melody" which will be present in it.
Once you know what all the controls do, the program is fairly easy to use - natch - but the manual could be rather more helpful in this respect. For example, it doesn't explain that the Melodic and Rhythm Pattern buttons and the note duration buttons (Tempo Box) and sliders are mutually exclusive, the Pattern buttons taking precedence.
Now we load a file and improvise. One of the demo pieces is John Coltrane's 'Giant Steps'. It's probably worth mentioning - and it will no doubt come as no surprise to learn - that jazz, modern jazz in particular, works especially well with Improviser.
Here's how a typical session might go: select the Bass, Drums, Harmony and Improvisation parts to play, switch the Melody button on (so the improvisation part plays the melody) and click on Start. You'll hear the tune. While it's playing you can select a Melodic or Rhythm pattern, a note duration in the Tempo Box and adjust the Chromatic and Melodic Content sliders. This is just setting up as nothing will happen until you deselect the Melody button.
Let the chorus play once or twice then switch off the Melody button. If the Melodic and Rhythmic pattern buttons are switched on, these will kick into action. As you probably know, one 'aid' to improvisation is to repeat a melodic riff and/or a rhythmic riff. This is what these two buttons control. After a straight chorus you can jump into such a riff which, if you've selected it to compliment the music, can sound amazingly, er, life-like.
After a few bars of this your ears may twig that something rather mechanical - certainly repetitive - is going on. It's time to change the Melodic and/or Rhythmic patterns.
For more variation you can switch the Rhythmic Pattern off in which case the durations will be taken from the Tempo Box and you'll get runs of straight quavers, sixteenth or 32nd notes (longer durations are also available, for those sedate moments). Of course, you can't take more than a few bars of this either - without it appearing that the soloist is showing off - so while it's going on, select a different Rhythmic riff to return to.
The Melodic Patterns and the Chromatic and Melodic Content sliders have a similar relationship, so if you switch off the Melodic Pattern button you can alter the melodic nature of the improvisation with the sliders while retaining the rhythmic one.
Perhaps the most amazing thing about the program is that it actually works. It is quite possible to produce convincing improvisations with it in real time. As ever with all things computerate, garbage in equals garbage out, so you have to select the options to suit the music and select music which the program can suitably analyse.
The improvised data is stored in memory and can be saved as a MIDI File for loading back into your sequencer along with the original material ready for editing.
Although the improvisation is based on the Harmony and Melody lines, you could select a less busy setting and create a bass line. There's no reason why you can't send the output to the drum channel, too, although the result is more likely to be a 'texture' than have any direct relationship to the structure of the music.
The temptation to run some Bach through the program was too great for me to resist. It was necessary to fudge a drum track (which isn't used during the calculations but which is necessary for the file format) and I mixed a few music lines together to give the harmonic analyser something to work on. If Improviser doesn't have enough harmonic material it can't work out the correct chords from which the scales and the notes for the improvisation will be derived.
I also constructed a harmony line for 'Flight of the Bumble Bee' - nothing like giving a program a challenge, is there? Credit where credit's due, Improviser handled it very well indeed, considering the volume of melodic data although it did trip up a few times. I used some carefully-selected Melodic Patterns and set the Tempo Box to 16th notes. Jumping back and forth between the Melody and Improvisation produced quite convincing results. One tip - if you are using complex material, slow down the tempo to give the program thinking time. You can always speed it up when it's back in your sequencer.
I also fed it Steeleye Span's seminal 'Gaudet' and although you could force it to keep up with the four-part harmonies - most of the time - you got the impression that it wasn't very happy. Still, it produced some lines which were useable and the whole thing sounded reasonably impressive using a vocal pad.
The current version of the program allows you to create and load your own Melodic and Rhythmic patterns. Essentially, you construct a 16-note melodic pattern in a sequence - following carefully the instructions in the READ.ME file on disk - save it as a MIDI File and load it into Improviser. You can construct- up to 16 consecutive patterns, each of which will replace the corresponding default patterns.
Rhythmic phrases can be constructed in a similar way but these are only one bar long. The pitch values used are ignored. Example melodic and rhythmic patterns are supplied so you can learn by example.
This opens up Improviser considerably as you can tailor the patterns to suit any particular tune or style of music. Many of the default riffs have their basis in modern jazz and simply don't work well with classical music - or heavy metal or rock for that matter.
Substituting some sedate scales for the patterns produced more convincing classical improvisations while concentrating on sixths and ninths produced an MOR feel. HM fans can chop out the thirds...
While the output has bursts of what, in a human player, would probably be described as inspiration, you must accept that it is also likely to contain the results of some less than inspired moments. The program is optimally designed to be used with a sequencer in which you can make the most of its glowing, muse-filled moments.
The default patterns demonstrate Improviser's predilection for jazz and I suppose I wouldn't disagree with any cynic who describes it as "A medium in which the odd wrong note is not only tolerated but encouraged". However, within that free harmonic and rhythmic framework, Improviser works very well and can be, I repeat, extremely convincing.
One of the program's main areas of operation is education, an area in which Paul Hodgson reports considerable success. He hopes the program will be used to train pupils to listen to and analyse the output rather than making them rely on printed notation. He's already had one, er, difference of opinion with an educational buff who insisted that such a teaching aid should use notation. Our children's musical future is in these hands?
Of course, an improvisation can be saved and loaded into a scorewriter for analysis later, but Paul believes that education's reliance on printed music over the past 200 years (we're talking heavy trends here) has led to a dramatic reduction in the ability to improvise, especially in the classical field. Thought for discussion perhaps, but what price a cadenza now?
While working with the program, I did come up with a few wishes and wants. These include on-screen MIDI channel and Program Change controls rather than having to pull them down from a menu, and the ability to send Program Changes on the fly. Also, Program Changes are, unreasonably, limited to the range 0 to 99.
The program has been designed with "no moving parts" (at least during play) deliberately, in order to encourage listening rather than watching. I also wonder if the Start and Stop buttons couldn't be closer together. And what about a Pause button, some fast forward and rewind controls and a Loop function so you can concentrate on getting problem areas right?
The program has a few bugs and inconsistencies although it now detects an incorrect file format (which caused lock-up problems with v1.0) so it protects itself from the worst excesses of your imagination and MIDI programming.
Although the program is easy to use - once you know how - the manual could be rather more helpful. The functions, the way they react with each other and their effect on the improvised output, unfortunately, are not really adequately explained. Some areas of the screen aren't adequately named, either. For example, the Melodic and Rhythmic Pattern area at one point is referred to as the Melodic Pattern Loop Box. Minor points, perhaps, but they need addressing. The good news is, the author is considering a completely new manual which will not only detail all the functions but also include comprehensive instructions on the art of improvisation. Definitely something to look forward to. Experimentation is the order of the day and you'll have to spend time with the program rather than with the manual to suss it out. But don't let that put you off. Improviser is a fascinating program with much potential not only in education butTor anyone interested in computer-assisted composition. If you're a jazzer you'll love it.
Gear in this article:
Review by Ian Waugh
Previous article in this issue:
Next article in this issue: