next up previous
Next: Tempo and Timing Up: Reference Manaul Previous: Solo and Melody Tracks

Subsections


Chord Voicing

In music, a chord is simply defined as two more notes played simultaneously. Now, this doesn't mean that you can play just any two or three notes and get a chord which sounds nice--but whatever you do get will be a chord of some type. And, to further confuse the unwary, different arrangements of the same notes sound better (or worse) in different musical situations.

As a simple example, consider a C major chord. Built on the first, third and fifth notes of a C major scale it can be manipulated into a variety of sounds:

\includegraphics[width=.8\textwidth]{mupex/cmajor}

These are all C major chords ...but they all have a different sound or color. The different forms a chord can take are called ``voicings''. Again, this manual is not intended to be a primer on musical theory--that's a subject way beyond our abilities, and (again) we really recommend your favorite music teacher and the study of basic music theory if you want to understand how and why MMA creates its tracks.

The different options in this chapter effect not only the way chords are constructed, but also the way bass lines and other tracks are formed.

There are generally two ways in MMA to take care of voicings.

  1. use MMA's extensive Voicing options, most likely with the ''Optimal'' voicing algorithm,

  2. do everything by yourself with the commands Invert and Compress.

The commands Limit and DupRoot may be used independently for both variants.

Voicing

The Voicing command is use to set the voicing mode and several other options relating to the selected mode. The command needs to have a Chord track specified and a series of Option=Value pairs. For example:

Chord-Piano Voicing Mode=Optimal Rmove=10 Range=9

In the following sections we will cover all the options available.

Voicing Mode

The easiest way to deal with chord voicings is to via the Voicing Mode=XX option.

When choosing the inversion of a chord to play an accompanist will take into consideration the style of the piece and the chord sequences. In a general sense, this is referred to as ``voicing''.

A large number of the library files have been written to take advantage of the following voicing commands. However, not all styles of music take well to the concept. And, don't forget about the other commands since they are useful in manipulating bass lines, as well as other chord tracks (eg. sustained strings).

MMA has a variety of sophisticated, intelligent algorithms10.1 to deal with voicing.

As a general rule you should not use the Invert and Compress commands in conjunction with the Voicing command. If you do, you may create beautiful sounds. But, the results are more likely to be less-than-pleasing. Use of voicing and other combinations will display various warning messages.

The main command to enable voicings is:

Chord Voicing Mode=Type

As mentioned above, this command can only be applied to Chord tracks. Also note that this effects all bars in the sequence ...you cannot have different voicings for different bars in the sequence (attempting to do this would make no sense).

The following MODE types are available:

Optimal
A basic algorithm which automatically chooses the best sounding voicing depending on the voicing played before. Always try this option before anything else. It might work just fine without further work.

The idea behind this algorithm is to keep voicings in a sequence close together. A pianist leaves his or her fingers where they are, if they still fit the next chord. Then, the notes closest to the fingers are selected for the next chord. This way characteristic notes are emphasized.

Root
This Option may for example be used to turn off Voicing within a song. Voicing Mode=Root means nothing else than doing nothing, leaving all chords in root position.

None
This is the same as the Root option.

Invert
Rather than basing the inversion selection on an analysis of past chords, this method quite stupidly tries to keep chords around the base point of ``C'' by inverting ``G'' and ``A'' chords upward and ``D'', ``E'' and ``F'' downward. The chords are also compressed. Certainly not an ideal algorithm, but it can be used to add variety in a piece.

Compressed
Does the same as the stand-alone Compress command. Like Root, it is only added to be used in some parts of a song where Voicing Mode=Optimal is used.

Voicing Range

To get wider or closer voicings, you may define a range for the voicings. This can be adjusted with the Range option:

Chord-Guitar Voicing Mode=Optimal Range=12

In most cases the default value of 12 should work just fine. But, you may want to fine tune ...it's all up to you. This command only effects chords created with Mode=Optimal.

