Ludwig:
Bones for an Obscure Dog
This month
Tim Conrardy looks at an obscure algorithmic
program from Hybrid Arts
What is
Ludwig?
Obscure fact: Ludwig gets its name not from
the famous composer we all know and love,
but the Hybrid Arts R&D director's dog!
Arf!
Ludwig is
an algorithmic application created by Tom
Bajoras, formerly of Hybrid Arts. It was
produced in the late 1980s at the time "M",
Tunesmith, Music Mouse and many other algorithmic
programs were the big thing of the day.
It is different to those applications in
that you have to choose "operations"
(the actual algorithm) that will happen
within a "cell" (a block of time)
and what pattern (scale, melody) it will
be applied to. You have different operations
that apply to pitch, rhythm and velocity.
Pitch operations would include, for example:
- Reverse
- Warp
harmony
- Diatonic
up
- Force
diatonic
- Invert
chords
- Play
highest/lowest
- Randomize
- Play
odd/even
- Chromatic
up
- Reflect
- Echo
- Substitute
rest
- Drop
a chord
All of the
above can be applied to a pattern that you
create, of which you can have 96 in memory
at a time. You can also have preset rhythms
that you can create and modify with similar
transformations. Fascinating results can
be obtained. The only condition however,
is to build up a library of patterns and
rhythms to work with initially so you have
starting points, or "bones" as
Ludwig calls it. You build a composition
by inserting "instruction" or
"operations" within cells. You
can have a total of 1,024 cells, which gives
a tremendous amount of room to string your
patterns and permutations of the patterns
together.
You can also
imagine it as an 8-track analog style sequencer.
Each track can be assigned a MIDI channel
as well as patch changes. It can also be
muted even while it is playing. You can
assign whatever patterns you have created
and then permutate those patterns with the
algorithms. You can do this for pitch, velocity
and rhythm. What a system!
Ludwig is
now freeware thanks to Tom Bajoras giving
permission for its release as well as his
other former Hybrid Arts programs. See the
Hybrid Arts page at TAMW (in the links section
here).
Within the
ZIP are a few libraries or "bones"
to make use of the program right away.
Ludwig
Tutorial By Tim Conrardy For this tutorial
, you will need LIB1.LWG (supplied in the
ZIP)
Beginning
- Double-click
on LUDWIG.PRG. The program loads.
- Go to
FILE on the menu and select LOAD LUDWIG
FILE. Find the LIB1.LWG file and select
it.
- A dialog
appears: LOAD LUDWIG PARAMETERS FROM
LIB1.LWG. You have a choice to select
which pitch and rhythm patterns you
want to use. For our tutorial, select
OK. This will select all of them. The
file loads into Ludwig's memory.
- To get
some initial output from Ludwig, hit
the spacebar to play what is currently
loaded.
- You
will see the screen divided up into
four sections. Tracks 1 through 4 are
shown. Track 1 is the only one "playing".
This is indicated by the two arrows
you see alternating between two "cells"
as they are called in Ludwig.
- In the
far upper right corner of the screen
you will see eight arrows in a row.
One arrow is in an "upward"
position. The others are down. These
are muting and unmuting switches for
each of the eight tracks in Ludwig.
Select the second arrow. The arrow goes
up, unmuting track 2. You will hear
a flurry of notes playing at the same
time as track 1. Select the second arrow
again, and the track is muted, returning
us to the original pattern on track
1. At this point, hit [Return] and Ludwig
stops.
The editors
and recording a pattern
- Let's
take a look at what makes Ludwig tick,
that is, by viewing the patterns in
the library we just loaded. Go to the
menu and select PATTERN, then PITCH.
You are taken to a dialog which lists
all the patterns in memory. They are
numbered starting at 00 and go to 29.
By clicking into the arrows at the bottom
of the screen, you can scroll to the
next screen of patterns. Clicking into
one of the names, you can edit the name
if so desired. However, for our purposes,
CONTROL-CLICK into a pattern name. This
will bring up the pattern creation screen.
You will see the notes used in the pattern
highlighted in the first row. Selecting
PLAY will play the notes.
- To record
a new pattern, select RECORD and play
your MIDI keyboard slowly so Ludwig
can "hear" the notes you are
entering. Remember you are only recording
the notes, not the rhythm. Rhythm is
dealt separately in Ludwig, so is velocity.
When you are done, hit the space bar.
You will see the notes you played in
the highlighted area. Select PLAY to
hear them back (You can also select
notes with the mouse instead of using
a MIDI keyboard). Now you can select
OK to keep the new pattern or CANCEL
to go back to the original pattern.
You are brought back to the Pitch Pattern
screen. Now select EXIT.
Note:
If you want to ADD to the library, go
to the next screen as described above
and CONTROL-CLICK into an empty pattern
field and create a new pattern as above.
Give it a new name as well. Remember
to save the file when you have completed
your session under FILE/SAVE LUDWIG
FILE.
- You
are now back at Ludwig's main screen.
Go to PATTERNS again on the menu and
select RHYTHM. The list of rhythms are
presented. CONTROL-CLICKING into a pattern
field will bring up the rhythm editor
where you can create your own rhythms.
For now, select CANCEL and you are brought
back to the main Ludwig screen.
Creating
variations
- Looking
at track 1, you will see in the first
cell a <U> with a <00> below
it. <U> stands for USER PATTERN
while <00> stands for pattern
number 00 in the pitch pattern list
we just viewed. Click into the U/00
cell so it is highlighed. Right-Click
on <00> and the number increases.
Left-clicking will decrease it. Change
it to <01>. This means we have
changed our user pattern to number 01
in the pitch patterns list. Get it?
Now click anywhere outside the field
in the screen and it becomes de-selected.
- Press
the space bar. You will hear a different
pattern playing than when we first started.
Now the fun begins! Click into the second
cell on the letters EC. A dialog appears
at the bottom of the screen for PITCH
SERIES OPERATIONS. These are the actual
algorithms you can use to create variations
to the initial seed pattern. For our
purposes, click into RF (Reflect) RF
goes into the cell, but it is still
highlighted. You can now put in a value
for how much reflection you want by
right-clicking into the number cell
under RF. Change it to <05>. Now
click outside the field to enter the
parameter, and the cell is de-selected.
You will now hear a change in the pattern
as the algorithm RF permutates it. Now
you can start having more fun as you click
into the next adjoining cells, select
different pitch series operations and
values and hearing what it does to the
initial "bone". Fascinating
variations can be created from one initial
seed pattern or bone.
- Now
click into the P (for Pitch) on the
TRK 1 field. It changes to a V and the
VELOCITY dialog appears for track 1.
Try selecting different velocities and
changing the different values to see
what it does to the music. Remember
the music is still playing as we do
this!
- Click
into the V, it changes to R for RHYTHM.
Clicking into the second empty cell
will bring up the RHYTHM SERIES OPERATION
dialog. Here, as in the pitch series,
you can select the different algorithms
and values to change and alter the RHYTHMS
of the initial seed pattern or bone.
Experiment! Clicking into R again and
you are brought back to the P(itch)
screen for track 1.
Random
variations
- Now
for something completely different.
On the right side of the track dialog
is a section that says MIX WITH <00>.
Right-Clicking into <00> will
allow you to enter a value. Change it
to <05>. This means pattern 01
(the initial seed pattern) will be mixed
with pattern 05. Below this is a dialog
for +/- <00>. Clicking into this
will allow you to put in a percentage
of how much pattern 05 will be mixed
with pattern 01. For our purposes, change
it to +/- <30>.
- Now
left-click into an empty slot below
the percentage dialog and another impressive
dialog presents itself: the PITCH RANDOMIZER
FUNCTIONS. There are many options for
random permutation. For our purposes,
select R :<select notes randomly>.
The R goes into the slot. You can select
more slots to put in more random functions.
However, we don't hear the permutations
yet. Remember, the music is still playing!
How come? We have to tell Ludwig where
we want the random permutations. We
do this by selecting another empty cell
in track 1 and selecting <?> RANDOMIZED.
Now the features we just programmed
will take place when Ludwig arrows to
the <?> cell.
More functions
- Now
you can try unmuting some tracks with
the top arrow keys, selecting different
patterns, pitch and rhythm series operations
in the same way we did for track 1.
Try to pick patterns and operations
that go well together. Some nice polyrhythmic
variations can be created.
- 17.
Press [Return] to stop Ludwig. Click
into TRACKS on the menu and select SUMMARY.
A dialog appears where you can assign
track names, MIDI channel, legato percentage,
patch number and Pitch/Rhythm Mesh (Yes
or No). Experiment with these settings
to see what sounds best. Exit when completed.
Recording
a Ludwig song
- To do
a recording in Ludwig, set up your patterns
and algorithms. Then press the space
bar to start Ludwig. Then Mute, unmute
tracks, and let Ludwig play through
the permutations. When completed, press
[Return]. Ludwig stops. Now go to FILE
on the menu and select SAVE SONG. The
file selector appears, give your song
a file name and hit OK, and it is saved.
The song is actually saved in Hybrid
Arts Edit-Track SNG format. To create
a MIDI file, you need to download Edit
Track (which is freeware now) and load
the .SNG in and convert it to a standard
MIDI file. From there you can export
it to your favorite sequencer, that
is unless Edit Track is your favorite
sequencer! Another method is to record
Ludwig's output directly into another
external sequencer either from another
computer or hardware sequencer, synth
workstation.
Bones
for a dog
There is
obviously more to this software than meets
the dog, er... bone! Experimentation is
the key to this program. I have found that
Ludwig's output is not static, but keeps
changing providing you input many variations,
but even then surprises me as I am rediscovering
this software. |