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, etc.) apply to ARIAs.

The following commands are important to note:

Range
Just like scale tracks. A RANGE of 2 would let MMA work on a 2 octave chord, etc.

ScaleType
Much like a scale track. By default, the setting for this is CHORD. But, you can use AUTO, SCALE or CHROMATIC. AUTO and SCALE are identical and force MMA to select notes from the scale associated with the current chord; CHROMATIC generates an 11 tone scale starting at the root note of the chord.

Direction
As MMA processes the song it moves a note-selection pointer up or down. By default DIRECTION is set to the single value "1" which tells MMA to add 1 after each note is generated. However, you can set the value to an integer -4 to 4 or the special value "r". With "r" a random value -1, 0 or 1 will be used. Important: in an ARIA track the sequence size/point 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
Direction r 0 0 1 -1 0 0 1 r

Next assume that we have a few bars of music with only a CMajor chord the default RANGE of ``1'' and the default SCALETYPE of ``Scale'. The following table shows the notes which would be generated for each time event:

Event Offset Pointer Note
1 0 c
2 0 c
3 1 e
4 3 $\Rightarrow$ 0 c
5 4 $\Rightarrow$ 0 c
6 -2 $\Rightarrow$ 2 g
7 random c, e or g
8 random c, e, or g
9 .... etc.

In the above table the ``$\Rightarrow$'' indicates that the offset is out-of-range and converted to the second value.

If you were to change the SCALETYPE or RANGE you would get a completely different series.

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 HARMONLYONLY with a different voice and pattern.

Oh, and have fun!

bob 2008-09-28