Voicing Center

Just minimizing the Euclidean distance between chords doesn't do the trick as there could be runaway progressions that let the voicings drift up or down infinitely.

When a chord is ``voiced'' or moved to a new position, a ``center point'' must be used as a base. By default, the fourth degree of the scale corresponding to the chord is a reasonable choice. However, you can change this with:

Chord-1 Voicing Center=<value>

The value in this command can be any number in the range 0 to 12. Try different values. The color of your whole song might change.

Note that the value is the note in the scale, not a chord-note position.

This command only effects chords created with Mode=Optimal.

Voicing Move

To intensify a chord progression you may want to have ascending or descending movement of voicings. This option, in conjunction with the Dir optional (see below) sets the number of bars over which a movment is done.

For the Move option to have any effect you must also set the direction to either -1 or 1. Be careful that you don't force the chord too high or low on the scale. Use of this command in a Repeat section can cause unexpected results. For this reason we suggest that you include an Seq command at the beginning of repeated sections of your songs.

In most cases the use of this command is limited to a section of a song, its use is not recommended in groove files. You might want to do something like this in a song:

..select groove with voicing
chords..
Chord-Piano Voicing Move=5 Dir=1
more chords..
Chord-Piano Voicing Move=5 Dir=-1
more chords..

Voicing Dir

This option is used in conjunction with the Move option to set the direction (-1 or 1) of the movement.

Voicing Rmove

As an alternate to movement in a specified direction, random movement can add some color and variety to your songs. The command option is quite useful (and safe to use) in groove files. The argument for this option is a percentage value specifying the frequency to apply a move in a random direction.

For example:

Chord-3 Voicing Mode=Optimal Rmove=20

would cause a movement (randomly up or down) in 20% of the bars. As noted earlier, using explicit movement instructions can move the chord into an undesirable range or even ``off the keyboard''; however, the algorithm used in RMOVE has a sanity check to ensure that the chord center position remains, approximately, in a two octave range.


Compress

When MMA grabs the notes for a chord, the notes are spread out from the root position. This means that if you specify a ``C13'' you will have an ``A'' nearly 2 octaves above the root note as part of the chord. Depending on your instrumentation, pattern, and the chord structure of your piece, notes outside of the ``normal'' single octave range for a chord may sound strange.

Chord Compress 1

Forces MMA to put all chord notes in a single octave range.

The effects vary from track to track:

Drum, Scale, Bass, Solo/Melody and Walking: No effect.

Chord, Arpeggio and Bass: High notes in the chord are reduced by one octave (this means that the complete range of a chord will be limited to one octave).

Notes: Compress takes any value between 1 and 5 as arguments (however, some values will have no effect as detailed above). You can specify a different Compress for each bar in a sequence. Repeated values can be represented with a ``/'':

Chord Compress 1 / 0 /

To restore to its default (off) setting, use a ``0'' as the argument.

For a similar command, with different results, see the Limit command ([*]).


DupRoot

To add a bit of fullness to chords, it is quite common of keyboard players to duplicate the root tone of a chord into a lower (or higher) octave. This is accomplished in MMA with the command:

DupRoot -1 1 -1 1

The command determines whether or not the root tone of a chord is duplicated in another octave. By default notes are not added. A value of -1 will add a note one octave lower than the root note, -2 will add the tone 2 octaves lower, etc. Similarly, the value of 1 will add a note one octave higher than the root tone, etc.

Only the values -9 to 9 are permitted.

Different values can be used in each bar of the sequence.

The option is reset to 0 after all Sequence or SeqClear commands.

The DupRoot command is only valid in Chord tracks. A similar command is Duplicate ([*]).


Invert

By default MMA uses chords in the root position. By example, the notes of a C major chord are C, E and G. Chords can be inverted (something musicians do all the time). Sticking with our C major chord, the first inversion shifts the root note up an octave and the chord becomes E, G and C. The second inversion is G, C and E.

