Automatic Melodies: Aria Tracks

ARIA tracks are designed to let MMA automatically generate something resembling melody. Honest, this will never put real composers on the unemployment line (well, no more than they are mostly there already).

You might want to use an ARIA to embellish a section of a song (like an introduction or an ending). Or you can have MMA generate a complete melody over the song chords.

In a traditional song the melody depends on two parts: patterns (IE. note lengths, volume, articulation) and pitch (usually determined by the chords in a song). If you have been using MMA at all you will know that that chords are the building block of what MMA does already. So, to generate a melody we just need some kind of pattern. And, since MMA already uses patterns in most things it does, it is a short step to use a specialized pattern to generate a melody.

It might serve to look at the sample song files enclosed in this package in the directory egs/aria. Compile and play them. Not too bad?

Just like other track, you can create as many ARIAs as you want. So, you can have the tracks ARIA-1, ARIA, and ARIA-SILLY all at the same time. And, the majority of other commands (like OCTAVE, ARTICULATE, HARMONY, etc.) apply to ARIAs.

The following commands are important to note:

Set the octave range to use. A RANGE of 2.5 would let MMA work over two and one-half octaves, etc.

Set the type of “scale” to use. By default, the setting for this is CHORD. But, you can use AUTO, SCALE, CHORD, KEY or CHROMATIC. AUTO and SCALE are identical and force MMA to select notes from the scale associated with the current chord; CHROMATIC uses a twelve tone scale starting at the root note of the chord; CHORD forces the selection to use the notes in the current chord; KEY sets the scale to one based on the current key signature (see here).

In addition, each of the above listed SCALETYPEs can have a single “-” (minus sign) appended to it. In this case the list of notes used for the melody will be depleted until all the notes are used or there is a key change, chord change, etc. This mode will, mostly, avoid repeated notes. You might even think of it as a poor man's 12 tone composition tool (it really, really isn't).

As MMA processes the song it moves a note-selection pointer up or down a list containing the notes in the selected scale. The scale can be any of the SCALETYPEs described above. By default DIRECTION is set to the single value "1" which tells MMA to add 1 to the pointer after each note is generated. However, you can set the value to an integer -4 to 4 or 1, 2, 3 or 4 “r”s. The “r” settings create random directions (you can have 1 to 4 “r”s):

# of 'r's Direction Adjust
r -1 to 1
rr -2 to 2
rrr -3 to 3
rrrr -4 to 4

Important: in an ARIA track the sequence size and its current value (based on the current measure) is ignored for DIRECTION.

A bit more detail on defining an ARIA:

First, here is a simplified sample track definition:

Begin Aria
   Voice JazzGuitar
   Volume f
   Sequence {1.5 8 90; 2 8 90; 2.5 8 90; \
      3 8 90; 3.5 8 90; 4 8 90; 4.5 8 90}
   ScaleType Scale
   Range 1
   Direction 0 0 1 2 -4 0 1 r

Next assume that we have a few bars of music with only a CMajor chord. The following table shows the notes which would be generated for each event in the set SEQUENCE:

Event Direction Offset Pointer Note
1 0 0 c
2 0 0 c
3 1 1 d
4 2 3 f
5 -4 6 b
6 0 6 b
7 1 0 c
8 r ?? ??

If you were to change the SCALETYPE or RANGE you would get a completely different series. Really, tables like this one are very difficult to determine and quite useless. Just try different DIRECTION and RANGE settings, SCALETYPEs, etc. Most combinations will sound fine, but Chromatic scales might not be to your liking.

Please note the following:

You can make dramatic changes to your songs with a few simple tricks. Try modifying the DIRECTION settings just slightly; use several patterns and SEQRND to generate less predictable patterns; use HARMONYONLY with a different voice and pattern.

Suggestion: Since very minor changes in any ARIA setting can make dramatic changes in the resulting output we strongly suggest that you start with very simple SEQUENCE and DIRECTION commands. Trying to listen to and debug complicated settings will be a frustrating experience. Start simple and listen to what is going on. Then add enhancements to your liking.

Oh, and have fun!