Hybrid Arts Ludwig
Software for the Atari ST
Continuing the theme of computers and composition, Ludwig is Hybrid Arts' contribution to the growing selection of algorithmic composers currently available. Ian Waugh walks the dog.
Ludwig represents Hybrid Arts' first foray into the arena of music composition programs. Do its many manipulation features set it above the competition?
OF COURSE, YOU can tell Ludwig is a composition program from the title although the author, Tom Bajoras, would have us believe that it's named after Hybrid Arts' R&D Director's dog and not a German classical composer. Accordingly, click on the About Ludwig option under the Desk menu and you'll see Ludwig (the dog) wearing shades.
But has Ludwig anything new to offer the growing library of composition software? Well, if you've been following our regular coverage of composition programs (and the articles on Computer Composition, see elsewhere in this issue) you'll know that commercial composition programs generally have a bias towards one of two methods of operation - generation or manipulation. Dr T's Tunesmith (reviewed MT, January '89), for example, generates its own musical phrases (which it can then manipulate). Intelligent Music's M on the other hand, manipulates data entered by yourself and cannot generate its own material. Ludwig cannot generate its own material, unfortunately, and relies completely on user input. However, I think this is generally more useful than being restricted to lines the computer dreams up.
Ludwig will run on a 520 or a 1040 ST in high or medium resolution. The package includes a program disk, a demo disk (called Bones in keeping with the canine theme) and a manual in a sturdy binder. Let's see how the program is organised.
LUDWIG HAS EIGHT tracks. Each track holds data for a line of music (this can be up to 16-notes polyphonic) which is split in true algorithmic fashion into three series - pitch, duration and velocity. (See the Secrets of Computer Composition series for a more in-depth look at algorithmic processes.)
Next comes the concept of a Cell. Think of a Cell as Ludwig's equivalent of a drum machine pattern. The Pitch and Rhythm Series can each contain up to 1024 Cells. A Cell contains an arrangement of events - pitches, time values and so on - which are combined with other Cells to make a complete Track. When a Track is playing, play arrows move along the top and bottom rows of the Cells. The arrow in the lower half of the Cell shows which one is currently playing.
You can see the Cells in the middle of the screen in the accompanying screen dumps - they consist of an upper one or two-character mnemonic (the operator) and a lower figure (the operand). An operator is an instruction which may be simply to play back a pattern of notes or it may transpose or reverse it. Operands specify things like the number of the pattern being played or the amount by which a pattern is transposed. There are 30 pitch and 30 rhythmic operators.
The Velocity Series works in a slightly different way (it's mapped onto the Track) and can contain up to 32 steps. Each step can take one of eight user-definable velocity values ranging from ppp to fff. To make everything clear, the manual explains Ludwig's hierarchical organisation of data by referring the reader to a diagram - which isn't there. C'est la guerre.
Well, shades of Fingers' (reviewed MT, October '88) interactive series control elements here, I thought, but it's actually not as complicated as it may sound. Honest. A little use does help breed familiarity. However, the program is highly numeric in operation.
The main screen is divided into four sections each giving some information about one Track. Clicking on the Track box on the left calls up one of the other four Tracks. Clicking on the box below that cycles through the Pitch, Rhythm and Velocity Series, the contents of which are reflected in the Cells to the right. Only 32 Cells can be shown on screen at once and clicking on the lowest box will scroll through the Cells.
The manual starts by telling you to load a demo file and explaining some of the program's functions. Next you're encouraged to enter a pattern yourself. Although pitch and rhythm are treated separately, you can link them during recording and this is what the manual suggests you do.
A Series is limited to 32 notes or chords (in Ludwig terminology, a single note is also referred to as a chord) which are quantised during recording to note values of 1/4, 1/8, 1/16 or 1/32. In practice I found it very difficult to use the pitch/rhythm link, particularly with quantise values smaller than 1/8th note. The manual says problems can be caused by a variety of reasons but even relatively simple entries were difficult to record. The program expects a complete "hands off' between notes. Too long and you get a rest in your pattern; not long enough and the notes are bundled together under one step. Often only the first note or two will record: l never fathomed this out.
So far so unimpressive. The manual then bows out of the tutorial section and sets about describing the screens, menu options and their functions. I was little miffed at this as only about one percent of the program had been discussed. I do feel tutorials should be more substantial.
However, with some rudimentary knowledge of how Ludwig works let's put something in and see what comes out.
THE FIRST STEP is to enter a Pitch Series. We'll be conventional and start with the first Cell. Shift-clicking on the operand of the Cell calls up a grid-like Pitch Pattern editor. Each column in the grid represents one chord. Notes in a chord are toggled on and off by clicking on them. A chord can contain up to 16 notes and although you can scroll the column, notes are restricted to what can be shown in a column at any one time (a full 16-note chord therefore, would sound totally cacophonous).
Pitches can also be entered in semi-real-time from a MIDI keyboard. I found this by far the easiest and quickest method of pitch entry.
You can enter random pitch series by clicking on the Randomise box. These can be monophonic or polyphonic and you can add random notes to an existing melody line. Unfortunately these are completely random and the chances of salvaging anything melodically usable out of this procedure are limited.
You can create up to 96 user-defined patterns and give them names - very helpful.
The next stage is to create a Rhythm Series in the Rhythm editor. As already mentioned, you can enter a maximum of 32 rhythm steps per Cell. The durations are shown in traditional notation and range from a 32nd to a whole note. Values are increased and decreased by clicking on the notes. If you Shift-click you can move in increments which can be displayed as a single untied note.
You can also enter rhythms in real time but you face the same problems which are evident in pitch/link recording. There is a Condense function, however, which aims to help by removing rests and extending the durations to fill the gap.
ALTHOUGH PITCH AND Rhythm patterns are separate, you can link them together in the Pitch and Rhythm Editor screens. You can move from one editor to the other at the click of a button, which allows you to construct related pitch and rhythm series quite easily. To get them to play together in a Track, however, you must see that the corresponding Rhythm and Pitch Series Cells contain the associated patterns.
It's fairly easy to produce the kind of isorhythmic patterns associated with M although you may have to access a screen or two to see which patterns are involved and what they contain.
As Pitch and Rhythm Series can be of different lengths, they may not always tie up exactly as you would wish. You can, however, connect them in a Master/Slave relationship (not getting too Marquis de S, are we?) to pull one into line with the other.
"There are shades of Dr T's Fingers' interactive series control elements here, but it's actually not as complicated as it sounds - honest."
The Velocity Map dictates changes in velocity. As mentioned earlier, there are eight velocity levels (userdefinable) and you can add accents and a random shift to give a human feel.
There are many other editing facilities including track and Cell copy, insert, delete and fill functions and so on; enough to give versatile control over the construction of Cells - and thereby Tracks. Ludwig's real forte, however, is its ability to perform a vast number of manipulations on the Pitch and Rhythm Series, and it is these which lie at the centre of its compositional abilities.
Let's start with the Randomiser function. This takes two user-defined patterns and mixes them according to a few carefully-chosen (by you) settings. You need to specify the two patterns, the chords within those patterns which will be used, the order in which they play and what you want to do with them. Options include adding random notes and rests and selecting notes and chords from the combine patterns. Randomiser settings are made in the boxes on the right of the screen labelled Mix With.
Some of the functions involve chromatic and diatonic intervals and you can set eight diatonic scales to be used in these and other operations.
The other manipulation processes are called Transformations. There are separate Transformations for Pitch and Rhythm Series although some perform similar functions (all will be revealed in a moment). There are a total of 30 Transformations for each Series although some are simply loops and "play again" instructions. They're shown in a Cell's operator as a one- or two-character abbreviation.
THERE ISN'T ROOM to detail all the Transformations but we'll look at some of the more interesting and unusual ones. Pitch Series first.
Reflect pivots every note across a specified tone. For example, C reflected across D is E.
Expand/Compress calculates a mid point for each chord and then moves the notes in the chord further away from it (expansion) or closer towards it (compression).
Accompany uses one of the eight diatonic scales to place triads below a melody line.
Reverse reverses the order of a specified number of notes and Exchange Adjacent swaps adjacent pairs of chords. This can produce some nice musical variations.
Play Odd/Even plays only the odd or even notes in a pattern substituting rests for the other ones. Warp Melody inserts notes or rests between the chords. Un Chord breaks chords into their individual notes and plays them one after each other, arpeggio style.
Two easy ones - Substitute Rest substitutes rests for chords and Invert Chords inverts every chord in the pattern. This is very musical.
Mix Adjacent mixes together the pitches in adjacent chords (the length of a pattern, therefore, will be halved). This may or may not be musical.
Echo takes every chord in a pattern and repeats it a specified number of times although it will not lengthen the pattern beyond its 32-chord limit.
Harmonise Above and Harmonise Below add a note from a diatonic scale above or below the chord. You can specify the interval or leave it up to the program (random).
Rhythmic Transformations include Divide/Multiply which divides or multiplies each duration by a specified or random amount. This can be quite interesting. Durate sets all notes in the pattern to a multiple of a 32nd note.
Rests/Notes changes all notes in the pattern to rests or vice versa.
Reverse, Exchange Adjacent, Play Odd, Play Even, and Echo work in a similar way to their counterpart pitch transformations.
Warp Rhythm introduces timing errors to a pattern (human feel) while Rotate moves the pattern backwards or forwards in time. If you move it backwards, for example, the first note in the pattern will become the last note.
Random Order and Invert Note/Rest are fairly obvious. Mix Adjacent adds the duration of adjacent notes and rests. This doesn't increase the overall duration of the series, it just results in fewer durations.
"The demo pieces are rather good, although it's interesting to note, as ever, that the most 'musical' pieces make minimal use of random functions."
Split works a little like Echo but it changes the value of each note by a specified amount.
Finally, Swing introduces a swing feel by altering the durations of adjacent notes.
Most of the Transformations have several variations (made by altering the operand) which increase the variety of output even more.
As the play arrows move from Cell to Cell, each Transformation is applied to the result of the previous one. A long line of Transformations, therefore, could easily totally rehash the original pattern. For example, suppose you had the following series:
U RV HB
00 00 10
First, user-defined pattern 00 would play, then it would play again with a random number of its chords reversed. Then the reversed pattern would play with added harmonisation. To bypass the middle men, so to speak, the Combine function lets you combine the activities of two or more operations. Using it on the above example you would only hear the reversed and harmonised pattern.
You will probably recognise several manipulations here which have their foundation in traditional music composition techniques as well as some which are decidedly mathematically-based.
The Transformation section of the manual is excellent and shows exactly what happens to the transformed music in traditional notation. Ten out of ten here, Hybrid.
THERE ARE SEVERAL demo files on the Bones disk. The drum patterns are configured for the Kawai R100 and R50 (a popular choice?). To configure them for your machine you can reassign the note numbers on your drum machine or find the Ludwig patterns in the Pitch editor and change them (the demo doc tells you which pitches have been used). The demos are rather good although it's interesting to note - as ever - that the most "musical" pieces make minimal use of random functions.
There are options to transmit MIDI Sync and output Patch Change commands. Tracks can be soloed and muted and you can edit a Cell on the fly, too, although the results wont take effect until you exit the edit procedure.
During a performance, playback is stored in a play buffer which can be saved as a Song file and loaded into other Hybrid Arts sequencers.
Most mouse options have equivalent keyboard commands but many mouse operations require you to hold down a key on the ST's keyboard while clicking. This is rather a nuisance, albeit perhaps of a minimal nature, but why it is necessary to do this with some options (scrolling the columns in the Pitch Editor, for example) is a mystery. Have keyboard controls by all means but if you're going to give the user mouse control - do it! Let's not have to mess about with the computer keyboard as well.
Although the tutorial section is short, it does get you into the swing of things quite quickly. The manual does its best to be light and informative although an index wouldn't go amiss. You'll need to read it carefully, too - you won't get very far with Ludwig otherwise.
There are several niggles, inevitable in this sort of program, I suppose. Apart from the difficulties in recording rhythms in real time (could it be me?), an Undo option would be nice for those occasions when you randomise and marmalise a carefully-entered sequence. A command to blank a pitch or rhythm grid would be useful, too.
Changing durations in the Rhythm Editor is just a tad sluggish as various bits of the display update after each alteration. There is no confirmation prompt on the quit option. This is unforgivable (guess who accidentally clicked here when aiming for Hybriswitch? - which Ludwig is compatible with, of course).
Finally, because of the sheer amount of data and the number of manipulation facilities incorporated into Ludwig, you have to access several screens to see exactly what music the program contains. Entering and editing a few connected series requires a fair amount of clicking.
IF YOU'RE IN the market for a composition program there are more to choose from now than ever before. Comparisons become increasingly difficult and in any event a choice will be a highly personal decision.
M was the first composition program on the market and I confess a personal liking for its graphic approach. All the other composition programs are highly numerically-based, including Ludwig.
Although composition programs are fun - and, arguably, useful (I've used M to produce several pieces) - we've now passed the "Wow, gee whiz, look what this can do" stage of software development and I think users, musicians especially, expect software which is more immediately accessible than a page of numbers. However, just as most of the early sequencers were heavily into numbers while later ones seem to be adopting a more graphic approach, perhaps future composition programs will follow the same line of development.
Having got that little observation off my chest, Ludwig is intrinsically no more difficult to use or understand than any other numerically-based music program, so I can't really deduct Brownie points for that. It does have many more manipulation features than any other composition program currently on the market which elevates it to Blue Peter Badge status.
And that really is the bottom line. It'll be a long while before you've explored all of Ludwig's possibilities and, after all, isn't that why you use a composition program in the first place?
Price £129.95 including VAT
Review by Ian Waugh
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!