MMA extends the concept of inversion a bit by permitting the shift to be to the left or right, and the number of shifts is not limited. So, you could shift a chord up several octaves by using large invert values.10.2

Inversions apply to each bar of a sequence. So, the following is a good example:

SeqSize 4
Chord-1 Sequence STR1
Chord-1 Invert 0 1 0 1

Here we set the sequence pattern size to 4 bars and set the pattern for each bar in the Chord-1 track to ``STR1''. Without the next line, this would result in a rather boring, repeating pattern. But, the Invert command forces the chord to be in the root position for the first bar, the first inversion for the second, etc.

You can use a negative Invert value:

Chord-1 Invert -1

In this case the C major chord becomes G, C and E.

Note that using fewer Invert arguments than the current sequence size is permitted. MMA simply expands the number of arguments to the current sequence size. You may use a ``/'' for a repeated value.

A Sequence or ClearSeq command resets Invert to 0.

Invert can be used in any track context, however, it does not effect Drum or Walk tracks.

Let's see what happens with a Bass track that's been inverted. First off the pattern and sequence definitions:

Bass define X1 0 4 0 60; 25 4 2 60; 50 4 0 60; 75 4 2 60
Bass Sequence X1
Bass Invert 0 1 0 1

The define says to play quarter notes on each beat. On beats 1 and 3 we play the root (0 is the first note in the chord); on beats 2 and 4 we play the fifth (2 is the 2nd note in the chord and is the fifth of the scale). If you are expecting different notes to be played on the second and fourth bars you'll be (somewhat) disappointed. No matter what inversion is used the first note of the chord remains the root--only the octave of the note will be changed.

Frankly, Arpeggios sound a bit odd with inversions.

If you use a large value for Invert you can force the notes out of the normal MIDI range. In this case the lowest or highest possible MIDI note value will be used.


Limit

If you use ``jazz'' chords in your piece, some people might not like the results. To some folks, chords like 11th, 13th, and variations have a dissonant sound. And, sometimes they are in a chart, but don't really make sense. The Limit command can be used to set the number of notes of a chord used.

For example:

Chord Limit 4

will limit any chords used in the Chord track to the first 4 notes of a chord. So, if you have a C11 chord which is C, E, G, B$\flat$, D, and F, the chord will be truncated to C, E, G and B$\flat$.

This command only applies to Bass, Chord and Arpeggio tracks. It can be set for other tracks, but the setting will have no effect.

Notes: Limit takes any value between 0 and 8 as an argument. The ``0'' argument will disable the command. This command applies to all chords in the sequence--only one value can be given in the command.

To restore to its default (off) setting, use a ``0'' as the argument.

For a similar command, with different results, see the Compress command ([*]).


Range

For Arpeggio and Scale tracks you can specify the number of octave used. The effects of the Range command is slightly different between the two.

Scale: Scale tracks, by default, create three octave scales. The Range value will modify this to the number of octaves specified. For example:

Scale Range 1

will force the scales to one octave. A value of 4 would create 4 octave scales, etc.

Arpeggio: Normally, arpeggios use a single octave (really, they use whatever notes are in the chord, which might exceed the octave). Using the Range command we specify the number of octaves to use. The values of ``0'' and ''1'' have the same effect.



Footnotes

... algorithms10.1
Great thanks are due to Alain Brenzikofer who not only pressured me into including the Voicing options, but wrote a great deal of the actual code.
... values.10.2
We've used the term ``shift'' here, but that's not quite what MMA does. The order of the notes in the internal buffer stays the same, just the octave for the notes is changed. So, if the chord notes are ``C E G'' with the MIDI values ``0, 4, 7'' an invert of 1 would change the notes to ``C$^{2}$ E G'' and the MIDI values to ``12, 4, 7''.

next up previous
Next: Tempo and Timing Up: Reference Manaul Previous: Solo and Melody Tracks
2004-09-21