mirror of
https://github.com/microtherion/VocalEasel.git
synced 2024-12-23 11:44:03 +00:00
1487 lines
39 KiB
HTML
1487 lines
39 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>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 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="node21.html">
|
|
<LINK REL="previous" HREF="node19.html">
|
|
<LINK REL="up" HREF="mma.html">
|
|
<LINK REL="next" HREF="node21.html">
|
|
</HEAD>
|
|
|
|
<BODY bgcolor="#ffffff">
|
|
<!--Navigation Panel-->
|
|
<A NAME="tex2html626"
|
|
HREF="node21.html">
|
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
|
<A NAME="tex2html624"
|
|
HREF="mma.html">
|
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
|
<A NAME="tex2html618"
|
|
HREF="node19.html">
|
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
|
<BR>
|
|
<B> Next:</B> <A NAME="tex2html627"
|
|
HREF="node21.html">Begin/End Blocks</A>
|
|
<B> Up:</B> <A NAME="tex2html625"
|
|
HREF="mma.html">Reference Manual</A>
|
|
<B> Previous:</B> <A NAME="tex2html619"
|
|
HREF="node19.html">Fine Tuning (Translations)</A>
|
|
<BR>
|
|
<BR>
|
|
<!--End of Navigation Panel-->
|
|
<!--Table of Child-Links-->
|
|
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
|
|
|
<UL>
|
|
<LI><A NAME="tex2html628"
|
|
HREF="node20.html#SECTION002010000000000000000">AllTracks</A>
|
|
<LI><A NAME="tex2html629"
|
|
HREF="node20.html#SECTION002020000000000000000">Articulate</A>
|
|
<LI><A NAME="tex2html630"
|
|
HREF="node20.html#SECTION002030000000000000000">Copy</A>
|
|
<LI><A NAME="tex2html631"
|
|
HREF="node20.html#SECTION002040000000000000000">Comment</A>
|
|
<LI><A NAME="tex2html632"
|
|
HREF="node20.html#SECTION002050000000000000000">Debug</A>
|
|
<LI><A NAME="tex2html633"
|
|
HREF="node20.html#SECTION002060000000000000000">Delete</A>
|
|
<LI><A NAME="tex2html634"
|
|
HREF="node20.html#SECTION002070000000000000000">Direction</A>
|
|
<LI><A NAME="tex2html635"
|
|
HREF="node20.html#SECTION002080000000000000000">Mallet</A>
|
|
<UL>
|
|
<LI><A NAME="tex2html636"
|
|
HREF="node20.html#SECTION002081000000000000000">Rate</A>
|
|
<LI><A NAME="tex2html637"
|
|
HREF="node20.html#SECTION002082000000000000000">Decay</A>
|
|
</UL>
|
|
<BR>
|
|
<LI><A NAME="tex2html638"
|
|
HREF="node20.html#SECTION002090000000000000000">Octave</A>
|
|
<LI><A NAME="tex2html639"
|
|
HREF="node20.html#SECTION0020100000000000000000">Off</A>
|
|
<LI><A NAME="tex2html640"
|
|
HREF="node20.html#SECTION0020110000000000000000">On</A>
|
|
<LI><A NAME="tex2html641"
|
|
HREF="node20.html#SECTION0020120000000000000000">Print</A>
|
|
<LI><A NAME="tex2html642"
|
|
HREF="node20.html#SECTION0020130000000000000000">PrintActive</A>
|
|
<LI><A NAME="tex2html643"
|
|
HREF="node20.html#SECTION0020140000000000000000">RndSeed</A>
|
|
<LI><A NAME="tex2html644"
|
|
HREF="node20.html#SECTION0020150000000000000000">RSkip</A>
|
|
<LI><A NAME="tex2html645"
|
|
HREF="node20.html#SECTION0020160000000000000000">RTime</A>
|
|
<LI><A NAME="tex2html646"
|
|
HREF="node20.html#SECTION0020170000000000000000">ScaleType</A>
|
|
<LI><A NAME="tex2html647"
|
|
HREF="node20.html#SECTION0020180000000000000000">Seq</A>
|
|
<LI><A NAME="tex2html648"
|
|
HREF="node20.html#SECTION0020190000000000000000">Strum</A>
|
|
<LI><A NAME="tex2html649"
|
|
HREF="node20.html#SECTION0020200000000000000000">Transpose</A>
|
|
<LI><A NAME="tex2html650"
|
|
HREF="node20.html#SECTION0020210000000000000000">Unify</A>
|
|
<LI><A NAME="tex2html651"
|
|
HREF="node20.html#SECTION0020220000000000000000">Voice</A>
|
|
</UL>
|
|
<!--End of Table of Child-Links-->
|
|
<HR>
|
|
|
|
<H1><A NAME="SECTION002000000000000000000"></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="SECTION002010000000000000000"></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 <I>no</I>
|
|
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 ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Bass SeqRnd Off
|
|
....
|
|
<BR>
|
|
Chord SeqRnd Off </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
But,
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>AllTracks SeqRnd Off </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
is much simpler. Similarly, you can set the articulation for all
|
|
tracks with:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>AllTracks Articulate 80 </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
You can even combine this with a B<SMALL>EGIN</SMALL>/E<SMALL>ND</SMALL> like:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Begin AllTracks
|
|
<BR> Articulate 80
|
|
<BR> SeqRnd Off
|
|
<BR> Rskip 0
|
|
<BR>
|
|
End </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
This command is handy when you are changing an existing G<SMALL>ROOVE</SMALL>.
|
|
|
|
<P>
|
|
Note that <I>only</I> currently defined tracks are effected by this command.
|
|
|
|
<P>
|
|
A further option is to limit A<SMALL>LL</SMALL>T<SMALL>RACKS</SMALL> to specific tracks
|
|
type. For example, you might want to set all the D<SMALL>RUM</SMALL> track
|
|
volumes to ``FF'':
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>AllTracks Drum Volume ff </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
Or to set the articulation on B<SMALL>ASS</SMALL> and W<SMALL>ALK</SMALL> tracks:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>AllTracks Bass Walk Articulate 55 </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
It is assumed that all the arguments following the initial command
|
|
which are valid track types (Bass, Chord, Arpeggio, Scale, Drum, Walk,
|
|
Melody, or Solo) are track type limiters.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION002020000000000000000"></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 ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Bass Define BB 1 4 1 100; 2 4 5 90; 3 4 1 80; 4 4 5 90 </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
bass notes on beats 1, 2, 3 and 4 are define. 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 articulate 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 articulate 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 ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Chord-1 Articulate 96 </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
Articulate 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 ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Chord Articulate 50 60 / 30 </B></BLOCKQUOTE>
|
|
|
|
</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>
|
|
|
|
<H1><A NAME="SECTION002030000000000000000"></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 ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Bass-1 Copy Bass </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
will copy the settings from the <I>Bass</I> track to the <I>Bass-1</I> 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="node11.html#compress">Compress</A>
|
|
</LI>
|
|
<LI><A HREF="#scale-direction">Direction</A>
|
|
</LI>
|
|
<LI><A HREF="node12.html#harmony">Harmony</A>
|
|
</LI>
|
|
<LI><A HREF="node11.html#chord-invert">Invert</A>
|
|
</LI>
|
|
<LI><A HREF="#octave">Octave</A>
|
|
</LI>
|
|
<LI><A HREF="#rskip">RSkip</A>
|
|
</LI>
|
|
<LI><A HREF="#rtime">RTime</A>
|
|
</LI>
|
|
<LI><A HREF="node15.html#rvolume">RVolume</A>
|
|
</LI>
|
|
<LI><A HREF="#scale-type">ScaleType</A>
|
|
</LI>
|
|
<LI><A HREF="#strum">Strum</A>
|
|
</LI>
|
|
<LI><A HREF="#set-voice">Voice</A> or
|
|
<A HREF="node4.html#drum-tone">Tone</A>
|
|
</LI>
|
|
<LI><A HREF="node15.html#volume">Volume</A>
|
|
|
|
<P>
|
|
</LI>
|
|
</UL>
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION002040000000000000000"></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 ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Begin Comment
|
|
<BR> This is a description spanning
|
|
<BR> several lines which will be
|
|
<BR> ignored by MMA.
|
|
<BR>
|
|
End </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
You could achieve the same with:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>// This is a description spanning
|
|
<BR> // several lines which will be
|
|
<BR> // ignored by MMA. </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
or even:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Comment This is a description spanning
|
|
<BR>
|
|
Comment several lines which will be
|
|
<BR>
|
|
Comment ignored by MMA. </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
One minor difference between <B>//</B> 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="SECTION002050000000000000000"></A> <A NAME="debug"></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 ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Debug Debug=On Expand=Off Patterns=On </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
Each section of the debug directive consists of a <I>mode</I>
|
|
and the command word ON or O<SMALL>FF</SMALL>. The two parts
|
|
must be joined by a single ``<I><IMG
|
|
WIDTH="19" HEIGHT="19" ALIGN="BOTTOM" BORDER="0"
|
|
SRC="img10.png"
|
|
ALT="$=$"></I>''. 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"><I>Mode</I></TD>
|
|
<TD ALIGN="LEFT" COLSPAN=2><I>Command Line Equivalent</I></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 filenames</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>
|
|
</TABLE>
|
|
</BLOCKQUOTE>
|
|
|
|
<P>
|
|
The modes and command are case-insensitive (although the command line switches are not).
|
|
|
|
<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="SECTION002060000000000000000"></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 ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Solo Delete </B></BLOCKQUOTE>
|
|
|
|
</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="SECTION002070000000000000000"></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 ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Scale Direction UP </B></BLOCKQUOTE>
|
|
|
|
</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 (<I>default</I>)</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.</TD>
|
|
</TR>
|
|
<TR><TD ALIGN="RIGHT">RANDOM</TD>
|
|
<TD ALIGN="LEFT">Ignored (uses UP).</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 ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Arpeggio Direction Up Down / Both </B></BLOCKQUOTE>
|
|
|
|
</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="SECTION002080000000000000000">
|
|
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 ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Solo-Marimba Mallet Rate=16 Decay=-5 </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
This command is also useful in creating drum rolls. For example:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><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></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
The following options are supported:
|
|
|
|
<P>
|
|
|
|
<H2><A NAME="SECTION002081000000000000000">
|
|
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 ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Solo-Marimba Mallet Rate=16 </B></BLOCKQUOTE>
|
|
|
|
</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="SECTION002082000000000000000">
|
|
Decay</A>
|
|
</H2>
|
|
|
|
<P>
|
|
You can adjust the volume (velocity) of the notes being repeated when
|
|
M<SMALL>ALLET</SMALL> is enabled:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Drum-Snare Mallet Decay=-15 </B></BLOCKQUOTE>
|
|
|
|
</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="SECTION002090000000000000000"></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 ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Bass-1 Octave 3 </B></BLOCKQUOTE>
|
|
|
|
</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 ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Chord Octave 4 5 / 4 </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION0020100000000000000000"></A> <A NAME="set-off"></A>
|
|
<BR>
|
|
Off
|
|
</H1>
|
|
|
|
<P>
|
|
To disable the generation of MIDI output on a specific track:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Bass Off </B></BLOCKQUOTE>
|
|
|
|
</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="SECTION0020110000000000000000"></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 ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Bass On </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION0020120000000000000000">
|
|
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 filename
|
|
of the input file while processing, you could insert:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Print Making beautiful music for MY SONG </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
No control characters are supported.
|
|
|
|
<P>
|
|
This can be useful in debugging input files.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION0020130000000000000000">
|
|
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="SECTION0020140000000000000000">
|
|
RndSeed</A>
|
|
</H1>
|
|
|
|
<P>
|
|
All of the random functions (R<SMALL>TIME</SMALL>, R<SMALL>SKIP</SMALL>, etc.) in
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> depend
|
|
on the <I>Python random</I> module. Each time
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> generates a track the values generated
|
|
by the random functions will be different. In most cases this is a ``good thing''; however,
|
|
you may want
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> to use the same sequence of random values<A NAME="tex2html66"
|
|
HREF="#foot10186"><SUP>20.1</SUP></A> each time it generates a track. Simple: just use:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>RndSeed 123.56 </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
at the top of your song file. You can use any value you want: it really doesn't
|
|
make any difference, but different values will generate different sequences.
|
|
|
|
<P>
|
|
You can also use this with no value, in which case Python uses its own value (see
|
|
the Python manual for details). Essentially, using no value undoes the effect which
|
|
permits the mixing of random and not-so-random sections in the same song.
|
|
|
|
<P>
|
|
One interesting use of R<SMALL>ND</SMALL>S<SMALL>EED</SMALL> could be to ensure that a repeated section
|
|
is identical: simply start the section with something like:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Repeat
|
|
<BR>
|
|
RndSeed 8
|
|
<BR> ... chords </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
It is highly recommended that you <I>do not</I> use this command in library files.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION0020150000000000000000"></A> <A NAME="rskip"></A>
|
|
<BR>
|
|
RSkip
|
|
</H1>
|
|
|
|
<P>
|
|
To aid in creating syncopated sounding patterns, you can use the
|
|
RS<SMALL>KIP</SMALL> directive to randomly silence or skip notes. The command
|
|
takes a value in the range 0 to 99. The ``0'' argument disables
|
|
skipping. For example:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Begin Drum
|
|
<BR> Define D1 1 0 90
|
|
<BR> Define D8 D1 * 8
|
|
<BR> Sequence D8
|
|
<BR> Tone OpenHiHat
|
|
<BR> RSkip 40
|
|
<BR>
|
|
End </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
In this case a drum pattern has been defined to hit short ``OpenHiHat''
|
|
notes 8 per bar. The RS<SMALL>KIP</SMALL> argument of ``40'' causes the
|
|
note to be NOT sounded (randomly) only 40% of the time.
|
|
|
|
<P>
|
|
Using a value of ``10'' will cause notes to be skipped 10% of the
|
|
time (they are played 90% of the time), ``90'' means to skip the
|
|
notes 90% of the time, etc.
|
|
|
|
<P>
|
|
You can specify a different RS<SMALL>KIP</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>Scale RSkip 40 90 / 40 </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
If you use the RS<SMALL>KIP</SMALL> in a chord track, the entire chord
|
|
<I>will not</I> be silenced. The option will be applied to the
|
|
individual notes of each chord. This may or may not be what you are
|
|
after. You cannot use this option to generate entire chords randomly.
|
|
For this effect you need to create several chord patterns and select
|
|
them with S<SMALL>EQ</SMALL>R<SMALL>ND</SMALL>.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION0020160000000000000000"></A> <A NAME="rtime"></A>
|
|
<BR>
|
|
RTime
|
|
</H1>
|
|
|
|
<P>
|
|
One of the biggest problem with computer generated drum and rhythm
|
|
tracks is that, unlike real musicians, the beats are precise and ``on
|
|
the beat''. The RT<SMALL>IME</SMALL> directive attempts to solve this.
|
|
|
|
<P>
|
|
The command can be applied to all tracks.
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Drum-4 Rtime 4 </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
The value passed to the RTime directive are the number of MIDI ticks
|
|
with which to vary the start time of the notes. For example, if you
|
|
specify ``5'' the start times will vary from -5 to +5 ticks) on each
|
|
note for the specified track. There are 192 MIDI ticks in each quarter
|
|
note.
|
|
|
|
<P>
|
|
Any value from 0 to 100 can be used; however values in the range 0 to
|
|
10 are most commonly used. Exercise caution in using large values!
|
|
|
|
<P>
|
|
You can specify a different RT<SMALL>IME</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 RTime 4 10 / 4 </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
R<SMALL>TIME</SMALL> is guaranteed never to start a note before the start of a bar.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION0020170000000000000000"></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="SECTION0020180000000000000000"></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 ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Seq </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
resets the <I>sequence counter</I> 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 ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Seq 8 </B></BLOCKQUOTE>
|
|
|
|
</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="tex2html67"
|
|
HREF="#foot10232"><SUP>20.2</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 ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><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></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
In this example the four bar ``ending groove'' has been used to create
|
|
an interesting introduction.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION0020190000000000000000"></A> <A NAME="strum"></A>
|
|
<BR>
|
|
Strum
|
|
</H1>
|
|
|
|
<P>
|
|
By default
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> plays all the notes in a chord at the same time. To
|
|
make the chord more like something a guitar or banjo might play, use
|
|
the S<SMALL>TRUM</SMALL> directive. For example:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Chord-1 Strum 5 </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
sets the strumming factor to 5 for track Chord-1.
|
|
|
|
<P>
|
|
Setting the S<SMALL>TRUM</SMALL> in any track other than a C<SMALL>HORD</SMALL> track
|
|
will generate a warning message and the command will be ignored.
|
|
|
|
<P>
|
|
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 0 to 100.
|
|
|
|
<P>
|
|
You can specify a different S<SMALL>TRUM</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 Strum 20 5 / 10 </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
Note: When chords 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''. That
|
|
is, unless the <A HREF="#scale-direction">D<SMALL>IRECTION</SMALL></A> has been set to ``DOWN'' in which case
|
|
the order would be reversed (but the notes would be the same).
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION0020200000000000000000">
|
|
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 ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Transpose 2 </B></BLOCKQUOTE>
|
|
|
|
</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 ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Transpose -2 </B></BLOCKQUOTE>
|
|
|
|
</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="SECTION0020210000000000000000">
|
|
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 ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Begin Bass-Sus
|
|
<BR>
|
|
Sequence 1 1 1 90 4
|
|
<BR>
|
|
Articulate 100
|
|
<BR>
|
|
Unify On
|
|
<BR>
|
|
Voice TremoloStrings
|
|
<BR>
|
|
End </B></BLOCKQUOTE>
|
|
|
|
</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 ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Chord Unify On / / Off </B></BLOCKQUOTE>
|
|
|
|
</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.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION0020220000000000000000"></A> <A NAME="set-voice"></A>
|
|
<BR>
|
|
Voice
|
|
</H1>
|
|
|
|
<P>
|
|
The MIDI instrument or voice used for a track is set with:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Chord-2 Voice Piano1 </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
Voices apply only to the specified track. The actual instrument can be
|
|
specified via the MIDI instrument number, or with the symbolic name.
|
|
See the tables in the MIDI <A HREF="node26.html#sec-voicenames">voicing section</A> for lists of the recognized
|
|
names.
|
|
|
|
<P>
|
|
You can create interesting effects by varying the voice used with drum
|
|
tracks. By default ``Voice 0'' is used. However, you can change the
|
|
drum voices. The supplied library files do not change the voices since this
|
|
appears to be highly dependent on the MIDI synth you are using.
|
|
|
|
<P>
|
|
You can specify a different V<SMALL>OICE</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 Voice Piano1 / / Piano2 </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
It is possible to set up translations for the selected voice: see
|
|
<A HREF="node19.html#set-voicetr">V<SMALL>OICE</SMALL>TR</A>.
|
|
|
|
<P>
|
|
<BR><HR><H4>Footnotes</H4>
|
|
<DL>
|
|
<DT><A NAME="foot10186">... values</A><A
|
|
HREF="node20.html#tex2html66"><SUP>20.1</SUP></A></DT>
|
|
<DD>Yes, this is
|
|
a contradiction of terms.
|
|
|
|
</DD>
|
|
<DT><A NAME="foot10232">...
|
|
command.</A><A
|
|
HREF="node20.html#tex2html67"><SUP>20.2</SUP></A></DT>
|
|
<DD>A warning message will also be displayed.
|
|
|
|
</DD>
|
|
</DL><HR>
|
|
<!--Navigation Panel-->
|
|
<A NAME="tex2html626"
|
|
HREF="node21.html">
|
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
|
<A NAME="tex2html624"
|
|
HREF="mma.html">
|
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
|
<A NAME="tex2html618"
|
|
HREF="node19.html">
|
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
|
<BR>
|
|
<B> Next:</B> <A NAME="tex2html627"
|
|
HREF="node21.html">Begin/End Blocks</A>
|
|
<B> Up:</B> <A NAME="tex2html625"
|
|
HREF="mma.html">Reference Manual</A>
|
|
<B> Previous:</B> <A NAME="tex2html619"
|
|
HREF="node19.html">Fine Tuning (Translations)</A>
|
|
<!--End of Navigation Panel-->
|
|
<ADDRESS>
|
|
Bob
|
|
2006-10-15
|
|
</ADDRESS>
|
|
</BODY>
|
|
</HTML>
|