Issue 15: Jan 2002






Tip of the Day


My trip down the Champs-Elysées


'C'ing through the window 'pains'


Atari UK 2


Star Alliance - Battle for Earth


M: Interactive Composition




Calamus from scratch


Porthos 1.28


Put a Little Bee Under the Bonnet of your TT



[Tim's Atari MIDI World banner]
M: Interactive Composition

M was one of the first algorithmic applications developed which we can still use today as Tim Conrardy explains


[Screen-shot: M]

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 domain.

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 freeware release
When 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 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.

[Screen-shot: Pattern Group dialog]

A Session with M

  1. Double-click on M.PRG. Click on "nice work”. Program loads.
  2. 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.
  3. Click on Patterns window.
  4. Select the first icon under Type so it is highlighted.
  5. Go to Pattern on the menu bar. Select Edit.
  6. 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.
  7. 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 pattern 2.
  8. 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".
  9. Input pattern 3. Do the same for pattern 4.
  10. Close the edit dialog box by clicking on the upper left corner of the window.
  11. 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.
  12. 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.
  13. 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 columns.
  14. 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.
  15. 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.
  16. 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 progresses.
  17. 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 "Z".
  18. Press [Enter] or click on the Start/Stop box in the Untitled window. This stops M playing
  19. 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.
  20. 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?
  21. 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.
  22. 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 program.

M On!

[Screen-shot: New Pattern dialog]

Credits for the Atari version of M
Thanks 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.



Joel Chadabe , original founder of Intelligent Music and now at EMF (Electronic Music Foundation) has made available the Atari "M" Docs in TXT format.


Useful links

  • The M page at Tim's Atari MIDI World
  • The 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 the house". AOTM/FEB01.M/
  • Electronic Music Foundation
    Non-profit group supports the preservation and advancement of electronic music. Includes membership info and a catalog of music for purchase.
  • Cycling74
    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.


[ Top of page ]

MyAtari magazine - Feature #7, January 2002 


Copyright 2002 MyAtari magazine