mirror of
https://github.com/microtherion/VocalEasel.git
synced 2024-12-23 11:44:03 +00:00
1307 lines
38 KiB
HTML
1307 lines
38 KiB
HTML
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||
|
|
||
|
<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
|
||
|
original version by: Nikos Drakos, CBLU, University of Leeds
|
||
|
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||
|
* with significant contributions from:
|
||
|
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||
|
<HTML>
|
||
|
<HEAD>
|
||
|
<TITLE>Chord Voicing</TITLE>
|
||
|
<META NAME="description" CONTENT="Chord Voicing">
|
||
|
<META NAME="keywords" CONTENT="mma">
|
||
|
<META NAME="resource-type" CONTENT="document">
|
||
|
<META NAME="distribution" CONTENT="global">
|
||
|
|
||
|
<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
|
||
|
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||
|
|
||
|
<LINK REL="STYLESHEET" HREF="mma.css">
|
||
|
|
||
|
<LINK REL="next" HREF="node12.html">
|
||
|
<LINK REL="previous" HREF="node10.html">
|
||
|
<LINK REL="up" HREF="mma.html">
|
||
|
<LINK REL="next" HREF="node12.html">
|
||
|
</HEAD>
|
||
|
|
||
|
<BODY bgcolor="#ffffff">
|
||
|
<!--Navigation Panel-->
|
||
|
<A NAME="tex2html469"
|
||
|
HREF="node12.html">
|
||
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||
|
<A NAME="tex2html467"
|
||
|
HREF="mma.html">
|
||
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||
|
<A NAME="tex2html461"
|
||
|
HREF="node10.html">
|
||
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||
|
<BR>
|
||
|
<B> Next:</B> <A NAME="tex2html470"
|
||
|
HREF="node12.html">Harmony</A>
|
||
|
<B> Up:</B> <A NAME="tex2html468"
|
||
|
HREF="mma.html">Reference Manual</A>
|
||
|
<B> Previous:</B> <A NAME="tex2html462"
|
||
|
HREF="node10.html">Solo and Melody Tracks</A>
|
||
|
<BR>
|
||
|
<BR>
|
||
|
<!--End of Navigation Panel-->
|
||
|
<!--Table of Child-Links-->
|
||
|
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||
|
|
||
|
<UL>
|
||
|
<LI><A NAME="tex2html471"
|
||
|
HREF="node11.html#SECTION001110000000000000000">Voicing</A>
|
||
|
<UL>
|
||
|
<LI><A NAME="tex2html472"
|
||
|
HREF="node11.html#SECTION001111000000000000000">Voicing Mode</A>
|
||
|
<LI><A NAME="tex2html473"
|
||
|
HREF="node11.html#SECTION001112000000000000000">Voicing Range</A>
|
||
|
<LI><A NAME="tex2html474"
|
||
|
HREF="node11.html#SECTION001113000000000000000">Voicing Center</A>
|
||
|
<LI><A NAME="tex2html475"
|
||
|
HREF="node11.html#SECTION001114000000000000000">Voicing Move</A>
|
||
|
<LI><A NAME="tex2html476"
|
||
|
HREF="node11.html#SECTION001115000000000000000">Voicing Dir</A>
|
||
|
<LI><A NAME="tex2html477"
|
||
|
HREF="node11.html#SECTION001116000000000000000">Voicing Rmove</A>
|
||
|
</UL>
|
||
|
<BR>
|
||
|
<LI><A NAME="tex2html478"
|
||
|
HREF="node11.html#SECTION001120000000000000000">ChordAdjust</A>
|
||
|
<LI><A NAME="tex2html479"
|
||
|
HREF="node11.html#SECTION001130000000000000000">Compress</A>
|
||
|
<LI><A NAME="tex2html480"
|
||
|
HREF="node11.html#SECTION001140000000000000000">DupRoot</A>
|
||
|
<LI><A NAME="tex2html481"
|
||
|
HREF="node11.html#SECTION001150000000000000000">Invert</A>
|
||
|
<LI><A NAME="tex2html482"
|
||
|
HREF="node11.html#SECTION001160000000000000000">Limit</A>
|
||
|
<LI><A NAME="tex2html483"
|
||
|
HREF="node11.html#SECTION001170000000000000000">NoteSpan</A>
|
||
|
<LI><A NAME="tex2html484"
|
||
|
HREF="node11.html#SECTION001180000000000000000">Range</A>
|
||
|
<LI><A NAME="tex2html485"
|
||
|
HREF="node11.html#SECTION001190000000000000000">DefChord</A>
|
||
|
<LI><A NAME="tex2html486"
|
||
|
HREF="node11.html#SECTION0011100000000000000000">PrintChord</A>
|
||
|
<LI><A NAME="tex2html487"
|
||
|
HREF="node11.html#SECTION0011110000000000000000">Notes</A>
|
||
|
</UL>
|
||
|
<!--End of Table of Child-Links-->
|
||
|
<HR>
|
||
|
|
||
|
<H1><A NAME="SECTION001100000000000000000"></A>
|
||
|
<A NAME="chord-voicing"></A>
|
||
|
<BR>
|
||
|
Chord Voicing
|
||
|
</H1>
|
||
|
|
||
|
<P>
|
||
|
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.
|
||
|
|
||
|
<P>
|
||
|
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:
|
||
|
|
||
|
<P>
|
||
|
<DIV ALIGN="CENTER">
|
||
|
<IMG WIDTH="80%" SRC="mupex/cmajor.png" ALT="Lost Image">
|
||
|
|
||
|
</DIV>
|
||
|
|
||
|
<P>
|
||
|
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 for which lots of lessons with your
|
||
|
favorite music teacher is recommended. You'll need a bit of
|
||
|
basic music theory if you want to understand how and why
|
||
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> creates its tracks.
|
||
|
|
||
|
<P>
|
||
|
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.
|
||
|
|
||
|
<P>
|
||
|
There are generally two ways in
|
||
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> to take care of voicings.
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<OL>
|
||
|
<LI>use
|
||
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> 's extensive V<SMALL>OICING</SMALL> options, most likely with
|
||
|
the <B>''Optimal''</B> voicing algorithm,
|
||
|
|
||
|
<P>
|
||
|
</LI>
|
||
|
<LI>do everything by yourself with the commands I<SMALL>NVERT</SMALL> and
|
||
|
C<SMALL>OMPRESS</SMALL>.
|
||
|
|
||
|
<P>
|
||
|
</LI>
|
||
|
</OL>
|
||
|
|
||
|
<P>
|
||
|
The commands L<SMALL>IMIT</SMALL> and D<SMALL>UP</SMALL>R<SMALL>OOT</SMALL> may be used independently
|
||
|
for both variants.
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<H1><A NAME="SECTION001110000000000000000">
|
||
|
Voicing</A>
|
||
|
</H1>
|
||
|
|
||
|
<P>
|
||
|
The V<SMALL>OICING</SMALL> command is used to set the voicing mode and several
|
||
|
other options relating to the selected mode. The command needs to have
|
||
|
a C<SMALL>HORD</SMALL> track specified and a series of Option=Value pairs. For
|
||
|
example:
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
<BLOCKQUOTE><B>Chord-Piano Voicing Mode=Optimal Rmove=10 Range=9 </B></BLOCKQUOTE>
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
<P>
|
||
|
In the following sections all the options available will be covered.
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<H2><A NAME="SECTION001111000000000000000">
|
||
|
Voicing Mode</A>
|
||
|
</H2>
|
||
|
|
||
|
<P>
|
||
|
The easiest way to deal with chord voicings is via the
|
||
|
V<SMALL>OICING </SMALL>M<SMALL>ODE=</SMALL>XX option.
|
||
|
|
||
|
<P>
|
||
|
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''.
|
||
|
|
||
|
<P>
|
||
|
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 (e.g., sustained strings).
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> has a variety of sophisticated, intelligent
|
||
|
algorithms<A NAME="tex2html45"
|
||
|
HREF="#foot4965"><SUP>11.1</SUP></A> to deal with voicing.
|
||
|
|
||
|
<P>
|
||
|
As a general rule you should not use the I<SMALL>NVERT</SMALL> and
|
||
|
C<SMALL>OMPRESS</SMALL> commands in conjunction with the V<SMALL>OICING</SMALL>
|
||
|
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.
|
||
|
|
||
|
<P>
|
||
|
The main command to enable voicings is:
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
<BLOCKQUOTE><B>Chord Voicing Mode=Type </B></BLOCKQUOTE>
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
<P>
|
||
|
As mentioned above, this command can only be applied to C<SMALL>HORD</SMALL>
|
||
|
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).
|
||
|
|
||
|
<P>
|
||
|
The following MODE types are available:
|
||
|
|
||
|
<P>
|
||
|
<DL>
|
||
|
<DT><STRONG>Optimal</STRONG></DT>
|
||
|
<DD>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.
|
||
|
|
||
|
<P>
|
||
|
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.
|
||
|
|
||
|
<P>
|
||
|
</DD>
|
||
|
<DT><STRONG>Root</STRONG></DT>
|
||
|
<DD>This Option may for example be used to turn off
|
||
|
V<SMALL>OICING</SMALL> within a song. V<SMALL>OICING </SMALL>M<SMALL>ODE=</SMALL>R<SMALL>OOT</SMALL> means nothing
|
||
|
else than doing nothing, leaving all chords in root position.
|
||
|
|
||
|
<P>
|
||
|
</DD>
|
||
|
<DT><STRONG>None</STRONG></DT>
|
||
|
<DD>This is the same as the R<SMALL>OOT</SMALL> option.
|
||
|
|
||
|
<P>
|
||
|
</DD>
|
||
|
<DT><STRONG>Invert</STRONG></DT>
|
||
|
<DD>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.
|
||
|
|
||
|
<P>
|
||
|
</DD>
|
||
|
<DT><STRONG>Compressed</STRONG></DT>
|
||
|
<DD>Does the same as the stand-alone C<SMALL>OMPRESS</SMALL>
|
||
|
command. Like R<SMALL>OOT</SMALL>, it is only added to be used in some parts
|
||
|
of a song where V<SMALL>OICING </SMALL>M<SMALL>ODE=</SMALL>O<SMALL>PTIMAL</SMALL> is used.
|
||
|
|
||
|
<P>
|
||
|
</DD>
|
||
|
</DL>
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<H2><A NAME="SECTION001112000000000000000">
|
||
|
Voicing Range</A>
|
||
|
</H2>
|
||
|
|
||
|
<P>
|
||
|
To get wider or closer voicings, you may define a range for the
|
||
|
voicings. This can be adjusted with the R<SMALL>ANGE</SMALL> option:
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
<BLOCKQUOTE><B>Chord-Guitar Voicing Mode=Optimal Range=12 </B></BLOCKQUOTE>
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
<P>
|
||
|
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 M<SMALL>ODE=</SMALL>O<SMALL>PTIMAL</SMALL>.
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<H2><A NAME="SECTION001113000000000000000">
|
||
|
Voicing Center</A>
|
||
|
</H2>
|
||
|
|
||
|
<P>
|
||
|
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.
|
||
|
|
||
|
<P>
|
||
|
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:
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
<BLOCKQUOTE><B>Chord-1 Voicing Center=<value> </B></BLOCKQUOTE>
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
<P>
|
||
|
The <B>value</B> in this command can be any number in the range 0 to
|
||
|
12. Try different values. The color of your whole song might change.
|
||
|
|
||
|
<P>
|
||
|
Note that the value is the note in the scale, not a chord-note position.
|
||
|
|
||
|
<P>
|
||
|
This command only effects chords created with M<SMALL>ODE=</SMALL>O<SMALL>PTIMAL</SMALL>.
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<H2><A NAME="SECTION001114000000000000000">
|
||
|
Voicing Move</A>
|
||
|
</H2>
|
||
|
|
||
|
<P>
|
||
|
To intensify a chord progression you may want to have ascending or
|
||
|
descending movement of voicings. This option, in conjunction with the
|
||
|
D<SMALL>IR</SMALL> optional (see below) sets the number of bars over which a
|
||
|
movement is done.
|
||
|
|
||
|
<P>
|
||
|
For the M<SMALL>OVE</SMALL> 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 R<SMALL>EPEAT</SMALL>
|
||
|
section can cause unexpected results. For this reason you should
|
||
|
include a S<SMALL>EQ</SMALL> command at the beginning of repeated sections of
|
||
|
your songs.
|
||
|
|
||
|
<P>
|
||
|
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:
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
<BLOCKQUOTE><B>..select groove with voicing
|
||
|
<BR>
|
||
|
chords..
|
||
|
<BR>
|
||
|
Chord-Piano Voicing Move=5 Dir=1
|
||
|
<BR>
|
||
|
more chords..
|
||
|
<BR>
|
||
|
Chord-Piano Voicing Move=5 Dir=-1
|
||
|
<BR>
|
||
|
more chords.. </B></BLOCKQUOTE>
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<H2><A NAME="SECTION001115000000000000000">
|
||
|
Voicing Dir</A>
|
||
|
</H2>
|
||
|
|
||
|
<P>
|
||
|
This option is used in conjunction with the M<SMALL>OVE</SMALL> option to set
|
||
|
the direction (-1 or 1) of the movement.
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<H2><A NAME="SECTION001116000000000000000">
|
||
|
Voicing Rmove</A>
|
||
|
</H2>
|
||
|
|
||
|
<P>
|
||
|
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.
|
||
|
|
||
|
<P>
|
||
|
For example:
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
<BLOCKQUOTE><B>Chord-3 Voicing Mode=Optimal Rmove=20 </B></BLOCKQUOTE>
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
<P>
|
||
|
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.
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<H1><A NAME="SECTION001120000000000000000"></A> <A NAME="sec-chordadjust"></A>
|
||
|
<BR>
|
||
|
ChordAdjust
|
||
|
</H1>
|
||
|
|
||
|
<P>
|
||
|
The actual notes used in a chord are derived from a table which
|
||
|
contains the notes for each variation of a ``C'' chord--this data is
|
||
|
converted to the desired chord by adding or subtracting a constant
|
||
|
value according to the following table:
|
||
|
|
||
|
<P>
|
||
|
<DIV ALIGN="CENTER">
|
||
|
|
||
|
<TABLE CELLSPACING=0 WIDTH="80%" Align="Center" CELLPADDING=10 BGCOLOR="#dddddd" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
</DIV><TABLE WIDTH="30%">
|
||
|
<TR><TD>
|
||
|
<TABLE CELLPADDING=3>
|
||
|
<TR><TD ALIGN="LEFT">G<IMG
|
||
|
WIDTH="12" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
|
||
|
SRC="img1.png"
|
||
|
ALT="$\flat$"></TD>
|
||
|
<TD ALIGN="RIGHT">-6</TD>
|
||
|
</TR>
|
||
|
<TR><TD ALIGN="LEFT">G</TD>
|
||
|
<TD ALIGN="RIGHT">-5</TD>
|
||
|
</TR>
|
||
|
<TR><TD ALIGN="LEFT">G<IMG
|
||
|
WIDTH="12" HEIGHT="35" ALIGN="MIDDLE" BORDER="0"
|
||
|
SRC="img5.png"
|
||
|
ALT="$\sharp$"></TD>
|
||
|
<TD ALIGN="RIGHT">-4</TD>
|
||
|
</TR>
|
||
|
<TR><TD ALIGN="LEFT">A<IMG
|
||
|
WIDTH="12" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
|
||
|
SRC="img1.png"
|
||
|
ALT="$\flat$"></TD>
|
||
|
<TD ALIGN="RIGHT">-4</TD>
|
||
|
</TR>
|
||
|
<TR><TD ALIGN="LEFT">A</TD>
|
||
|
<TD ALIGN="RIGHT">-3</TD>
|
||
|
</TR>
|
||
|
<TR><TD ALIGN="LEFT">A<IMG
|
||
|
WIDTH="12" HEIGHT="35" ALIGN="MIDDLE" BORDER="0"
|
||
|
SRC="img5.png"
|
||
|
ALT="$\sharp$"></TD>
|
||
|
<TD ALIGN="RIGHT">-2</TD>
|
||
|
</TR>
|
||
|
<TR><TD ALIGN="LEFT">B<IMG
|
||
|
WIDTH="12" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
|
||
|
SRC="img1.png"
|
||
|
ALT="$\flat$"></TD>
|
||
|
<TD ALIGN="RIGHT">-2</TD>
|
||
|
</TR>
|
||
|
</TABLE> </TD></TR>
|
||
|
</TABLE>
|
||
|
<DIV ALIGN="CENTER"> </DIV><TABLE WIDTH="30%">
|
||
|
<TR><TD> <TABLE CELLPADDING=3>
|
||
|
<TR><TD ALIGN="LEFT">B</TD>
|
||
|
<TD ALIGN="RIGHT">-1</TD>
|
||
|
</TR>
|
||
|
<TR><TD ALIGN="LEFT">C<IMG
|
||
|
WIDTH="12" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
|
||
|
SRC="img1.png"
|
||
|
ALT="$\flat$"></TD>
|
||
|
<TD ALIGN="RIGHT">-1</TD>
|
||
|
</TR>
|
||
|
<TR><TD ALIGN="LEFT">B<IMG
|
||
|
WIDTH="12" HEIGHT="35" ALIGN="MIDDLE" BORDER="0"
|
||
|
SRC="img5.png"
|
||
|
ALT="$\sharp$"></TD>
|
||
|
<TD ALIGN="RIGHT">0</TD>
|
||
|
</TR>
|
||
|
<TR><TD ALIGN="LEFT">C</TD>
|
||
|
<TD ALIGN="RIGHT">0</TD>
|
||
|
</TR>
|
||
|
<TR><TD ALIGN="LEFT">C<IMG
|
||
|
WIDTH="12" HEIGHT="35" ALIGN="MIDDLE" BORDER="0"
|
||
|
SRC="img5.png"
|
||
|
ALT="$\sharp$"></TD>
|
||
|
<TD ALIGN="RIGHT">1</TD>
|
||
|
</TR>
|
||
|
<TR><TD ALIGN="LEFT">D<IMG
|
||
|
WIDTH="12" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
|
||
|
SRC="img1.png"
|
||
|
ALT="$\flat$"></TD>
|
||
|
<TD ALIGN="RIGHT">1</TD>
|
||
|
</TR>
|
||
|
<TR><TD ALIGN="LEFT">D</TD>
|
||
|
<TD ALIGN="RIGHT">2</TD>
|
||
|
</TR>
|
||
|
</TABLE> </TD></TR>
|
||
|
</TABLE>
|
||
|
<DIV ALIGN="CENTER"> </DIV><TABLE WIDTH="30%">
|
||
|
<TR><TD> <TABLE CELLPADDING=3>
|
||
|
<TR><TD ALIGN="LEFT">D<IMG
|
||
|
WIDTH="12" HEIGHT="35" ALIGN="MIDDLE" BORDER="0"
|
||
|
SRC="img5.png"
|
||
|
ALT="$\sharp$"></TD>
|
||
|
<TD ALIGN="RIGHT">3</TD>
|
||
|
</TR>
|
||
|
<TR><TD ALIGN="LEFT">E<IMG
|
||
|
WIDTH="12" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
|
||
|
SRC="img1.png"
|
||
|
ALT="$\flat$"></TD>
|
||
|
<TD ALIGN="RIGHT">3</TD>
|
||
|
</TR>
|
||
|
<TR><TD ALIGN="LEFT">E</TD>
|
||
|
<TD ALIGN="RIGHT">4</TD>
|
||
|
</TR>
|
||
|
<TR><TD ALIGN="LEFT">F<IMG
|
||
|
WIDTH="12" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
|
||
|
SRC="img1.png"
|
||
|
ALT="$\flat$"></TD>
|
||
|
<TD ALIGN="RIGHT">4</TD>
|
||
|
</TR>
|
||
|
<TR><TD ALIGN="LEFT">E<IMG
|
||
|
WIDTH="12" HEIGHT="35" ALIGN="MIDDLE" BORDER="0"
|
||
|
SRC="img5.png"
|
||
|
ALT="$\sharp$"></TD>
|
||
|
<TD ALIGN="RIGHT">5</TD>
|
||
|
</TR>
|
||
|
<TR><TD ALIGN="LEFT">F</TD>
|
||
|
<TD ALIGN="RIGHT">5</TD>
|
||
|
</TR>
|
||
|
<TR><TD ALIGN="LEFT">F<IMG
|
||
|
WIDTH="12" HEIGHT="35" ALIGN="MIDDLE" BORDER="0"
|
||
|
SRC="img5.png"
|
||
|
ALT="$\sharp$"></TD>
|
||
|
<TD ALIGN="RIGHT">6</TD>
|
||
|
</TR>
|
||
|
</TABLE></TD></TR>
|
||
|
</TABLE>
|
||
|
<DIV ALIGN="CENTER">
|
||
|
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
</DIV>
|
||
|
|
||
|
<P>
|
||
|
This means that when
|
||
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> encounters an ``Am'' chord it adjusts the
|
||
|
notes in the chord table down by 3 MIDI values; an ``F'' chord is
|
||
|
adjusted 5 MIDI values up. This also means that ``A'' chords will
|
||
|
sound lower than ``F'' chords.
|
||
|
|
||
|
<P>
|
||
|
In most cases this works just fine; but, there are times when the
|
||
|
``F'' chord might sound better <B>lower</B> than the ``A''. You can
|
||
|
force a single chord by prefacing it with a single ``-'' or ``+''
|
||
|
<A HREF="node26.html#octaveadjust">, details here</A>. But, if the
|
||
|
entire song needs adjustment you can use C<SMALL>HORD</SMALL>A<SMALL>DJUST</SMALL>
|
||
|
command to raise or lower selected chord pitches:
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
<BLOCKQUOTE><B>ChordAdjust E=-1 F=-1 Bb=1 </B></BLOCKQUOTE>
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
<P>
|
||
|
Each item in the command consists of a pitch (``B<IMG
|
||
|
WIDTH="12" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
|
||
|
SRC="img1.png"
|
||
|
ALT="$\flat$">'', ``C'',
|
||
|
etc.) an ``='' and an octave specifier (-1, 0 or 1). The pitch values
|
||
|
are case sensitive and must be in upper case; there must <B>not</B> be
|
||
|
a space on either side of the ``=''.
|
||
|
|
||
|
<P>
|
||
|
To a large extent the need for octave adjustments depends on the chord
|
||
|
range of a song. For example, the supplied song ``A Day In The Life Of
|
||
|
A Fool'' needs all ``E'' and ``F'' chords to be adjusted down an
|
||
|
octave.
|
||
|
|
||
|
<P>
|
||
|
The value ``0'' will reset the adjustment to the original value;
|
||
|
setting a value a second time has no effect.
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<H1><A NAME="SECTION001130000000000000000"></A> <A NAME="compress"></A>
|
||
|
<BR>
|
||
|
Compress
|
||
|
</H1>
|
||
|
|
||
|
<P>
|
||
|
When
|
||
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> 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 <B>may</B> sound strange.
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
<BLOCKQUOTE><B>Chord Compress 1 </B></BLOCKQUOTE>
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
<P>
|
||
|
Forces
|
||
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> to put all chord notes in a single octave range.
|
||
|
|
||
|
<P>
|
||
|
This command is only effective in C<SMALL>HORD</SMALL> and A<SMALL>RPEGGIO</SMALL>
|
||
|
tracks. A warning message is printed if it is used in other contexts.
|
||
|
|
||
|
<P>
|
||
|
Notes: C<SMALL>OMPRESS</SMALL> takes any value between 1 and 5 as arguments
|
||
|
(however, some values will have no effect as detailed above). You can
|
||
|
specify a different C<SMALL>OMPRESS</SMALL> for each bar in a sequence.
|
||
|
Repeated values can be represented with a ``/'':
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
<BLOCKQUOTE><B>Chord Compress 1 / 0 / </B></BLOCKQUOTE>
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
<P>
|
||
|
To restore to its default (off) setting, use a ``0'' as the argument.
|
||
|
|
||
|
<P>
|
||
|
For a similar command, with different results, see the L<SMALL>IMIT</SMALL>
|
||
|
command (<A HREF="#limit">here</A>).
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<H1><A NAME="SECTION001140000000000000000"></A><A NAME="duproot"></A>
|
||
|
<BR>
|
||
|
DupRoot
|
||
|
</H1>
|
||
|
|
||
|
<P>
|
||
|
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
|
||
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> with the command:
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
<BLOCKQUOTE><B>DupRoot -1 1 -1 1 </B></BLOCKQUOTE>
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
<P>
|
||
|
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.
|
||
|
|
||
|
<P>
|
||
|
Only the values -9 to 9 are permitted.
|
||
|
|
||
|
<P>
|
||
|
The volume used for the generated note is an adjusted average of the
|
||
|
notes in the chord. This volume is always less than the chord
|
||
|
notes--which is probably what you want. If you want a loud bass note,
|
||
|
create a second track (probably a B<SMALL>ASS</SMALL> track) with the
|
||
|
appropriate pattern.
|
||
|
|
||
|
<P>
|
||
|
Different values can be used in each bar of the sequence.
|
||
|
|
||
|
<P>
|
||
|
The option is reset to 0 after all S<SMALL>EQUENCE</SMALL> or S<SMALL>EQ</SMALL>C<SMALL>LEAR</SMALL>
|
||
|
commands.
|
||
|
|
||
|
<P>
|
||
|
The D<SMALL>UP</SMALL>R<SMALL>OOT</SMALL> command is only valid in C<SMALL>HORD</SMALL> tracks.
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<H1><A NAME="SECTION001150000000000000000"></A> <A NAME="chord-invert"></A>
|
||
|
<BR>
|
||
|
Invert
|
||
|
</H1>
|
||
|
|
||
|
<P>
|
||
|
By default
|
||
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> 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 the 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.
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> 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.<A NAME="tex2html46"
|
||
|
HREF="#foot4967"><SUP>11.2</SUP></A>
|
||
|
<P>
|
||
|
Inversions apply to each bar of a sequence. So, the following is a good example:
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
<BLOCKQUOTE><B>SeqSize 4
|
||
|
<BR>
|
||
|
Chord-1 Sequence STR1
|
||
|
<BR>
|
||
|
Chord-1 Invert 0 1 0 1 </B></BLOCKQUOTE>
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
<P>
|
||
|
Here the sequence pattern size is set to 4 bars and the pattern
|
||
|
for each bar in the Chord-1 track is set 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.
|
||
|
|
||
|
<P>
|
||
|
You can use a negative Invert value:
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
<BLOCKQUOTE><B>Chord-1 Invert -1 </B></BLOCKQUOTE>
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
<P>
|
||
|
In this case the C major chord becomes G, C and E.
|
||
|
|
||
|
<P>
|
||
|
Note that using fewer Invert arguments than the current sequence size
|
||
|
is permitted.
|
||
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> simply expands the number of arguments to the
|
||
|
current sequence size. You may use a ``/'' for a repeated value.
|
||
|
|
||
|
<P>
|
||
|
A S<SMALL>EQUENCE</SMALL> or C<SMALL>LEAR</SMALL>S<SMALL>EQ</SMALL> command resets I<SMALL>NVERT</SMALL> to 0.
|
||
|
|
||
|
<P>
|
||
|
This command on has an effect in C<SMALL>HORD</SMALL> and A<SMALL>RPEGGIO</SMALL>
|
||
|
tracks. And, frankly, A<SMALL>RPEGGIO</SMALL>s sound a bit odd with
|
||
|
inversions.
|
||
|
|
||
|
<P>
|
||
|
If you use a large value for I<SMALL>NVERT</SMALL> 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.
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<H1><A NAME="SECTION001160000000000000000"></A> <A NAME="limit"></A>
|
||
|
<BR>
|
||
|
Limit
|
||
|
</H1>
|
||
|
|
||
|
<P>
|
||
|
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 L<SMALL>IMIT</SMALL> command can be used to set the
|
||
|
number of notes of a chord used.
|
||
|
|
||
|
<P>
|
||
|
For example:
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
<BLOCKQUOTE><B>Chord Limit 4 </B></BLOCKQUOTE>
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
<P>
|
||
|
will limit any chords used in the C<SMALL>HORD</SMALL> track to the first 4
|
||
|
notes of a chord. So, if you have a C11 chord which is C, E, G,
|
||
|
B<IMG
|
||
|
WIDTH="12" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
|
||
|
SRC="img1.png"
|
||
|
ALT="$\flat$">, D, and F, the chord will be truncated to C, E, G and
|
||
|
B<IMG
|
||
|
WIDTH="12" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
|
||
|
SRC="img1.png"
|
||
|
ALT="$\flat$">.
|
||
|
|
||
|
<P>
|
||
|
This command only applies to C<SMALL>HORD</SMALL> and A<SMALL>RPEGGIO</SMALL> tracks.
|
||
|
It can be set for other tracks, but the setting will have no effect.
|
||
|
|
||
|
<P>
|
||
|
Notes: L<SMALL>IMIT</SMALL> 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.
|
||
|
|
||
|
<P>
|
||
|
To restore to its default (off) setting, use a ``0'' as the argument.
|
||
|
|
||
|
<P>
|
||
|
For a similar command, with different results, see the C<SMALL>OMPRESS</SMALL>
|
||
|
command (<A HREF="#compress">here</A>).
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<H1><A NAME="SECTION001170000000000000000"></A> <A NAME="sec-notespan"></A>
|
||
|
<BR>
|
||
|
NoteSpan
|
||
|
</H1>
|
||
|
|
||
|
<P>
|
||
|
Many instruments have a limited range. For example, the bass section
|
||
|
of an accordion is limited to a single octave<A NAME="tex2html47"
|
||
|
HREF="#foot4897"><SUP>11.3</SUP></A>To emulate these sounds it is a simple matter of limiting
|
||
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> 's
|
||
|
output to match the instrument. For example, in the ``frenchwaltz''
|
||
|
file you will find the directive:
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
<BLOCKQUOTE><B>Chord NoteSpan 48 59 </B></BLOCKQUOTE>
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
<P>
|
||
|
which forces all C<SMALL>HORD</SMALL> tones to the single octave represented
|
||
|
by the MIDI values 48 though 59.
|
||
|
|
||
|
<P>
|
||
|
This command is applied over other voicing commands like O<SMALL>CTAVE</SMALL>
|
||
|
and R<SMALL>ANGE</SMALL> and even T<SMALL>RANSPOSE</SMALL>. Notes will still be
|
||
|
calculated with respect to these settings, but then they'll be forced
|
||
|
into the limited N<SMALL>OTE</SMALL>S<SMALL>PAN</SMALL>.
|
||
|
|
||
|
<P>
|
||
|
N<SMALL>OTE</SMALL>S<SMALL>PAN</SMALL> expects two arguments: The first is the range start, the
|
||
|
second the range end (first and last notes to use). The values are
|
||
|
MIDI tones and must be in the range 0 to 127. The first value must be
|
||
|
less than the second, and the range must represent at least one full
|
||
|
octave (12 notes). It can be applied to all tracks except D<SMALL>RUM</SMALL>.
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<H1><A NAME="SECTION001180000000000000000"></A> <A NAME="sec-range"></A>
|
||
|
<BR>
|
||
|
Range
|
||
|
</H1>
|
||
|
|
||
|
<P>
|
||
|
For A<SMALL>RPEGGIO</SMALL> and S<SMALL>CALE</SMALL> tracks you can specify the number
|
||
|
of octaves used. The effects of the R<SMALL>ANGE</SMALL> command is slightly
|
||
|
different between the two.
|
||
|
|
||
|
<P>
|
||
|
S<SMALL>CALE</SMALL>: Scale tracks, by default, create three octave scales.
|
||
|
The R<SMALL>ANGE</SMALL> value will modify this to the number of octaves
|
||
|
specified. For example:
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
<BLOCKQUOTE><B>Scale Range 1 </B></BLOCKQUOTE>
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
<P>
|
||
|
will force the scales to one octave. A value of 4 would create 4
|
||
|
octave scales, etc.
|
||
|
|
||
|
<P>
|
||
|
You can use fractional values when specifying R<SMALL>ANGE</SMALL>. For example:
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
<BLOCKQUOTE><B>Scale Range .3 </B></BLOCKQUOTE>
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
<P>
|
||
|
will create a scale of 2 notes.<A NAME="tex2html48"
|
||
|
HREF="#foot4918"><SUP>11.4</SUP></A> And,
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
<BLOCKQUOTE><B>Scale Range 1.5 </B></BLOCKQUOTE>
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
<P>
|
||
|
will create a scale of 10 notes. Now, this gets a bit more confusing for you if
|
||
|
you have set S<SMALL>CALE</SMALL>T<SMALL>YPE</SMALL> C<SMALL>HROMATIC</SMALL>. In this case a R<SMALL>ANGE 1</SMALL> would
|
||
|
generate 12 notes, and R<SMALL>ANGE 1.5</SMALL> 18.
|
||
|
|
||
|
<P>
|
||
|
Partial scales are useful in generating special effects.
|
||
|
|
||
|
<P>
|
||
|
A<SMALL>RPEGGIO</SMALL>: Normally, arpeggios use a single octave.<A NAME="tex2html49"
|
||
|
HREF="#foot4925"><SUP>11.5</SUP></A>The R<SMALL>ANGE</SMALL> command specifies the number of octaves<A NAME="tex2html50"
|
||
|
HREF="#foot4968"><SUP>11.6</SUP></A> to use. A fractional value can be used; the exact result
|
||
|
depends on the number of notes in the current chord.
|
||
|
|
||
|
<P>
|
||
|
In all cases the values of ``0'' and ''1'' have the same effect.
|
||
|
|
||
|
<P>
|
||
|
For both S<SMALL>CALE</SMALL> and A<SMALL>RPEGGIO</SMALL> there will always be a minimum of
|
||
|
two notes in the sequence.
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<H1><A NAME="SECTION001190000000000000000"></A> <A NAME="defchord"></A>
|
||
|
<BR>
|
||
|
DefChord
|
||
|
</H1>
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> comes with a large number of chord types already defined. In
|
||
|
most cases, the supplied set (<A HREF="node26.html#sec-chordname">see this list</A>) is sufficient for all the ``modern'' or
|
||
|
``pop'' charts normally encountered. However, there are those times
|
||
|
when you want to do something else, or something different.
|
||
|
|
||
|
<P>
|
||
|
You can define additional chord types at any time, or redefine
|
||
|
existing chord types. The D<SMALL>EF</SMALL>C<SMALL>HORD</SMALL> command makes no distinction
|
||
|
between a new chord type or a redefinition, with the exception that a
|
||
|
warning message is printed for the later.
|
||
|
|
||
|
<P>
|
||
|
The syntax of the command is quite strict:
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
<BLOCKQUOTE><B>DefChord NAME (NoteList) (ScaleList) </B></BLOCKQUOTE>
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
<P>
|
||
|
where:
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<UL>
|
||
|
<LI><B>Name</B> can be any string, but cannot contain a ``/'', ``>'' or
|
||
|
space. It is case sensitive. Examples of valid <B>name</B>s include
|
||
|
``dim'', ``NO3'' and ``foo-12-xx''.
|
||
|
|
||
|
<P>
|
||
|
</LI>
|
||
|
<LI><B>NoteList</B> is a comma separated list of note offsets
|
||
|
(actually MIDI note values), all of which are enclosed in a set of
|
||
|
``()''s. There must be at least 2 note offsets and no more than 8
|
||
|
and all values must be in the range 0 to 24. Using an existing chord
|
||
|
type, a ``7'' chord would be defined with (0, 4, 7, 10). In the case
|
||
|
of a C7 chord, this translates to the notes (c, e, g, b<IMG
|
||
|
WIDTH="12" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
|
||
|
SRC="img1.png"
|
||
|
ALT="$\flat$">).
|
||
|
|
||
|
<P>
|
||
|
</LI>
|
||
|
<LI><B>ScaleList</B> is a list of note offsets (again, MIDI note
|
||
|
values), all of which are enclosed in a set of ``()''s. There must
|
||
|
be exactly 7 values in the list and all values must be in the range
|
||
|
0 to 24. Following on the C7 example above, the scale list would be
|
||
|
(0, 2, 4, 5, 7, 9, 10) or the notes (c, d, e, f, g, a, b<IMG
|
||
|
WIDTH="12" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
|
||
|
SRC="img1.png"
|
||
|
ALT="$\flat$">).
|
||
|
|
||
|
<P>
|
||
|
</LI>
|
||
|
</UL>
|
||
|
|
||
|
<P>
|
||
|
Some examples might clarify. First, assume that you have a section of
|
||
|
your piece which has a major chord, but you only want the root and
|
||
|
fifth to sound for the chords and you want the arpeggios and bass
|
||
|
notes to <B>only</B> use the root. You could create new patterns, but
|
||
|
it's just as easy to create a new chord type.
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
<BLOCKQUOTE><B>DefChord 15 (0,4) (0, 0, 0, 0, 0, 0, 0)
|
||
|
<BR>
|
||
|
15 C / G /
|
||
|
<BR>
|
||
|
16 C15 / G15 </B></BLOCKQUOTE>
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
<P>
|
||
|
In this case a normal Major chords will be used in line 15. In line 16
|
||
|
the new ``15'' will be used. Note the trick in the scale: by setting
|
||
|
all the offsets to ``0'' only the root note is available to the
|
||
|
<SMALL>WALK</SMALL> and <SMALL>BASS</SMALL> tracks.
|
||
|
|
||
|
<P>
|
||
|
Sometimes you'll see a new chord type that
|
||
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> doesn't know. You
|
||
|
could write the author and ask him to add this new type, but if it is
|
||
|
something quite odd or rare, it might be easier to define it in your
|
||
|
song. Let's pretend that you've encountered a ``Cmaj12'' A reasonable
|
||
|
guess is that this is a major 7 with an added 12th (just the 5th up an
|
||
|
octave). You could change the ``maj12'' part of the chord to a ``M7''
|
||
|
or ``maj7'' and it should sound fine. But:
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
<BLOCKQUOTE><B>DefChord maj12 (0, 4, 7, 11, 19) (0, 2, 4, 5, 7, 9, 11) </B></BLOCKQUOTE>
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
<P>
|
||
|
is much more fun. Note a few details:
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<UL>
|
||
|
<LI>The name ``maj12'' can be used with any chord. You can have
|
||
|
``Cmaj12'' or G<IMG
|
||
|
WIDTH="12" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
|
||
|
SRC="img1.png"
|
||
|
ALT="$\flat$">maj12''.
|
||
|
|
||
|
<P>
|
||
|
</LI>
|
||
|
<LI>``maj12'' a case sensitive name. The name ``Maj12'' is quite
|
||
|
different (and unknown).
|
||
|
|
||
|
<P>
|
||
|
</LI>
|
||
|
<LI>A better name might be ``maj(add12)''.
|
||
|
|
||
|
<P>
|
||
|
</LI>
|
||
|
<LI>The note and scale offsets are MIDI values. They are easy to
|
||
|
figure if you think of the chord as a ``C''. Just count off notes
|
||
|
from ``C'' on a keyboard (C is note 0).
|
||
|
|
||
|
<P>
|
||
|
</LI>
|
||
|
<LI><B>Do Not</B> include a chord name (ie: C or B<IMG
|
||
|
WIDTH="12" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
|
||
|
SRC="img1.png"
|
||
|
ALT="$\flat$">) in the
|
||
|
definition. Just the <B>type</B>.
|
||
|
|
||
|
<P>
|
||
|
</LI>
|
||
|
</UL>
|
||
|
|
||
|
<P>
|
||
|
The final example handles a minor problem in
|
||
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> and ``diminished''
|
||
|
chords. In most of the music the author of
|
||
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> encounters, the
|
||
|
marking ``dim'' on a chord usually means a ``diminished 7th''. So,
|
||
|
when
|
||
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> initializes it creates a copy of the ``dim7'' and calls it
|
||
|
``dim''. But, some people think that ``dim'' should reference a
|
||
|
``diminished triad''. It's pretty easy to change this by creating a
|
||
|
new definition for ``dim'':
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
<BLOCKQUOTE><B>DefChord dim (0, 3, 6) (0, 2, 3, 5, 6, 8, 9 ) </B></BLOCKQUOTE>
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
<P>
|
||
|
In this example the scale notes use the same notes as those in a
|
||
|
``dim7''. You might want to change the B<IMG
|
||
|
WIDTH="19" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
|
||
|
SRC="img7.png"
|
||
|
ALT="$\flat{}\flat$"> (9) to B<IMG
|
||
|
WIDTH="12" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
|
||
|
SRC="img1.png"
|
||
|
ALT="$\flat$">
|
||
|
(10) or B (11). If you really disagree with the choice to make a dim7
|
||
|
the default you could even put this in a <TT><B>mmarc</B></TT> file.
|
||
|
|
||
|
<P>
|
||
|
It is even easier to use the non-standard notation ``dim3'' to specify
|
||
|
a diminished triad.
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<H1><A NAME="SECTION0011100000000000000000">
|
||
|
PrintChord</A>
|
||
|
</H1>
|
||
|
|
||
|
<P>
|
||
|
This command can be used to make the create of custom chords a bit
|
||
|
simpler. Simply pass one or more chord types after the command and
|
||
|
they will be displayed on your terminal. Example:
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
<BLOCKQUOTE><B>PrintChord m M7 dim </B></BLOCKQUOTE>
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
<P>
|
||
|
in a file should display:
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
||
|
<TR> <TD>
|
||
|
|
||
|
<BLOCKQUOTE><B>m : (0, 3, 7) (0, 2, 3, 5, 7, 9, 11) Minor triad.
|
||
|
<BR>
|
||
|
M7 : (0, 4, 7, 11) (0, 2, 4, 5, 7, 9, 11) Major 7th.
|
||
|
<BR>
|
||
|
dim : (0, 3, 6, 9) (0, 2, 3, 5, 6, 8, 9) Diminished.
|
||
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> assumes a
|
||
|
diminished 7th. </B></BLOCKQUOTE>
|
||
|
|
||
|
</TD></TR></TABLE>
|
||
|
|
||
|
<P>
|
||
|
From this you can cut and paste, change the chord or scale and insert
|
||
|
the data into a D<SMALL>EF</SMALL>C<SMALL>HORD</SMALL> command.
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<H1><A NAME="SECTION0011110000000000000000">
|
||
|
Notes</A>
|
||
|
</H1>
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> makes other adjustments on-the-fly to your chords. This is done
|
||
|
to make the resulting sounds ``more musical'' ...to keep life
|
||
|
interesting, the definition of ``more musical'' is quite elusive. The
|
||
|
following notes will try to list some of the more common adjustments
|
||
|
made ``behind your back''.
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<UL>
|
||
|
<LI>Just before the notes (MIDI events) for a chord are generated
|
||
|
the first and last notes in the chord are compared. If they are a
|
||
|
separated by a half-step (or 1 MIDI value) or an octave plus
|
||
|
half-step, the volume of the first note is halved. This happens in
|
||
|
chords such as a Major-7th or Flat-9th. If the adjustment is
|
||
|
not done the dissonance between the two tones overwhelms the ear.
|
||
|
|
||
|
<P>
|
||
|
</LI>
|
||
|
</UL>
|
||
|
<BR><HR><H4>Footnotes</H4>
|
||
|
<DL>
|
||
|
<DT><A NAME="foot4965">...
|
||
|
algorithms</A><A
|
||
|
HREF="node11.html#tex2html45"><SUP>11.1</SUP></A></DT>
|
||
|
<DD>Great thanks are due to Alain Brenzikofer who not
|
||
|
only pressured me into including the V<SMALL>OICING</SMALL> options, but
|
||
|
wrote a great deal of the actual code.
|
||
|
|
||
|
</DD>
|
||
|
<DT><A NAME="foot4967">...
|
||
|
values.</A><A
|
||
|
HREF="node11.html#tex2html46"><SUP>11.2</SUP></A></DT>
|
||
|
<DD>The term ``shift'' is used here, but that's not
|
||
|
quite what
|
||
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> 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<IMG
|
||
|
WIDTH="12" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"
|
||
|
SRC="img6.png"
|
||
|
ALT="$^{2}$"> E G'' and the MIDI values
|
||
|
to ``12, 4, 7''.
|
||
|
|
||
|
</DD>
|
||
|
<DT><A NAME="foot4897">... octave</A><A
|
||
|
HREF="node11.html#tex2html47"><SUP>11.3</SUP></A></DT>
|
||
|
<DD>Some accordions
|
||
|
have ``freebass'' switches which overcomes this, but that is the
|
||
|
exception.
|
||
|
|
||
|
</DD>
|
||
|
<DT><A NAME="foot4918">... notes.</A><A
|
||
|
HREF="node11.html#tex2html48"><SUP>11.4</SUP></A></DT>
|
||
|
<DD>Simple math here: take the number of notes in a scale (7) and
|
||
|
multiply by .3. Take the integer result as the number of notes.
|
||
|
|
||
|
</DD>
|
||
|
<DT><A NAME="foot4925">... octave.</A><A
|
||
|
HREF="node11.html#tex2html49"><SUP>11.5</SUP></A></DT>
|
||
|
<DD>Not quite true: they
|
||
|
use whatever notes are in the chord, which might exceed an octave span.
|
||
|
|
||
|
</DD>
|
||
|
<DT><A NAME="foot4968">... octaves</A><A
|
||
|
HREF="node11.html#tex2html50"><SUP>11.6</SUP></A></DT>
|
||
|
<DD>Again, not quite true: the
|
||
|
command just duplicates the arpeggio notes the number of times specified in the
|
||
|
R<SMALL>ANGE</SMALL> setting.
|
||
|
|
||
|
</DD>
|
||
|
</DL><HR>
|
||
|
<!--Navigation Panel-->
|
||
|
<A NAME="tex2html469"
|
||
|
HREF="node12.html">
|
||
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||
|
<A NAME="tex2html467"
|
||
|
HREF="mma.html">
|
||
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||
|
<A NAME="tex2html461"
|
||
|
HREF="node10.html">
|
||
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||
|
<BR>
|
||
|
<B> Next:</B> <A NAME="tex2html470"
|
||
|
HREF="node12.html">Harmony</A>
|
||
|
<B> Up:</B> <A NAME="tex2html468"
|
||
|
HREF="mma.html">Reference Manual</A>
|
||
|
<B> Previous:</B> <A NAME="tex2html462"
|
||
|
HREF="node10.html">Solo and Melody Tracks</A>
|
||
|
<!--End of Navigation Panel-->
|
||
|
<ADDRESS>
|
||
|
Bob
|
||
|
2006-10-15
|
||
|
</ADDRESS>
|
||
|
</BODY>
|
||
|
</HTML>
|