MMA can generate harmony notes for you ... just like hitting two or more keys on the piano! And you don't have to take lessons.

Automatic harmonies are available for the following track types: Bass, Walk, Arpeggio, Scale, Solo and Melody.

Just in case you are thinking that MMA is a wonderful musical creator when it comes to harmonies, don't be fooled. MMA 's ideas of harmony are quite facile. It determines harmony notes by finding a note lower or higher than the current note being sounded within the current chord or a specified interval. And its notion of “open” is certainly not that of traditional music theory. But, all that said, the results can be quite pleasing.


To enable harmony notes, use a command like:

Solo Harmony 2

You can set a different harmony method for each bar in your sequence.

There are two kinds of harmony: chordal and interval.

Chord Based

Harmonies based on the current chord examine the chord and select notes to add from that chord. This method ensures that the resulting harmony will be consonant ... but not necessarily exciting. The following mnemonic values can be used to set a chord-based harmony:

2 or 2Below
Two part harmony. The harmony note selected is lower (on the scale).

Two part harmony, the harmony note is lowered by an additional octave.

The same as “2”, but the harmony note is raised an octave.

The same as “2Above”, but the harmony note is raised by two octaves.

3 or 3Below
Three part harmony. The harmony notes selected are lower.

The same as “3”, but both notes are raised an octave.

Same as “3”, but the two harmony notes are raised by two octaves.

Same as “3”, but the two harmony notes are lowered by two octaves.

Open or OpenBelow
Two part harmony, however the gap between the two notes is larger than in “2”.

Same as “OpenBelow”, but the harmony note is lowered by an additional octave.

Same as “Open”, but the added note is above the original.

Same as “OpenAbove”, but the added note is raised by an additional octave.

The root note of the chord is added. If the note is the same as the root note, no harmony will be generated. See ROOTBELOW and ROOTABOVE, below, for alternatives.

RootBelow, Root8Below & Root16Below
The root note will be lower than the solo note. The “8” and “16” variants move the harmony note one or two octaves one or two octaves lower.

RootAbove, Root8Above & Root16
The root note will be higher than the solo note. The “8” and “16” variants move the harmony note one or two octaves up.

The top note of the current chord is added. If the note is the same as the chord's top note no harmony will be applied. Neither the octave of the current note or chord is considered in the calculation and this may result in unexpected results. See TOPBELOW and TOPABOVE, below, for alternatives.

TopBelow, Top8Below & Top16Below
The top note of the chord will be lower than the solo note. The “8” and “16” variants move the harmony note one or two octaves lower.

TopAbove, Top8Above & Top16Above
The top note of the chord will be higher than the solo note. The “8” and “16” variants move the harmony note one or two octaves higher.

Note Value Based

The following options do not look at the current chord, they just add a “harmony note” based on the current note. Since they are all simple octave relationships there should be no dissonances generated.

8 or 8Below
A note 1 octave lower is added.

A note 2 octave higher is added.

16 or 16Below
A single note two octaves below is added.15.1

A single note two octaves above are added.

24 or 24Below
A single note three octaves below is added.

A single note three octaves above is added.

Interval Based

You can harmonize using specific intervals ... these are not based on the current chord, but only as a mathematical relationship between notes. Intervals like this are quite common in commercial music, but you must be careful in MMA with this method since it is easy to create dissonant or clashing sounds (which you may or may not want).

Please note that the current scale/chord is not considered when determining the interval.

