There is also a GUI available called linuxband which is simple to use and provides some access to the functionality of MMA. Linuxband enables you to quickly create chord sequences for midi output and choose a "Groove" which is a musical style for the chords. Linux band requires the jack soundserver which is typically started up and configured using qjackctl. You may find, like me, that linuxband appears as an output port in qjackctl with nothing to connect it to, like so...
...because your input ports are all under the ALSA tab...
a2jmidid will also make software synths such as fluidsynth and its GUI frontend qsynth available as a writable client for linuxband.
There are a huge number of Band in a Box files available on the Internet so it's useful to have a utility that converts these files to MMA format. Alain Brenzikofer's Perl script no longer works with recent versions of Perl 5 (because of a deprecated function. I tried it on v5.16.1). Here is an amended version which will work. The download includes a gentoo ebuild which will pull in this version from my Web site. According to the documentation, the script can't convert all BIAB files but so far it has worked fine with everything I have tried.
If you are learning to improvise, it's useful to have a backing track in all 12 keys. This script (usage: transpose [file].mma) transposes an mma file into all the other keys of he chromatic scale. It assumes the mma file contains a Groove command.
The -T switch used with the mma command is very handy if you need to reduce the number of instruments in a backing track. I use this to create backing tracks containing only bass and drums. The -c switch displays which tracks are available in any given mma file.
Here are some midi files with bass and drums generated from mma which I use for jazz practice: