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. And its notion of ``open'' is certainly not that of traditional music theory. But, the sound isn't too bad.


To enable harmony notes, use a command like:

Solo Harmony 2

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

The following are valid harmony methods:

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

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.

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.

You can combine any of the above harmony modes by using a ``+''. 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.

There is no limit to the number of modes you can concatenate. Any duplicate notes generated will be ignored.

All harmonies are created using the current chord.

To disable harmony use a ``0'', ``-'' or ``None''.

Be careful in using harmonies. They can make your song sound heavy, especially with BASS notes (applying a different volume may help).

The command has no effect in DRUM or CHORD tracks.


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 harmony track playing half notes on a violin. The following snippet is extracted from the song file ``Cry Me A River'' and sets up 2 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.

Bob van der Poel 2017-03-25