Bob van der Poel on the Web - Music, Software and Useless Stuff

We've moved ... you will be redirected to our new site in 5 seconds.

Musical MIDI Accompaniment

Welcome to the home page and central clearing house for MMA

"Musical MIDI Accompaniment" is an accompaniment generator--it creates midi tracks for a soloist to perform over from a user supplied file containing chords and MMA directives.

MMA is very versatile and generates excellent tracks. It comes with an extensive user-extendable library with a variety of patterns for various popular rhythms, detailed user manuals, and several demo songs.

MMA is a command line driven program. It creates MIDI files which are then played by a sequencer or MIDI file play program.

MMA is written in Python. You'll need version 2.4.0 or greater of Python for MMA to work.

MMA is currently in BETA. We are looking for lots of help in debugging the program, creating songs for distribution, and new and improved library files.

There are lots of other generators like MMA. The most popular are "Band In A Box" and "Jammer". The problem with many of these programs is that they lock you into a proprietary format, work only with limited computing platforms, or insist on a silly GUI which limits your choices. You might think that the lack of a GUI is limiting, but we've found that MMA's method gives you a great deal of flexibility in setting volumes, patterns, etc.

MMA is free! Yes, this means you don't have to pay for it--more importantly it means that you can use (or even change) MMA in any manner you want. MMA is released under the terms of the GNU General Public License.

MMA is developed on a Linux platform, but should be usable on just about any modern computer system.

Yes, it works on Windows and Mac!

To help, Michael Mlivoncic has kindly prepared this Windows Installation Guide which should make it easy to get going on various Windows flavors. And David Asorey Álvarez has a package ready to install at

Jeff Balvanz has helped prepare the Mac Installation Guide which will get you running on Mac OS X.

The most current version of MMA is 1.0-rc2a. The following sections let you download MMA.


The main MMA archive is really all you need. It includes:

  • mma - the executable python script,
  • modules - the various python modules needed to run MMA,
  • lib - a set of standard library files which contain MMA patterns for different rhythms,
  • egs - a few simple demo songs and more complicated examples,
  • docs/html - the entire set of documentation files in HTML format.

After downloading this file you need to unpack it (a directory consisting of "MMA" and the version number will be automatically created). The magical incantation:

tar xzf mma-bin*tar.gz
should work just fine. Then run the one of the install scripts (either ln-install or cp-install). Read the file text/INSTALL for details, but we recommend using ln-install.

This will create the needed system directories and install the PYTHON modules and the standard MMA library. The script has been designed for Linux ... follow these instructions for Windows and if you install this on a different OS, please let us know just what problems you had and your solutions.

This is a Unix/Linux tar.gz file. Filesize: 546726 bytes.

Download: mma-bin-1.0-rc2.tar.gz

PDF Documentation

The documentation for MMA consists of 3 PDF files:

  • mma.pdf - a 167 page printable manual.
  • mma-tut.pdf - a short tutorial.
  • mma-lib.pdf - reference to the standard mma library.

The HTML docs supplied with the main distribution are extracted from the PDF files. You should have both sets if for no other reason that the PDF files look much nicer.

This is a Unix/Linux tar.gz file. Filesize: 1078996 bytes.

Download: mma-pdf-1.0-rc2.tar.gz


This archive contains about 350 songs which I've converted to MMA. They are mostly jazz standards, but a few country and Latin songs can also be found. Please respect other people's copyrights--these files are supplied for educational purposes only and should most likely not be used for public performance.

All the song files are packed into a single Unix/Linux tar.gz file. Filesize: 132842 bytes.

Download: mma-songs-1.0-rc2.tar.gz

Sample MMA Input

This is a real-life MMA file for the Cole Porter tune "I've Got You Under My Skin" (very short file...under 1K).


Sample MMA Output

And here is the MIDI file created by MMA (this midi file is about 45K).

Download: ive-got-you-under-my-skin.mid

Chord Documentation

In addition to the main reference manuals we have prepared an auxiliary PDF document listing in both text and standard music notation all the chords and scales supported in MMA.

This is a compressed Unix/Linux .gz file. Filesize: 32363 bytes.

Download: chords.pdf.gz

File Conversion and Other Aids

We are getting some help from our friends! We're glad to have some helpful programs and other utilities to help you use MMA to its fullest.

ys2mma.tar.gz contains the script and a short README. If you use this I would appreciate feedback.
I use the music notation program MUP for my notation needs. The program mup2mma is a short Python program which aids in extracting the chords for MMA. See the notes at the top of the program for operational details.
For our Spanish-speaking users, David Asorey Álvarez has done a tutorial in Spanish.
Our friends at have opened up a discussion forum for us. They will also be hosting some style and song files. I highly encourage you to visit and participate.
I've been using the kate text editor and have written a syntax highlighting file. The program will generate the necessary xml file for kate. After downloading the file, run it with the command ./ >mma.xml, install the xml file with the others that kate uses (probably in the directory /usr/share/apps/katepart/syntax). This file can be improved--your help is solicited.
Our friend Alain Brenzikofer has written a nice Perl script to extract MMA chord files from "Band In A Box" files. Get his biabconverter and have fun!
San Vu Ngoc has created a very nice Emacs mode for MMA. He is kindly hosting this file on his site: MMA Emacs.

I've finally convinced myself that emacs-is-not-evil and really wish I'd done so years ago. Really, the learning curve isn't that bad. And the upshot is that modes (like this one) are very useful. So, if you aren't using emacs yet, do consider it.

Hervé Christol uses the SciTE editor, a free source code editor for win32 and linux, and has written a nice highlighter. It's available on his site at Thank you!
Gek S. Low has written a program to extract chords from abc2mps generated ABC files. Neat part is that it'll also create the correct lines for the MMA script to include melody lines generated by abc2midi. Cool. Get it at abc2mma.

Back To Bob's Home Page

Web Design--Bob van der Poel
This page "index.html" was last modified on October 17, 2006