M: Interactive Composition
M was one of the first
algorithmic applications developed which we can still
use today as Tim Conrardy explains
What is M?
M is a one-of-a-kind program.
Developed by Intelligent Music in the '80s, it brought
together ideas of an "interactive" program
in which you actually use the computer in a compositional
process. In the words of the manual:
Your work develops
in three stages. First you specify basic musical material
as notes and chords. Then you determine the ways that
your basic material will be transformed. Then you perform
your music by manipulating screen controls, by playing
control keys on a MIDI keyboard, or by "conducting"
with the mouse on a multi-directional grid.
M (and other algorithmic
applications) tend to break down music into different
components (pitch, rhythm and articulation/duration)
that come under specific control of the user. More than
this, it offers interactive input from the user while the music is playing thus bringing it into the real-time
History of M
Here is a little history on M
according to David Zicarelli of Cycling74:
The first version
of M was written for the Apple Macintosh starting in
1986 at a small company started by Joel Chadabe based
in Albany, New York called Intelligent Computer Music
Systems, or Intelligent Music for short. The goal of
the company was to develop an "intelligent musical
instrument" that could take many forms, and M was
the result of the exploration of a particular form that
involved the manipulation of stored presets (called
variables) using on-screen conducting gestures. It was
designed to work with MIDI synthesizers. The authors
were David Zicarelli, John Offenhartz, Antony Widoff,
and Joel Chadabe. A preliminary version of M was released
in late 1986 and version 2.0 in 1988. Version 2.0 was
developed principally by David Zicarelli and contained
an entirely new interface and many new features such
as the Pattern Editor.
After the first version
of M was released for the Macintosh, it was ported to
other platforms. A version for the Atari ST was written
by Eric Ameres. A version for the Commodore Amiga was
written by Darien Fitzgerald that included an internal
sampling synthesizer. Voyetra developed and marketed
a version of M for the PC called M/pc.
The Atari version
I first started Tim's Atari MIDI World, I created an
M page and had a demo version of M that was downloadable.
Then an internet friend sent me a "libed"
copy of M, meaning it did not have copy protection.
I found out about http://www.cycling74.com where David Zicarelli was continuing
to upgrade the Mac version of M. I wrote him and asked
for permission to have the libed version as a download,
releasing it as freeware. He agreed. But I was still
disturbed that it was a libed version. I noticed that
the port to the Atari platform was accomplished by Eric
Ameres. At the time, I was also in communication with
Laurie Spiegel about Music Mouse, so I wrote her regarding
the whereabouts of Eric Ameres to see if there was an
unprotected "real" copy of M. She forwarded
my requests to Eric, and although Eric did not have
a "real" copy for me, he gave his consent
for the "libed" version and also gave permission
to release his own program called, "RealTime",
a fantastic MIDI sequencer with many algorithmic possibilities.
Thus, out of a chance communication and networking,
I was able to get two programs released, and began my
quest to write to programmers and companies to finally
release their former Atari MIDI applications.
We now have a "new"
version of M. The previous version was a "liberated"
copy that David and Eric still gave their consent to
release. This version is the "un-protected"
copy when M was being distributed by Dr T which lifted
copy protection from its products. It is version 1.25.
This version was supplied by Philip Louie of the Atari-MIDI
Mailing List. Download it below.
An Overview of M
You have several
screens presented at once:
The Control screen where
you can start and stop, conduct in the grid, adjust
tempo, enable keyboard control, enable MIDI Thru (echo)
and sync up the various voices as they are playing.
The Pattern screen. You
can choose what type of pattern you want, manipulate
clock delays, allow the MIDI keyboard to change the
key, enable a MIDI keyboard to record the pattern, and
also muting of each pattern. There are four patterns
that can be used at once.
The Note Manipulation
screen. This actually manipulates the note data for
each pattern. You can randomize, retrograde, and transpose.
There are presets you can program so when you click
into a certain box, the values change for each pattern.
The MIDI Variables screen.
Things like velocity (volume), MIDI channel assignment
and patch change commands can be routed for each pattern.
These can be stored as a preset for later activation.
The Cyclic Editor screen.
You can set up changes in or cycles of rhythms, articulation
and phrasing. This is where a lot of the fun happens
in manipulating your piece.
The Snapshot tool bar.
Here you can actually save many changes as a snapshot
for later recall when "playing" a piece. For
example, you want to have two patterns muted when you
start and have a certain sound on them, but then changes
to all four patterns un-muted with different sounds.
You could save this as two snapshot scenes.
To record your "piece",
you select the "movie" icon in the Control
screen and go for it. When you are done, it saves it
as a standard MIDI file (Type 0), which reminds me,
you can also import Type 0 MIDI files as raw material
for your patterns.
A Session with M
- Double-click on
M.PRG. Click on "nice work”. Program loads.
- Under Untitled click
on Start or press [Space]. Then click on Echo. This
allows you to play your MIDI keyboard and hear your
synth when you start inputting notes.
- Click on Patterns
- Select the first
icon under Type so it is highlighted.
- Go to Pattern on
the menu bar. Select Edit.
- A dialog appears
in the form of a keyboard. Click a note on the keyboard.
You should now hear a steady tone. Click on another
key on the keyboard. You will hear two notes going
back and forth between each other. Click on more
notes to develop a "pattern". An alternative
way to enter notes is to click on MIDI In on the
dialog and enter notes from your MIDI keyboard.
- When you are done
with the first pattern, Click on the "1"
at the top right of the dialog box until it changes
into a "2". The previous notes will be
cleared and you are ready to input a pattern for
- Input a pattern
for pattern 2 using your MIDI keyboard or the on-screen
keyboard. When you are done, click on "2"
until it changes into a "3".
- Input pattern 3.
Do the same for pattern 4.
- Close the edit dialog
box by clicking on the upper left corner of the
- At this point it
might sound rather unorganized. Go to the Untitled
window (or Global control window) and select Sync.
All the patterns will sync with each other.
- Now the fun begins! Go to the MIDI Variable window.
You will see three sections labelled Velocity, Orchest,
and Sounds. You will also see those sections divided
up into four smaller sections. These refer to the
four patterns. In the Velocity section, set different
velocities for each pattern by clicking on the sliders.
You can even set up presets of your settings by
clicking in the small windows above the sliders.
Orchest sets up your MIDI channels. For each pattern
you can have it transmitted to three MIDI channels
at once! You can also set up presets for your Orchest
settings by clicking on one of downward "tabs”.
Clicking in the Sounds section allows you to set
up patch changes for the corresponding MIDI channels
in the Orchest view. You can also set up presets
by clicking into the side downward tab. Experiment
with different sound combinations.
- Go to the Note Manipulation
window. Play with the note orders by dragging the
bars for each pattern. There are two bars to drag.
Experiment. There are three other columns titled
Note% (deals with percentage of random note ordering
you want), Direct (deals with the direction the
notes go, so a value of 0 will reverse the note
order completely) and Transp (which deals with transposition
values for each pattern. For example if you want
a bass part, set the transposition of one of the
patterns to C1). As on the MIDI Variable window,
you can have presets set up in the smaller side
- Next go to the Cyclic
Editor window. You will see it divided into four
sections corresponding to the four patterns. For
this example, select the small second box in the
grid for the second pattern. You will hear the rhythm
start to change. Go to the bottom area of the Cyclic
Editor where it says Duration and click in the third
small box (which is a preset). Hear the changes
in the duration of the patterns. Next go to the
Articulate presets and select the third box. Hear
more changes in the way the patterns are articulated
in rhythm. Next select the third preset in the Accents
column. Hear more changes with velocity levels going
up and down to create accents in the rhythm. From
here, try the different presets in the boxes. Also
try clicking into the grid to create changes.
- Now here is a neat
trick: go to the Patterns window. Under the "#b"
symbol, select that entire column for each pattern
so it is highlighted. Now hit any note on your MIDI
keyboard. All four patterns are transposed to the
key you played on the MIDI keyboard! Hit some more
notes. M follows what you play! Go to middle C to
return to the original key.
- Go to the "speaker"
icon on the Patterns window. Select one of the squares
in that column. This will mute that pattern. Try
muting some more, then un-mute all of them. This
might be a way to build up a piece, by starting
with one pattern and un-muting others as the piece
- Now to set up some
interactive presets. Click on the camera icon at
the bottom of the screen. It will start to flash.
Go back to the patterns window and mute three patterns.
Each click will produce a flashing effect. Then
click on "A" at the bottom tool bar. You
will see it fill. You have now made a preset for
later recall when you do a performance. Click on
the camera icon again and click on anything you
would like to create a preset for. Then click into
"B". How about changing sounds? Articulation,
velocity? Make as many presets as you want up to
- Press [Enter] or
click on the Start/Stop box in the Untitled window.
This stops M playing
- At this point, let's
save what we have so far (good idea!). Go to File,
select Save As. The file selector comes up. Put
in a name for the creation such as RIVER.MST. Remember
to put in the MST extension as M does not automatically
do that for you. Once the file is saved, you will
see the name Untitled replaced with the file name
you gave it. By the way, this window is called the
Global Control window. Let's take a look at it.
- In the Global Control
window you will see a bar at the bottom. This is
Tempo, so if you click into it, it changes the tempo.
Above that is a box called Ctrl/A. Clicking into
this so it is highlighted activates your MIDI keyboard
to remotely activate and control M. This is mentioned
in the manual. Above that is Echo which toggles
MIDI Thru on and off. To the side is a 6x6 grid.
Move the mouse into it. You will see the cursor
change into a hand with a baton. Clicking into this
grid with the baton allows you to "conduct"
M. As a matter of fact, it is called the Conducting
Grid. To activate it, look around the M screens
and windows. You will see arrows pointing to the
preset boxes. Click on one of these arrows and keep
pressing with the mouse until you see the arrow
turn into the preset box so it is pointing right
into a preset. Stop it there and make sure it is
highlighted. A good area to try this is on the MIDI
Variables screen for the Orchest and Sounds columns.
Make sure the arrows are turning down and highlighted.
Now, click into the conducting grid. You should
see the presets change as you click into the conducting
screen. Pretty cool eh?
- Now we are ready
to create a movie. On the Global Control window
is an icon that looks like a movie strip. This is
the movie icon. Click on it. This starts M in Movie
Mode and records any of your actions. Now press
[Space] or click on Start/Stop to get M playing.
Now start clicking into things including your presets,
snapshots, conduct in the grid... You are basically
doing a performance using M. Interact with the program
as that is what it was meant for. When you feel
you are complete, click on Start/Stop or hit [Enter]
on the computer keyboard. This will stop M. Next,
go to File, and select Save Movie File. The file
selector appears. Try to use the same name as your
original MST file, but put in the MID extension
(example: RIVERS.MID). You have now saved your performance
in M which you can bring into your favourite MIDI
sequencer program to add tracks, or embellish the
M parts, or just to play as-is.
- There is more of
course, such as importing MIDI files and using different
pitch distribution methods. Very briefly, on the
Patterns window, select an icon under Type so it
is highlighted. Then go to Pattern on the menu and
select New Pattern. A dialog appears for you to
select different types of ways to record patterns.
Look in the manual for descriptions on these. I
have not even touched on the other functions in
the Patterns window. Check the manual for these.
I hope this brief session
will be used to help you understand and enjoy this excellent
Credits for the Atari
version of M
go to Eric Ameres who ported the Mac version to the
Atari platform. David Zicarelli who coded the Mac version,
along with the support of Tony Widoff, John Offenhartz
and Joel Chadabe who was the glue that kept things together.
Both Eric and David have given permission to have the
Atari "M" as freeware.
Chadabe , original founder of
Intelligent Music and now at
EMF (Electronic Music Foundation)
has made available the Atari
"M" Docs in TXT format.
M page at Tim's Atari MIDI
Atari-MIDI Mailing List
has also explored M as a
group, so now there are
tutorials, M-specific files
as well as MIDI files, plus
an interactive MIDI experiment
called, "Doctor in
group supports the preservation
and advancement of electronic
music. Includes membership
info and a catalog of music
Web page of David
Zicarelli who is continuing
to upgrade the Mac version
of M as well as the Official
site for Max and MSP, providing
downloads, product descriptions,
and ordering instructions.
Check out the community
to chat with other musicians.