To specify an interval type harmony start a “name” with a leading “:” or an octave specifier and a “:” (the presence of a single “:” tells MMA that you want to use an interval). The octave can be any value between -4 and 4. This is the number of octaves to add or subtract to the interval. The “name” part of the interval can be specified in a two of different ways:

  1. Value: A single value specifying the number of semitones to offset the harmony note. For example:

    Solo Harmony :5

    would generate a harmony note 5 semitones above the solo note. This is the same as a perfect fourth.

    Adding the octave modifier:

    Solo Harmony -1:5

    will generate the same perfect fourth a full octave below the solo note. Other examples include:
    Arpeggio Harmony 2:2
    which generates harmony notes 26 semitones above the note, and
    Bass Harmony :24
    for “harmony” notes 2 octaves above the note.

  2. Mnemonic: A descriptive term for the interval. The following table lists the basic terms which MMA recognizes:
    Mnemonic Semitones
    Unison 0
    MinorSecond 1
    MajorSecond 2
    DiminishedThird 2
    MinorThird 3
    AugmentedSecond 3
    MajorThird 4
    DiminishedFourth 4
    PerfectFourth 5
    AugmentedThird 5
    AugmentedFourth 6
    DiminishedFifth 6
    PerfectFifth 7
    DiminishedSixth 7
    MinorSixth 8
    AugmentedFifth 8
    MajorSixth 9
    DiminishedSeventh 9
    MinorSeventh 10
    AugmentedSixth 10
    MajorSeventh 11
    DiminishedEight 11
    Octave 12
    AugmentedSeventh 12

    To make typing a bit easier, you can shorten any of Minor, Major, etc. to the first three letters (Min, Maj, etc.) and the values Second, Fifth, etc. to an integer (2, 5, etc.). So, “MajorSeventh” could be entered as “Major7” or “MajSeventh” or “Maj7”.

Many of the about intervals are going to sound “odd” to say the least. Others are duplications of the chord based intervals, for example “Octave” is the same as “8Above”.

Combining Harmonies

You can combine any of the above harmony modes by using a “+” (no spaces!). For example:

will produce harmony notes with an “Open” harmony and a note an octave below the current note.

will generate 2 harmony notes above the current note plus a note 2 octaves below.

will generate 3 notes: one 2 octaves below the current, one an octave below, and one an octave above.

generates 2 harmony notes: one a perfect fourth above, less an octave (same as a perfect fifth below) plus a note a full octave above.

Random Harmony Selection

You can force the selection of a random harmony by concatenating a number of harmony types with commas. For example:

Solo Harmony Open,OpenAbove,OpenBelow

will select a harmony from one of the types in the list. Each time a harmony note is needed a new random selection will be made.

The special type NONE can be used to cause no harmony note to be generated.

It is perfectly acceptable to combine a random selection with the “+” combination:

Bass Harmony Bottom+Open,OpenBelow,None

will force the bottom note of the current chord to be added to one of the harmony types, or if NONE is selected, no additional note at all.

As noted elsewhere in this section, no spaces are permitted in a random list (spaces are used to set harmonies for different sequence points).

Some notes and cautions


As a added feature to the automatic harmony generation discussed in the previous section, it is possible to set a track so that it only plays the harmony notes. For example, you might want to set up two ARPEGGIO tracks with one playing quarter notes on a piano and a HARMONYONLY track playing a violin. The following snippet is extracted from the song file “Cry Me A River” and sets up two different choir voices:

Begin Arpeggio
    Sequence A4
    Voice ChoirAahs
    Invert 0 1 2 3
    Octave 5
    RSkip 40
    Volume p
    Articulate 99
Begin Arpeggio-2
    Sequence A4
    Voice VoiceOohs
    Octave 5
    RSkip 40
    Volume p
    Articulate 99
    HarmonyOnly Open

Just like the HARMONY command, above, you can have different settings for each bar in your sequence. Setting a bar (or the entire sequence) to “-”, “None” or “0” disables the HARMONYONLY settings.

The command has no effect in DRUM or CHORD tracks.

If you want to use this feature with SOLO or MELODY tracks you can duplicate the notes in your RIFF or in-line notation or with the AUTOHARMONYTRACKS COMMAND.


By default, MMA will use a volume (velocity) of 80% of that used by the original note for all harmony notes it generates. You can change this with the the HARMONYVOLUME command. For example:

Begin Solo
  Voice JazzGuitar
  Harmony Open
  HarmonyVolume 80

You can specify different values for each bar in the sequence. The values are percentages and must be greater than 0 (large values work just fine if you want the harmony louder than the original). The command has no effect in DRUM or PLECTRUM tracks.


... added.15.1
Please don't confuse MMA 's idea of 16ABOVE (and other variants) with the proper musical notation of 15ma (often incorrectly shown as 15va), etc. A single note two octaves below another is 15, not 16, whole tones down.