mirror of
https://github.com/microtherion/VocalEasel.git
synced 2024-12-22 19:23:59 +00:00
1602 lines
43 KiB
HTML
1602 lines
43 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
|
|
<!--Converted with LaTeX2HTML 2008 (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>Other Commands and Directives</TITLE>
|
|
<META NAME="description" CONTENT="Other Commands and Directives">
|
|
<META NAME="keywords" CONTENT="mma">
|
|
<META NAME="resource-type" CONTENT="document">
|
|
<META NAME="distribution" CONTENT="global">
|
|
|
|
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
|
|
<META NAME="Generator" CONTENT="LaTeX2HTML v2008">
|
|
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
|
|
|
<LINK REL="STYLESHEET" HREF="mma.css">
|
|
|
|
<LINK REL="next" HREF="node25.html">
|
|
<LINK REL="previous" HREF="node23.html">
|
|
<LINK REL="up" HREF="mma.html">
|
|
<LINK REL="next" HREF="node25.html">
|
|
</HEAD>
|
|
|
|
<BODY bgcolor="#ffffff">
|
|
|
|
<DIV CLASS="navigation"><!--Navigation Panel-->
|
|
<A NAME="tex2html794"
|
|
HREF="node25.html">
|
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
|
<A NAME="tex2html792"
|
|
HREF="mma.html">
|
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
|
<A NAME="tex2html786"
|
|
HREF="node23.html">
|
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
|
<BR>
|
|
<B> Next:</B> <A NAME="tex2html795"
|
|
HREF="node25.html">Begin/End Blocks</A>
|
|
<B> Up:</B> <A NAME="tex2html793"
|
|
HREF="mma.html">Reference Manual</A>
|
|
<B> Previous:</B> <A NAME="tex2html787"
|
|
HREF="node23.html">Fine Tuning (Translations)</A>
|
|
<BR>
|
|
<BR></DIV>
|
|
<!--End of Navigation Panel-->
|
|
<!--Table of Child-Links-->
|
|
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
|
|
|
<UL CLASS="ChildLinks">
|
|
<LI><A NAME="tex2html796"
|
|
HREF="node24.html#SECTION002410000000000000000">AllTracks</A>
|
|
<LI><A NAME="tex2html797"
|
|
HREF="node24.html#SECTION002420000000000000000">Articulate</A>
|
|
<LI><A NAME="tex2html798"
|
|
HREF="node24.html#SECTION002430000000000000000">Copy</A>
|
|
<LI><A NAME="tex2html799"
|
|
HREF="node24.html#SECTION002440000000000000000">Comment</A>
|
|
<LI><A NAME="tex2html800"
|
|
HREF="node24.html#SECTION002450000000000000000">Debug</A>
|
|
<LI><A NAME="tex2html801"
|
|
HREF="node24.html#SECTION002460000000000000000">Delete</A>
|
|
<LI><A NAME="tex2html802"
|
|
HREF="node24.html#SECTION002470000000000000000">Direction</A>
|
|
<LI><A NAME="tex2html803"
|
|
HREF="node24.html#SECTION002480000000000000000">KeySig</A>
|
|
<LI><A NAME="tex2html804"
|
|
HREF="node24.html#SECTION002490000000000000000">Mallet</A>
|
|
<UL>
|
|
<LI><A NAME="tex2html805"
|
|
HREF="node24.html#SECTION002491000000000000000">Rate</A>
|
|
<LI><A NAME="tex2html806"
|
|
HREF="node24.html#SECTION002492000000000000000">Decay</A>
|
|
</UL>
|
|
<BR>
|
|
<LI><A NAME="tex2html807"
|
|
HREF="node24.html#SECTION0024100000000000000000">Octave</A>
|
|
<LI><A NAME="tex2html808"
|
|
HREF="node24.html#SECTION0024110000000000000000">Off</A>
|
|
<LI><A NAME="tex2html809"
|
|
HREF="node24.html#SECTION0024120000000000000000">On</A>
|
|
<LI><A NAME="tex2html810"
|
|
HREF="node24.html#SECTION0024130000000000000000">Print</A>
|
|
<LI><A NAME="tex2html811"
|
|
HREF="node24.html#SECTION0024140000000000000000">PrintActive</A>
|
|
<LI><A NAME="tex2html812"
|
|
HREF="node24.html#SECTION0024150000000000000000">Restart</A>
|
|
<LI><A NAME="tex2html813"
|
|
HREF="node24.html#SECTION0024160000000000000000">ScaleType</A>
|
|
<LI><A NAME="tex2html814"
|
|
HREF="node24.html#SECTION0024170000000000000000">Seq</A>
|
|
<LI><A NAME="tex2html815"
|
|
HREF="node24.html#SECTION0024180000000000000000">Strum</A>
|
|
<LI><A NAME="tex2html816"
|
|
HREF="node24.html#SECTION0024190000000000000000">Synchronize</A>
|
|
<LI><A NAME="tex2html817"
|
|
HREF="node24.html#SECTION0024200000000000000000">Transpose</A>
|
|
<LI><A NAME="tex2html818"
|
|
HREF="node24.html#SECTION0024210000000000000000">Unify</A>
|
|
</UL>
|
|
<!--End of Table of Child-Links-->
|
|
<HR>
|
|
|
|
<H1><A NAME="SECTION002400000000000000000"></A>
|
|
<A NAME="sec-directives"></A>
|
|
<BR>
|
|
Other Commands and Directives
|
|
</H1>
|
|
|
|
<P>
|
|
In addition to the “Pattern”, “Sequence”, “Groove” and
|
|
“Repeat” and other directives discussed earlier, and chord data,
|
|
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> supports a number of directives which affect the flavor of your
|
|
music.
|
|
|
|
<P>
|
|
The subjects presented in this chapter are ordered alphabetically.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION002410000000000000000"></A> <A NAME="alltracks"></A>
|
|
<BR>
|
|
AllTracks
|
|
</H1>
|
|
|
|
<P>
|
|
Sometimes you want to apply the same command to all the currently
|
|
defined tracks; for example, you might want to ensure that <SPAN CLASS="textit">no</SPAN>
|
|
tracks have S<SMALL>EQ</SMALL>R<SMALL>ND</SMALL> set. Yes, you could go though each track
|
|
(and hope you don't miss any) and explicitly issue the command:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Bass SeqRnd Off
|
|
...
|
|
<BR>
|
|
Chord SeqRnd Off </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
But,
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>AllTracks SeqRnd Off </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
is much simpler. Similarly, you can set the articulation for all
|
|
tracks with:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>AllTracks Articulate 80 </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
You can even combine this with a
|
|
B<SMALL>EGIN</SMALL>/E<SMALL>ND</SMALL> like:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Begin AllTracks
|
|
<BR> Articulate 80
|
|
<BR> SeqRnd Off
|
|
<BR> Rskip 0
|
|
<BR>
|
|
End </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
This command is handy when you are changing an existing G<SMALL>ROOVE</SMALL>.
|
|
|
|
<P>
|
|
There are two forms of the A<SMALL>LL</SMALL>T<SMALL>RACKS</SMALL> command. The first, as
|
|
discussed above, applies to all tracks that are currently
|
|
defined. Please note that S<SMALL>OLO</SMALL>, M<SMALL>ELODY</SMALL> and A<SMALL>RIA</SMALL>
|
|
tracks are <SPAN CLASS="textit">not</SPAN> modified.
|
|
|
|
<P>
|
|
The second form of the command lets you specify one or more track
|
|
types. For example, you may want to increase the volume of all the
|
|
D<SMALL>RUM</SMALL> tracks:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>AllTracks Drum Volume +20 </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
Or to set the articulation on B<SMALL>ASS</SMALL> and W<SMALL>ALK</SMALL> tracks:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>AllTracks Bass Walk Articulate 55 </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
If you specify track types you can use any of B<SMALL>ASS</SMALL>,
|
|
C<SMALL>HORD</SMALL>, A<SMALL>RPEGGIO</SMALL>, S<SMALL>CALE</SMALL>, D<SMALL>RUM</SMALL>, W<SMALL>ALK</SMALL>,
|
|
M<SMALL>ELODY</SMALL>, S<SMALL>OLO</SMALL> and A<SMALL>RIA</SMALL> tracks.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION002420000000000000000"></A> <A NAME="articulate"></A>
|
|
<BR>
|
|
Articulate
|
|
</H1>
|
|
|
|
<P>
|
|
When
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> processes a music file, all the note lengths specified in a
|
|
pattern are converted to MIDI lengths.
|
|
|
|
<P>
|
|
For example in:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Bass Define BB 1 4 1 100; 2 4 5 90; 3 4 1 80; 4 4 5 90 </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
bass notes on beats 1, 2, 3 and 4 are defined. All are quarter notes.
|
|
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> , being quite literal about things, will make each note exactly
|
|
192 MIDI ticks long--which means that the note on beat 2 will start
|
|
at the same time as the note on beat 1 ends.
|
|
|
|
<P>
|
|
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> has an A<SMALL>RTICULATE</SMALL> setting for each voice. This value is applied
|
|
to shorten or lengthen the note length. By default, the setting is 90.
|
|
Each generated note duration is taken to be a percentage of this
|
|
setting, So, a quarter note with a MIDI tick duration of 192 will
|
|
become 172 ticks long.
|
|
|
|
<P>
|
|
If A<SMALL>RTICULATE</SMALL> is applied to a short note, you are guaranteed that the
|
|
note will never be less than 1 MIDI tick in length.
|
|
|
|
<P>
|
|
To set the value, use a line like:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Chord-1 Articulate 96 </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
A<SMALL>RTICULATE</SMALL> values must be greater than 0 and less than or equal to
|
|
200. Values over 100 will lengthen the note. Settings greater than 120
|
|
will generate a warning.
|
|
|
|
<P>
|
|
You can specify a different A<SMALL>RTICULATE</SMALL> for each bar in a
|
|
sequence. Repeated values can be represented with a “/”:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Chord Articulate 50 60 / 30 </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
Notes: The full values for the notes are saved with the pattern
|
|
definition. The articulation adjustment is applied at run time. The
|
|
A<SMALL>RTICULATE</SMALL> setting is saved with a G<SMALL>ROOVE</SMALL>.
|
|
|
|
<P>
|
|
Articulate settings can easily be modified by prefacing the values with a
|
|
“+” or “-” which will increment or decrement the existing
|
|
values. For example:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Chord Articulate 80 85 90 95
|
|
<BR>
|
|
Chord Articulate +10 -10 </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
results in the C<SMALL>HORD </SMALL>A<SMALL>RTICULATE</SMALL> setting of: “90 75 100 85”. Having fewer values
|
|
that the current sequence size is fine. The inc/dec values get
|
|
expanded to the sequence size and are applied to the existing settings.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION002430000000000000000"></A> <A NAME="copy"></A>
|
|
<BR>
|
|
Copy
|
|
</H1>
|
|
|
|
<P>
|
|
Sometimes it is useful to duplicate the settings from one voice to
|
|
another. The C<SMALL>OPY</SMALL> command does just that:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Bass-1 Copy Bass </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
will copy the settings from the <SPAN CLASS="textit">Bass</SPAN> track to the <SPAN CLASS="textit">Bass-1</SPAN>
|
|
track.
|
|
|
|
<P>
|
|
The C<SMALL>OPY</SMALL> command only works between tracks of the same type.
|
|
|
|
<P>
|
|
The following settings are copied:
|
|
|
|
<P>
|
|
|
|
<UL>
|
|
<LI><A HREF="#articulate">Articulate</A>
|
|
</LI>
|
|
<LI><A HREF="node14.html#compress">Compress</A>
|
|
</LI>
|
|
<LI><A HREF="#scale-direction">Direction</A>
|
|
</LI>
|
|
<LI><A HREF="node15.html#harmony">Harmony</A>
|
|
</LI>
|
|
<LI><A HREF="node14.html#chord-invert">Invert</A>
|
|
</LI>
|
|
<LI><A HREF="#octave">Octave</A>
|
|
</LI>
|
|
<LI><A HREF="node13.html#rskip">RSkip</A>
|
|
</LI>
|
|
<LI><A HREF="node13.html#rtime">RTime</A>
|
|
</LI>
|
|
<LI><A HREF="node18.html#rvolume">RVolume</A>
|
|
</LI>
|
|
<LI><A HREF="#scale-type">ScaleType</A>
|
|
</LI>
|
|
<LI><A HREF="#strum">Strum</A>
|
|
</LI>
|
|
<LI><A HREF="node22.html#set-voice">Voice</A> or
|
|
<A HREF="node4.html#drum-tone">Tone</A>
|
|
</LI>
|
|
<LI><A HREF="node18.html#volume">Volume</A>
|
|
|
|
<P>
|
|
</LI>
|
|
</UL>
|
|
|
|
<P>
|
|
Warning: You are probably better off to use internal macros for this.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION002440000000000000000"></A><A NAME="comment"></A>
|
|
<BR>
|
|
Comment
|
|
</H1>
|
|
|
|
<P>
|
|
As previously discussed, a comment in
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> is anything following a
|
|
“//” in a line. A second way of marking a comment is with the
|
|
C<SMALL>OMMENT</SMALL> directive. This is quite useful in combination the
|
|
B<SMALL>EGIN</SMALL> and E<SMALL>ND</SMALL> directives. For example:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Begin Comment
|
|
<BR> This is a description spanning
|
|
<BR> several lines which will be
|
|
<BR> ignored by MMA.
|
|
<BR>
|
|
End </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
You could achieve the same with:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>// This is a description spanning
|
|
<BR> // several lines which will be
|
|
<BR> // ignored by MMA. </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
or even:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Comment This is a description spanning
|
|
<BR>
|
|
Comment several lines which will be
|
|
<BR>
|
|
Comment ignored by MMA. </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
One minor difference between <SPAN CLASS="textbf">//</SPAN> and C<SMALL>OMMENT</SMALL> is that
|
|
the first is discarded when the input stream is read; the more verbose
|
|
version is discarded during line processing.
|
|
|
|
<P>
|
|
Quite often it is handy to delete large sections of a song with a
|
|
B<SMALL>EGIN </SMALL>C<SMALL>OMMENT/</SMALL>E<SMALL>ND</SMALL> on a temporary basis.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION002450000000000000000"></A> <A NAME="debug"></A>
|
|
<A NAME="debugging"></A>
|
|
<BR>
|
|
Debug
|
|
</H1>
|
|
|
|
<P>
|
|
To enable you to find problems in your song files (and, perhaps, even
|
|
find problems with
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> itself) various debugging messages can be
|
|
displayed. These are normally set from the command line
|
|
<A HREF="node2.html#sec-running">command line</A>.
|
|
|
|
<P>
|
|
However, it is possible to enable various debugging messages
|
|
dynamically in a song file using the D<SMALL>EBUG</SMALL> directive. In a
|
|
debug statement you can enable or disable any of a variety of
|
|
messages. A typical directive is:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Debug Debug=On Expand=Off Patterns=On </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
Each section of the debug directive consists of a <SPAN CLASS="textit">mode</SPAN> and the
|
|
command word ON or O<SMALL>FF</SMALL>. The two parts must be joined by
|
|
a single “<SPAN CLASS="textit"><SPAN CLASS="MATH">=</SPAN></SPAN>”. You may use the values “0” for “Off” and
|
|
“1” for “On” if desired.
|
|
|
|
<P>
|
|
The available modes with the equivalent command line switches are:
|
|
|
|
<P>
|
|
<BLOCKQUOTE>
|
|
<TABLE CELLPADDING=3 BORDER="1">
|
|
<TR><TD ALIGN="LEFT"><SPAN CLASS="textit">Mode</SPAN></TD>
|
|
<TD ALIGN="LEFT" COLSPAN=2><SPAN><SPAN CLASS="textit">Command Line Equivalent</SPAN></SPAN></TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT">Debug</TD>
|
|
<TD ALIGN="LEFT">-d</TD>
|
|
<TD ALIGN="LEFT">debugging messages</TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT">Filenames</TD>
|
|
<TD ALIGN="LEFT">-o</TD>
|
|
<TD ALIGN="LEFT">display file names</TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT">Patterns</TD>
|
|
<TD ALIGN="LEFT">-p</TD>
|
|
<TD ALIGN="LEFT">pattern creation</TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT">Sequence</TD>
|
|
<TD ALIGN="LEFT">-s</TD>
|
|
<TD ALIGN="LEFT">sequence creation</TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT">Runtime</TD>
|
|
<TD ALIGN="LEFT">-r</TD>
|
|
<TD ALIGN="LEFT">running progress</TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT">Warnings</TD>
|
|
<TD ALIGN="LEFT">-w</TD>
|
|
<TD ALIGN="LEFT">warning messages</TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT">Expand</TD>
|
|
<TD ALIGN="LEFT">-e</TD>
|
|
<TD ALIGN="LEFT">display expanded lines</TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT">Plectrum</TD>
|
|
<TD ALIGN="LEFT"> </TD>
|
|
<TD ALIGN="LEFT">display Plectrum chord shapes</TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT">Roman</TD>
|
|
<TD ALIGN="LEFT"> </TD>
|
|
<TD ALIGN="LEFT">display Roman numeral chord conversions</TD>
|
|
</TR>
|
|
</TABLE>
|
|
</BLOCKQUOTE>
|
|
|
|
<P>
|
|
The modes and command are case-insensitive (although the command line
|
|
switches are not). The options for P<SMALL>LECTRUM</SMALL> and R<SMALL>OMAN</SMALL>
|
|
are not accessible from the command line.
|
|
|
|
<P>
|
|
The current state of the debug flags is saved in the variable
|
|
$_Debug and the state prior to a change is saved in $_LastDebug.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION002460000000000000000"></A> <A NAME="sec-delete"></A>
|
|
<BR>
|
|
Delete
|
|
</H1>
|
|
|
|
<P>
|
|
If you are using a track in only one part of your song, especially if
|
|
it is at the start, it may be wise to free that track's resources when
|
|
you are done with it. The D<SMALL>ELETE</SMALL> command does just that:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Solo Delete </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
If a MIDI channel has been assigned to that track, it is marked as
|
|
“available” and the track is deleted. Any data already saved in the
|
|
MIDI track will be written when
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> is finished processing the song
|
|
file.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION002470000000000000000"></A> <A NAME="scale-direction"></A>
|
|
<BR>
|
|
Direction
|
|
</H1>
|
|
|
|
<P>
|
|
In tracks using chords or scales you can change the direction in which
|
|
they are applied:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Scale Direction UP </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
The effects differ in different track types. For S<SMALL>CALE</SMALL> and
|
|
A<SMALL>RPEGGIO</SMALL> tracks:
|
|
|
|
<P>
|
|
<BLOCKQUOTE>
|
|
<TABLE CELLPADDING=3>
|
|
<TR><TD ALIGN="RIGHT">UP</TD>
|
|
<TD ALIGN="LEFT">Plays in upward direction only</TD>
|
|
</TR>
|
|
<TR><TD ALIGN="RIGHT">DOWN</TD>
|
|
<TD ALIGN="LEFT">Plays in downward direction only</TD>
|
|
</TR>
|
|
<TR><TD ALIGN="RIGHT">BOTH</TD>
|
|
<TD ALIGN="LEFT">Plays upward and downward (<SPAN CLASS="textit">default</SPAN>)</TD>
|
|
</TR>
|
|
<TR><TD ALIGN="RIGHT">RANDOM</TD>
|
|
<TD ALIGN="LEFT">Plays notes from the chord or scale randomly</TD>
|
|
</TR>
|
|
</TABLE>
|
|
</BLOCKQUOTE>
|
|
<P>
|
|
<BLOCKQUOTE>When this command is encountered in a S<SMALL>CALE</SMALL> track the start
|
|
point of the scale is reset.
|
|
</BLOCKQUOTE>
|
|
<P>
|
|
|
|
<P>
|
|
A W<SMALL>ALK</SMALL> track recognizes the following option settings:
|
|
|
|
<P>
|
|
<BLOCKQUOTE>
|
|
<TABLE CELLPADDING=3>
|
|
<TR><TD ALIGN="RIGHT">BOTH</TD>
|
|
<TD ALIGN="LEFT">The default. The bass pattern
|
|
will go up and down a partial scale. Some notes may be repeated.</TD>
|
|
</TR>
|
|
<TR><TD ALIGN="RIGHT">UP</TD>
|
|
<TD ALIGN="LEFT">Notes will be chosen sequentially from an ascending, partial scale.</TD>
|
|
</TR>
|
|
<TR><TD ALIGN="RIGHT">DOWN</TD>
|
|
<TD ALIGN="LEFT">Notes will be chosen sequentially from a descending, partial scale.</TD>
|
|
</TR>
|
|
<TR><TD ALIGN="RIGHT">RANDOM</TD>
|
|
<TD ALIGN="LEFT">Notes will be chosen in a random direction from a partial scale.</TD>
|
|
</TR>
|
|
</TABLE>
|
|
</BLOCKQUOTE>
|
|
<P>
|
|
<BLOCKQUOTE>All four patterns are useful and create quite different effects.
|
|
|
|
</BLOCKQUOTE>
|
|
|
|
<P>
|
|
The C<SMALL>HORD</SMALL> tracks D<SMALL>IRECTION</SMALL> only has an effect when the
|
|
S<SMALL>TRUM</SMALL> setting has a non-zero value. In this case the following
|
|
applies:
|
|
|
|
<P>
|
|
<BLOCKQUOTE>
|
|
<TABLE CELLPADDING=3>
|
|
<TR><TD ALIGN="RIGHT">UP</TD>
|
|
<TD ALIGN="LEFT">The default. Notes are sounded from the lowest tone to the highest.</TD>
|
|
</TR>
|
|
<TR><TD ALIGN="RIGHT">DOWN</TD>
|
|
<TD ALIGN="LEFT">Notes are sounded from the highest to the lowest.</TD>
|
|
</TR>
|
|
<TR><TD ALIGN="RIGHT">BOTH</TD>
|
|
<TD ALIGN="LEFT">The UP and DOWN values are alternated for each successive chord.</TD>
|
|
</TR>
|
|
<TR><TD ALIGN="RIGHT">RANDOM</TD>
|
|
<TD ALIGN="LEFT">A random direction is selected for each chord.</TD>
|
|
</TR>
|
|
</TABLE>
|
|
</BLOCKQUOTE>
|
|
|
|
<P>
|
|
You can specify a different D<SMALL>IRECTION</SMALL> for each bar in a
|
|
sequence. Repeated values can be represented with a “/”:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Arpeggio Direction Up Down / Both </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
The setting is ignored by B<SMALL>ASS</SMALL>, D<SMALL>RUM</SMALL> and S<SMALL>OLO</SMALL>
|
|
tracks.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION002480000000000000000"></A> <A NAME="keysig"></A>
|
|
<A NAME="keysignature"></A>
|
|
<BR>
|
|
KeySig
|
|
</H1>
|
|
|
|
<P>
|
|
The key signature is an underlining concept in all modern music. In
|
|
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> it will effect the notes used in S<SMALL>OLO</SMALL> or
|
|
M<SMALL>ELODY</SMALL> tracks, is a basic requirement for R<SMALL>OMAN</SMALL> numeral
|
|
chords, and sets a MIDI Key Signature event.<A NAME="tex2html91"
|
|
HREF="#foot12981"><SUP><SPAN CLASS="arabic">24</SPAN>.<SPAN CLASS="arabic">1</SPAN></SUP></A> In most cases you should set the key
|
|
signature in all your songs.
|
|
|
|
<P>
|
|
Setting the key signature is simple to do:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>KeySig 2b </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
The argument consists of a single digit “0” to “7” followed by a
|
|
“b” or “&” for flat keys or a “#” for sharp keys.
|
|
|
|
<P>
|
|
As a more musical alternate, you can use a pitch name like “F” or “G#”.
|
|
|
|
<P>
|
|
The optional keywords “Major” or “Minor” (these can be abbreviated
|
|
to “Maj” or “Min” ... and case doesn't count) can be added to
|
|
this command. This will accomplish two things:
|
|
|
|
<P>
|
|
|
|
<OL>
|
|
<LI>The MIDI track Key Signature event will be set to reflect minor
|
|
or major.
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>If you are using a musical name the proper key (number of flats
|
|
or sharps) will be used.
|
|
|
|
<P>
|
|
</LI>
|
|
</OL>
|
|
|
|
<P>
|
|
To summarize, the following are all valid K<SMALL>EY</SMALL>S<SMALL>IG</SMALL> directives:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>KeySig 2# Major
|
|
<BR>
|
|
KeySig 1b
|
|
<BR>
|
|
KeySig 0b Min
|
|
<BR>
|
|
KeySig F Min
|
|
<BR>
|
|
KeySig A Major </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION002490000000000000000">
|
|
Mallet</A>
|
|
</H1>
|
|
|
|
<P>
|
|
Some instruments (Steel-drums, banjos, marimbas, etc.) are normally
|
|
played with rapidly repeating notes. Instead of painfully inserting
|
|
long lists of these notes, you can use the M<SMALL>ALLET</SMALL> directive.
|
|
The M<SMALL>ALLET</SMALL> directive accepts a number of options, each an
|
|
OPTION=VALUE pair. For example:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Solo-Marimba Mallet Rate=16 Decay=-5 </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
This command is also useful in creating drum rolls. For example:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Begin Drum-Snare2
|
|
<BR> Tone SnareDrum1
|
|
<BR> Volume F
|
|
<BR> Mallet Rate=32 Decay=-3
|
|
<BR> Rvolume 3
|
|
<BR> Sequence z z z 1 1 100
|
|
<BR>
|
|
End </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
The following options are supported:
|
|
|
|
<P>
|
|
|
|
<H2><A NAME="SECTION002491000000000000000">
|
|
Rate</A>
|
|
</H2>
|
|
|
|
<P>
|
|
The R<SMALL>ATE</SMALL> must be a valid note length (i.e., 8, 16, or even
|
|
16.+8).
|
|
|
|
<P>
|
|
For example:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Solo-Marimba Mallet Rate=16 </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
will set all the notes in the “Solo-Marimba” track to be sounded a
|
|
series of 16th notes.
|
|
|
|
<P>
|
|
|
|
<UL>
|
|
<LI>Note duration modifiers such as articulate are applied to each
|
|
resultant note,
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>It is guaranteed that the note will sound at least once,
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>The use of note lengths assures a consistent sound independent
|
|
of the song tempo.
|
|
|
|
<P>
|
|
</LI>
|
|
</UL>
|
|
|
|
<P>
|
|
To disable this setting use a value of “0”.
|
|
|
|
<P>
|
|
|
|
<H2><A NAME="SECTION002492000000000000000">
|
|
Decay</A>
|
|
</H2>
|
|
|
|
<P>
|
|
You can adjust the volume (velocity) of the notes being repeated when
|
|
M<SMALL>ALLET</SMALL> is enabled:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Drum-Snare Mallet Decay=-15 </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
The argument is a percentage of the current value to add to the note
|
|
each time it is struck. In this example, assuming that the note length
|
|
calls for 4 “strikes” and the initial velocity is 100, the note will
|
|
be struck with a velocity of 100, 85, 73 and 63.
|
|
|
|
<P>
|
|
Important: a positive value will cause the notes to get louder,
|
|
negative values cause the notes to get softer.
|
|
|
|
<P>
|
|
Note velocities will never go below 1 or above 255. Note, however,
|
|
that notes with a velocity of 1 will most likely be inaudible.
|
|
|
|
<P>
|
|
The decay option value must be in the range -50 to 50; however, be
|
|
cautious using any values outside the range -5 to 5 since the volume
|
|
(velocity) of the notes will change quite quickly. The default value
|
|
is 0 (no decay).
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION0024100000000000000000"></A> <A NAME="octave"></A>
|
|
<BR>
|
|
Octave
|
|
</H1>
|
|
|
|
<P>
|
|
When
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> initializes and after the S<SMALL>EQ</SMALL>C<SMALL>LEAR</SMALL> command all track
|
|
octaves are set to “4”. This will place most chord and bass notes in
|
|
the region of middle C.
|
|
|
|
<P>
|
|
You can change the octave for any voice with O<SMALL>CTAVE</SMALL>
|
|
command. For example:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Bass-1 Octave 3 </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
Sets the notes used in the “Bass-1” track one octave lower than
|
|
normal.
|
|
|
|
<P>
|
|
The octave specification can be any value from 0 to 10. Various
|
|
combinations of I<SMALL>NVERT</SMALL>, T<SMALL>RANSPOSE</SMALL> and O<SMALL>CTAVE</SMALL> can
|
|
force notes to be out of the valid MIDI range. In this case the lowest
|
|
or highest available note will be used.
|
|
|
|
<P>
|
|
You can specify a different O<SMALL>CTAVE</SMALL> for each bar in a sequence.
|
|
Repeated values can be represented with a “/”:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Chord Octave 4 5 / 4 </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
Octave settings can easily be modified by prefacing the values with a
|
|
“+” or “-” which will increment or decrement the existing
|
|
values. For example:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Bass Octave 2 3 4 5
|
|
<BR>
|
|
Bass Octave +1 +2 -1 -3 </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
results in the B<SMALL>ASS </SMALL>O<SMALL>CTAVE</SMALL> setting of: “3 5 3 2”. Having fewer values
|
|
that the current sequence size is fine. The inc/dec values get
|
|
expanded to the sequence size and are applied to the existing settings.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION0024110000000000000000"></A> <A NAME="set-off"></A>
|
|
<BR>
|
|
Off
|
|
</H1>
|
|
|
|
<P>
|
|
To disable the generation of MIDI output on a specific track:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Bass Off </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
This can be used anywhere in a file. Use it to override the effect of
|
|
a predefined groove, if you wish. This is simpler than resetting a
|
|
voice in a groove. The only way to reset this command is with a
|
|
O<SMALL>N</SMALL> directive.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION0024120000000000000000"></A> <A NAME="set-on"></A>
|
|
<BR>
|
|
On
|
|
</H1>
|
|
|
|
<P>
|
|
To enable the generation of MIDI output on a specific track which has
|
|
been disabled with an O<SMALL>FF</SMALL> directive:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Bass On </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
Attempts to enable tracks disabled with the -T command line option
|
|
generate a warning (the command is ignored).
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION0024130000000000000000">
|
|
Print</A>
|
|
</H1>
|
|
|
|
<P>
|
|
The P<SMALL>RINT</SMALL> directive will display its argument to the screen
|
|
when it is encountered. For example, if you want to print the file
|
|
name of the input file while processing, you could insert:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Print Making beautiful music for MY SONG </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
No control characters are supported.
|
|
|
|
<P>
|
|
This can be useful in debugging input files.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION0024140000000000000000">
|
|
PrintActive</A>
|
|
</H1>
|
|
|
|
<P>
|
|
The P<SMALL>RINT</SMALL>A<SMALL>CTIVE</SMALL> directive will the currently active
|
|
G<SMALL>ROOVE</SMALL> and the active tracks. This can be quite useful when
|
|
writing groove files and you want to modify and existing groove.
|
|
|
|
<P>
|
|
Any parameters given are printed as single comment at the end of the
|
|
header line.
|
|
|
|
<P>
|
|
This is strictly a debugging tool. No P<SMALL>RINT</SMALL>A<SMALL>CTIVE</SMALL> statements
|
|
should appear in finalized grooves or song files.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION0024150000000000000000">
|
|
Restart</A>
|
|
</H1>
|
|
|
|
<P>
|
|
This command will reset a track (or all tracks) to a default
|
|
state. You may find this particularly handy in S<SMALL>CALE</SMALL> and
|
|
A<SMALL>RPEGGIO</SMALL> tracks when you want note selection to start in a
|
|
particular place, not left over from previous bars.
|
|
|
|
<P>
|
|
Usage is simple:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Arpeggio Restart </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
or to do the whole lot:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Restart </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
You will find very few cases where the use of this command is
|
|
necessary.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION0024160000000000000000"></A> <A NAME="scale-type"></A>
|
|
<BR>
|
|
ScaleType
|
|
</H1>
|
|
|
|
<P>
|
|
This option is only used by S<SMALL>CALE</SMALL> tracks. It can be set for
|
|
other tracks, but the setting is not used.
|
|
|
|
<P>
|
|
By default, the S<SMALL>CALE</SMALL>T<SMALL>YPE</SMALL> is set to A<SMALL>UTO</SMALL>. The settings
|
|
permissible are:
|
|
|
|
<P>
|
|
<BLOCKQUOTE>
|
|
<TABLE CELLPADDING=3>
|
|
<TR><TD ALIGN="RIGHT">CHROMATIC</TD>
|
|
<TD ALIGN="LEFT">Forces use of a chromatic scale</TD>
|
|
</TR>
|
|
<TR><TD ALIGN="RIGHT">AUTO</TD>
|
|
<TD ALIGN="LEFT">Uses scale based on the current chord (default)</TD>
|
|
</TR>
|
|
</TABLE>
|
|
</BLOCKQUOTE>
|
|
|
|
<P>
|
|
When this command is encountered in a S<SMALL>CALE</SMALL> track the start
|
|
point of the scale is reset.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION0024170000000000000000"></A>
|
|
<A NAME="seqnumber"></A>
|
|
<BR>
|
|
Seq
|
|
</H1>
|
|
|
|
<P>
|
|
If your sequence, or groove, has more than one pattern (i.e., you have
|
|
set SeqSize to a value other than 1), you can use this directive to
|
|
force a particular pattern point to be used. The directive:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Seq </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
resets the <SPAN CLASS="textit">sequence counter</SPAN> to 1. This means that the next bar
|
|
will use the first pattern in the current sequence. You can force a
|
|
specific pattern point by using an optional value after the directive.
|
|
For example:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Seq 8 </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
forces the use of pattern point 8 for the next bar. This can be quite
|
|
useful if you have a multi-bar sequence and, perhaps, the eight bar is
|
|
variation which you want used every eight bars, but also for a
|
|
transition bar, or the final bar. Just put a <SMALL>SEQ 8</SMALL> at those
|
|
points. You might also want to put a <SMALL>SEQ</SMALL> at the start of
|
|
sections to force the restart of the count.
|
|
|
|
<P>
|
|
If you have enable sequence randomization with the S<SMALL>EQ</SMALL>R<SMALL>ND </SMALL>O<SMALL>N</SMALL>
|
|
command, the randomization will be disabled by a S<SMALL>EQ</SMALL>
|
|
command.<A NAME="tex2html92"
|
|
HREF="#foot12904"><SUP><SPAN CLASS="arabic">24</SPAN>.<SPAN CLASS="arabic">2</SPAN></SUP></A> However,
|
|
settings of track S<SMALL>EQ</SMALL>R<SMALL>ND</SMALL> will not be effected. One difference
|
|
between S<SMALL>EQ</SMALL>R<SMALL>ND </SMALL>O<SMALL>FF</SMALL> and S<SMALL>EQ</SMALL> is that the current sequence
|
|
point is set with the latter; with S<SMALL>EQ</SMALL>R<SMALL>ND </SMALL>O<SMALL>FF</SMALL> it is left at a
|
|
random point.
|
|
|
|
<P>
|
|
Note: Using a value greater than the current S<SMALL>EQ</SMALL>S<SMALL>IZE</SMALL> is not
|
|
permitted.
|
|
|
|
<P>
|
|
This is a very useful command! For example, look at the four bar
|
|
introduction of the song “Exactly Like You”:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Groove BossanovaEnd
|
|
<BR>
|
|
seq 3
|
|
<BR>
|
|
1 C
|
|
<BR>
|
|
seq 2
|
|
<BR>
|
|
2 Am7
|
|
<BR>
|
|
seq 1
|
|
<BR>
|
|
3 Dm7
|
|
<BR>
|
|
seq 3
|
|
<BR>
|
|
4 G7 / G7#5 </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
In this example the four bar “ending groove” has been used to create
|
|
an interesting introduction.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION0024180000000000000000"></A> <A NAME="strum"></A>
|
|
<BR>
|
|
Strum
|
|
</H1>
|
|
|
|
<P>
|
|
When
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> generates a chord,<A NAME="tex2html93"
|
|
HREF="#foot12914"><SUP><SPAN CLASS="arabic">24</SPAN>.<SPAN CLASS="arabic">3</SPAN></SUP></A> all the
|
|
notes are played at the same time.<A NAME="tex2html94"
|
|
HREF="#foot12983"><SUP><SPAN CLASS="arabic">24</SPAN>.<SPAN CLASS="arabic">4</SPAN></SUP></A>
|
|
<P>
|
|
To make the notes in a chord sound like something a guitar or banjo
|
|
might play, use the S<SMALL>TRUM</SMALL> directive. For example:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Chord-1 Strum 5 </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
sets the strumming factor to 5 for track Chord-1. The strum factor is
|
|
specified in MIDI ticks. Usually values around 10 to 15 work just
|
|
fine. The valid range for S<SMALL>TRUM</SMALL> is -300 to 300 (just under the
|
|
duration of a quarter note).
|
|
|
|
<P>
|
|
In the previous example the first note in the chord will be played on
|
|
the beat indicated by the pattern definition, the second note will be
|
|
played 5 ticks later, etc.
|
|
|
|
<P>
|
|
You can specify a different S<SMALL>TRUM</SMALL> for each bar in a sequence.
|
|
Repeated values can be represented with a “/”. Assuming that there
|
|
are four bars in the current sequence:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Chord Strum 20 5 / 10 </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
To make the effect of S<SMALL>TRUM</SMALL> more random (and human) you can set
|
|
a range for the delay. For example:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Chord Strum 20,25 </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
will cause
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> to select a value between 20 and 25 ticks for each
|
|
successive note. You can have a different range for each bar in your
|
|
sequence. In most cases a small range is adequate. Large values can
|
|
create “odd” effects. Note that the syntax calls for exactly two
|
|
values and a comma, no spaces are permitted.
|
|
|
|
<P>
|
|
S<SMALL>TRUM</SMALL> can be used in all tracks except for D<SMALL>RUM</SMALL>. Since
|
|
tracks other than C<SMALL>HORD</SMALL> only generate single notes, the command
|
|
will only effect notes added via a H<SMALL>ARMONY</SMALL> or
|
|
H<SMALL>ARMONY</SMALL>O<SMALL>NLY</SMALL> directive. Judicious use of S<SMALL>TRUM</SMALL> can add
|
|
depth and a “cascading” effect.
|
|
|
|
<P>
|
|
Notes:
|
|
<UL>
|
|
<LI>When notes in a C<SMALL>HORD</SMALL> track have both a <SMALL>STRUM</SMALL> and
|
|
<SMALL>INVERT</SMALL> applied, the order of the notes played will not
|
|
necessarily be root, third, etc. The notes are sorted into ascending
|
|
order, so for a C major scale with and <SMALL>INVERT</SMALL> of 1 the notes
|
|
played would be “E G C”.
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>The strumming direction of notes in a C<SMALL>HORD</SMALL> track can be
|
|
changed with the <A HREF="#scale-direction">D<SMALL>IRECTION</SMALL></A> command.
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>The D<SMALL>IRECTION</SMALL> directive only effects S<SMALL>TRUM</SMALL> timing
|
|
in C<SMALL>HORD</SMALL> tracks.
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>In tracks other than C<SMALL>HORD</SMALL> the strum delays apply to
|
|
notes after the initial note. In the case of H<SMALL>ARMONY</SMALL>O<SMALL>NLY</SMALL>
|
|
tracks the delay will apply to the first generated note.
|
|
|
|
<P>
|
|
</LI>
|
|
</UL>
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION0024190000000000000000"></A> <A NAME="synchronize"></A>
|
|
<BR>
|
|
Synchronize
|
|
</H1>
|
|
|
|
<P>
|
|
The MIDI tracks generated by
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> are perfectly “legit” and should
|
|
be playable in any MIDI file player. However, there are a few programs
|
|
and/or situations in which you might need to use the
|
|
<SMALL>SYNCHRONIZE</SMALL> options.
|
|
|
|
<P>
|
|
First, when a program is expecting all tracks to start at the same
|
|
location, or is intolerant of “emptiness” at the start of a track,
|
|
you can add a “tick note” at the start of each
|
|
track.<A NAME="tex2html95"
|
|
HREF="#foot12953"><SUP><SPAN CLASS="arabic">24</SPAN>.<SPAN CLASS="arabic">5</SPAN></SUP></A>
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Synchronize START </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
will insert a one tick note on/off event at MIDI offset 1. You can
|
|
also generate this with the “-0” command line option.
|
|
|
|
<P>
|
|
Second, some programs think (wrongly) that all tracks should end at
|
|
the same point.<A NAME="tex2html96"
|
|
HREF="#foot12955"><SUP><SPAN CLASS="arabic">24</SPAN>.<SPAN CLASS="arabic">6</SPAN></SUP></A> Adding the command:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Synchronize END </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
will delete all MIDI data past the end of the last bar in your input
|
|
file and insert MIDI “all notes off” events at that point. You can
|
|
also generate this effect with the “-1” command line option.
|
|
|
|
<P>
|
|
The commands can be combined in any order:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Synchronize End Start </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
is perfectly valid.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION0024200000000000000000">
|
|
Transpose</A>
|
|
</H1>
|
|
|
|
<P>
|
|
You can change the key of a piece with the “Transpose” command. For
|
|
example, if you have a piece notated in the key of “C” and you want
|
|
it played back in the key of “D”:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Transpose 2 </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
will raise the playback by 2 semi-tones. Since
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> 's author plays
|
|
tenor saxophone
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Transpose -2 </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
which puts the MIDI keyboard into the same key as the horn, is not an
|
|
uncommon directive
|
|
|
|
<P>
|
|
You can use any value between -12 and 12. All tracks (with the logical
|
|
exception of the drum tracks) are effected by this command.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION0024210000000000000000">
|
|
Unify</A>
|
|
</H1>
|
|
|
|
<P>
|
|
The U<SMALL>NIFY</SMALL> command is used to force multiple notes of the same
|
|
voice and pitch to be combined into a single, long, tone. This is very
|
|
useful when creating a sustained voice track. For example, consider
|
|
the following which might be used in real groove file:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Begin Bass-Sus
|
|
<BR>
|
|
Sequence 1 1 1 90 &sstarf#star; 4
|
|
<BR>
|
|
Articulate 100
|
|
<BR>
|
|
Unify On
|
|
<BR>
|
|
Voice TremoloStrings
|
|
<BR>
|
|
End </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
Without the U<SMALL>NIFY </SMALL>O<SMALL>N</SMALL> command the strings would be sounded (or
|
|
hit) four times during each bar; with it enabled the four hits are
|
|
combined into one long tone. This tone can span several bars if the
|
|
note(s) remain the same.
|
|
|
|
<P>
|
|
The use of this command depends on a number of items:
|
|
|
|
<P>
|
|
|
|
<UL>
|
|
<LI>The V<SMALL>OICE</SMALL> being used. It makes sense to use enable the
|
|
setting if using a sustained tone like “Strings"; it probably
|
|
doesn't make sense if using a tone like “Piano1”.
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>For tones to be combined you will need to have A<SMALL>RTICULATE</SMALL>
|
|
set to a value of 100. Otherwise the on/off events will have small
|
|
gaps in them which will cancel the effects of U<SMALL>NIFY</SMALL>.
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>Ensure that R<SMALL>TIME</SMALL> is not set for U<SMALL>NIFY</SMALL> tracks
|
|
since the start times may cause gaps.
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>If your pattern or sequence has different volumes in different
|
|
beats (or bars) the effect of a U<SMALL>NIFY</SMALL> will be to ignore
|
|
volumes other than the first. Only the first N<SMALL>OTE </SMALL>O<SMALL>N</SMALL> and the
|
|
last N<SMALL>OTE </SMALL>O<SMALL>FF</SMALL> events will appear in the MIDI file.
|
|
|
|
<P>
|
|
</LI>
|
|
</UL>
|
|
|
|
<P>
|
|
You can specify a different U<SMALL>NIFY</SMALL> for each bar in a sequence.
|
|
Repeated values can be represented with a “/”:
|
|
|
|
<P>
|
|
|
|
<Table Hspace="40%" CellSpacing=0 CellPadding=10 BGColor="OldLace" Border=3>
|
|
<tr><td>
|
|
<B>Chord Unify On / / Off </B>
|
|
|
|
</td></tr>
|
|
</Table>
|
|
|
|
<P>
|
|
But, you probably don't want to use this particular feature.
|
|
|
|
<P>
|
|
Valid arguments are “On” or “1” to enable; “Off” or “0” to
|
|
disable.
|
|
<BR><HR><H4>Footnotes</H4>
|
|
<DL>
|
|
<DT><A NAME="foot12981">... event.</A><A
|
|
HREF="node24.html#tex2html91"><SUP><SPAN CLASS="arabic">24</SPAN>.<SPAN CLASS="arabic">1</SPAN></SUP></A></DT>
|
|
<DD>For
|
|
the most part, MIDI Key Signature events are ignored by playback
|
|
programs. However, they <SPAN CLASS="textit">may</SPAN> be used in other MIDI programs
|
|
which handle notation.
|
|
|
|
</DD>
|
|
<DT><A NAME="foot12904">...
|
|
command.</A><A
|
|
HREF="node24.html#tex2html92"><SUP><SPAN CLASS="arabic">24</SPAN>.<SPAN CLASS="arabic">2</SPAN></SUP></A></DT>
|
|
<DD>A warning message will also be displayed.
|
|
|
|
</DD>
|
|
<DT><A NAME="foot12914">... chord,</A><A
|
|
HREF="node24.html#tex2html93"><SUP><SPAN CLASS="arabic">24</SPAN>.<SPAN CLASS="arabic">3</SPAN></SUP></A></DT>
|
|
<DD>In this case we define
|
|
“chord” as two or more notes played at the same time.
|
|
|
|
</DD>
|
|
<DT><A NAME="foot12983">... time.</A><A
|
|
HREF="node24.html#tex2html94"><SUP><SPAN CLASS="arabic">24</SPAN>.<SPAN CLASS="arabic">4</SPAN></SUP></A></DT>
|
|
<DD>An exception to this are
|
|
notes generated if R<SMALL>TIME</SMALL> <A HREF="node13.html#rtime">13.3</A> is set.
|
|
|
|
</DD>
|
|
<DT><A NAME="foot12953">...
|
|
track.</A><A
|
|
HREF="node24.html#tex2html95"><SUP><SPAN CLASS="arabic">24</SPAN>.<SPAN CLASS="arabic">5</SPAN></SUP></A></DT>
|
|
<DD>Timidity truncates the start of tracks up to the first
|
|
MIDI event when splitting out single tracks.
|
|
|
|
</DD>
|
|
<DT><A NAME="foot12955">... point.</A><A
|
|
HREF="node24.html#tex2html96"><SUP><SPAN CLASS="arabic">24</SPAN>.<SPAN CLASS="arabic">6</SPAN></SUP></A></DT>
|
|
<DD>Seq24 does strange looping if all tracks
|
|
don't end identically.
|
|
|
|
</DD>
|
|
</DL>
|
|
<DIV CLASS="navigation"><HR>
|
|
<!--Navigation Panel-->
|
|
<A NAME="tex2html794"
|
|
HREF="node25.html">
|
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
|
<A NAME="tex2html792"
|
|
HREF="mma.html">
|
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
|
<A NAME="tex2html786"
|
|
HREF="node23.html">
|
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
|
<BR>
|
|
<B> Next:</B> <A NAME="tex2html795"
|
|
HREF="node25.html">Begin/End Blocks</A>
|
|
<B> Up:</B> <A NAME="tex2html793"
|
|
HREF="mma.html">Reference Manual</A>
|
|
<B> Previous:</B> <A NAME="tex2html787"
|
|
HREF="node23.html">Fine Tuning (Translations)</A></DIV>
|
|
<!--End of Navigation Panel-->
|
|
<ADDRESS>
|
|
bob
|
|
2010-11-07
|
|
</ADDRESS>
|
|
</BODY>
|
|
</HTML>
|