mirror of
https://github.com/microtherion/VocalEasel.git
synced 2024-12-23 11:44:03 +00:00
766 lines
21 KiB
HTML
766 lines
21 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>Overview and Introduction</TITLE>
|
|
<META NAME="description" CONTENT="Overview and Introduction">
|
|
<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="node2.html">
|
|
<LINK REL="previous" HREF="mma.html">
|
|
<LINK REL="up" HREF="mma.html">
|
|
<LINK REL="next" HREF="node2.html">
|
|
</HEAD>
|
|
|
|
<BODY bgcolor="#ffffff">
|
|
<!--Navigation Panel-->
|
|
<A NAME="tex2html306"
|
|
HREF="node2.html">
|
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
|
<A NAME="tex2html304"
|
|
HREF="mma.html">
|
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
|
<A NAME="tex2html298"
|
|
HREF="mma.html">
|
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
|
<BR>
|
|
<B> Next:</B> <A NAME="tex2html307"
|
|
HREF="node2.html">Running</A>
|
|
<B> Up:</B> <A NAME="tex2html305"
|
|
HREF="mma.html">Reference Manual</A>
|
|
<B> Previous:</B> <A NAME="tex2html299"
|
|
HREF="mma.html">Reference Manual</A>
|
|
<BR>
|
|
<BR>
|
|
<!--End of Navigation Panel-->
|
|
<!--Table of Child-Links-->
|
|
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
|
|
|
<UL>
|
|
<LI><A NAME="tex2html308"
|
|
HREF="node1.html#SECTION00110000000000000000">License, Version and Legalities</A>
|
|
<LI><A NAME="tex2html309"
|
|
HREF="node1.html#SECTION00120000000000000000">About this Manual</A>
|
|
<UL>
|
|
<LI><A NAME="tex2html310"
|
|
HREF="node1.html#SECTION00121000000000000000">Typographic Conventions</A>
|
|
<LI><A NAME="tex2html311"
|
|
HREF="node1.html#SECTION00122000000000000000">L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X and HTML</A>
|
|
<LI><A NAME="tex2html312"
|
|
HREF="node1.html#SECTION00123000000000000000">Other Documentation</A>
|
|
<LI><A NAME="tex2html313"
|
|
HREF="node1.html#SECTION00124000000000000000">Music Notation</A>
|
|
</UL>
|
|
<BR>
|
|
<LI><A NAME="tex2html314"
|
|
HREF="node1.html#SECTION00130000000000000000">Installing
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> </A>
|
|
<LI><A NAME="tex2html315"
|
|
HREF="node1.html#SECTION00140000000000000000">Running
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> </A>
|
|
<LI><A NAME="tex2html316"
|
|
HREF="node1.html#SECTION00150000000000000000">Comments</A>
|
|
<LI><A NAME="tex2html317"
|
|
HREF="node1.html#SECTION00160000000000000000">Theory Of Operation</A>
|
|
<LI><A NAME="tex2html318"
|
|
HREF="node1.html#SECTION00170000000000000000">Case Sensitivity</A>
|
|
</UL>
|
|
<!--End of Table of Child-Links-->
|
|
<HR>
|
|
|
|
<H1><A NAME="SECTION00100000000000000000">
|
|
Overview and Introduction</A>
|
|
</H1>
|
|
|
|
<P>
|
|
<I>Musical MIDI Accompaniment</I>,
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> ,<A NAME="tex2html1"
|
|
HREF="#foot201"><SUP>1.1</SUP></A> generates standard
|
|
MIDI<A NAME="tex2html2"
|
|
HREF="#foot202"><SUP>1.2</SUP></A> files which can be used as a backup track for a soloist.
|
|
It was written especially for me--I am an aspiring saxophonist and
|
|
wanted a program to ``play'' the piano and drums so I could practice
|
|
my jazz solos. With
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> I can create a track based on the chords in
|
|
a song, transpose it to the correct key for my instrument, and play my
|
|
very bad improvisations until they get a bit better.
|
|
|
|
<P>
|
|
I also lead a small combo group which is always missing at least one
|
|
player. With
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> generated tracks the group can practice and perform even
|
|
if a rhythm player is missing. This all works much better than I
|
|
expected when I started to write the program ...so much better
|
|
that I have used
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> generated tracks for live performances with great
|
|
success.
|
|
|
|
<P>
|
|
Around the world musicians are using
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> for practice, performance
|
|
and in their studios. Much more than ever imagined when this project was started!
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION00110000000000000000">
|
|
License, Version and Legalities</A>
|
|
</H1>
|
|
|
|
<P>
|
|
The program
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> was written by and is copyright Robert van der Poel,
|
|
2002--2006.
|
|
|
|
<P>
|
|
This program, the accompanying documentation, and library files can be
|
|
freely distributed according to the terms of the GNU General Public
|
|
License (see the distributed file ``COPYING'').
|
|
|
|
<P>
|
|
If you enjoy the program, make enhancements, find bugs, etc. send a
|
|
note to me at
|
|
|
|
<A HREF="mailto:bob@mellowood.ca"> Bob van der Poel </A>; or a postcard (or even money) to PO Box 57,
|
|
Wynndel, BC, Canada V0B 2N0.
|
|
|
|
<P>
|
|
The current version of this package is maintained at: <TT><A NAME="tex2html3"
|
|
HREF="http://www.mellowood.ca/mma/">http://www.mellowood.ca/mma/</A></TT>.
|
|
|
|
<P>
|
|
This document reflects version 1.0-rc2
|
|
of
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> .
|
|
<DIV ALIGN="CENTER">
|
|
|
|
<TABLE CELLSPACING=0 WIDTH="80%" Align="Center" CELLPADDING=10 BGCOLOR="#dddddd" BORDER=3>
|
|
<TR> <TD>
|
|
<BR>
|
|
<BR> <B>Warning:</B> <I>This program
|
|
is currently in a <I>beta</I> state. The commands used in the
|
|
input files, the output, the overall logic and anything else you
|
|
can think of might change in the future.
|
|
</I></DIV>
|
|
<P>
|
|
<DIV ALIGN="CENTER"><I>
|
|
<BR>
|
|
<BR>
|
|
</I></DIV>
|
|
<P>
|
|
<DIV ALIGN="CENTER"><I>This manual most likely has lots of errors. Spelling, grammar, and
|
|
probably a number of the examples need fixing. Please give me a hand
|
|
and report anything...it'll make it much easier for me to
|
|
generate a really good product for all of us to enjoy.
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
</I></DIV>
|
|
<P>
|
|
<DIV ALIGN="CENTER"><I>
|
|
<BR>
|
|
<BR>
|
|
</I></DIV>
|
|
<P>
|
|
<DIV ALIGN="CENTER"></DIV>
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION00120000000000000000">
|
|
About this Manual</A>
|
|
</H1>
|
|
|
|
<P>
|
|
This manual was written by the program author--and this is always a
|
|
very bad idea. But, having no volunteers, the choice is no manual at
|
|
all or my bad perspectives.<A NAME="tex2html4"
|
|
HREF="#foot241"><SUP>1.3</SUP></A>
|
|
<P>
|
|
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> is a large and complex program. It really does need a manual;
|
|
and users really need to refer to the manual to get the most out of
|
|
the program. Even the author refers to the manual. Really.
|
|
|
|
<P>
|
|
I have tried to present the various commands in a logical and useful
|
|
order. The table of contents should point you quickly to the relevant
|
|
sections.
|
|
|
|
<P>
|
|
|
|
<H2><A NAME="SECTION00121000000000000000">
|
|
Typographic Conventions</A>
|
|
</H2>
|
|
|
|
<P>
|
|
|
|
<UL>
|
|
<LI>The name of the program is always set in the special logo type:
|
|
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> .
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> commands and directives are set in small caps:
|
|
D<SMALL>IRECTIVE</SMALL>.
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>Important stuff is emphasized: <B>important</B>.
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>Websites look like this: <TT><A NAME="tex2html5"
|
|
HREF="http://users.xplornet.com/~bvdp">http://users.xplornet.com/~bvdp</A></TT>
|
|
<P>
|
|
</LI>
|
|
<LI>Filenames are set in bold typewriter font: <TT><B>filename.mma</B></TT>
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>Lines extracted from a
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> input file are set on individual
|
|
lines:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>A command from a file </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>Commands you should type from a shell prompt (or other operating
|
|
system interface) have a leading <TT>$</TT> (to indicate a shell
|
|
prompt) and are shown on separate lines:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>$ enter this </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
</LI>
|
|
</UL>
|
|
|
|
<P>
|
|
|
|
<H2><A NAME="SECTION00122000000000000000">
|
|
L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X and HTML</A>
|
|
</H2>
|
|
|
|
<P>
|
|
The manual has been prepared with the L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X typesetting system.
|
|
Currently, there are two versions available: the primary version is a
|
|
PDF file intended for printing or on-screen display (generated with
|
|
<TT>dvipdf</TT>); the secondary version is in HTML (transformed with
|
|
L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X2<TT>HTML</TT>) for electronic viewing. If other formats are needed
|
|
...please offer to volunteer.
|
|
|
|
<P>
|
|
|
|
<H2><A NAME="SECTION00123000000000000000">
|
|
Other Documentation</A>
|
|
</H2>
|
|
|
|
<P>
|
|
In addition to this document the following other items are recommended
|
|
reading:
|
|
|
|
<P>
|
|
|
|
<UL>
|
|
<LI>The standard library documentation supplied with this document
|
|
in PDF and HTML formats.
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>The
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> tutorial supplied with this document in pdf and html
|
|
formats.
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>Various <TT><B>README</B></TT> files in the distribution.
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>The Python source files.
|
|
|
|
<P>
|
|
</LI>
|
|
</UL>
|
|
|
|
<P>
|
|
|
|
<H2><A NAME="SECTION00124000000000000000">
|
|
Music Notation</A>
|
|
</H2>
|
|
|
|
<P>
|
|
The various snippets of standard music notation in this manual have
|
|
been prepared with the MUP program. I highly recommend this program
|
|
and use it for most of my notation tasks. MUP is available from Arkkra
|
|
Enterprises, <TT><A NAME="tex2html6"
|
|
HREF="http://www.Arkkra.com/">http://www.Arkkra.com/</A></TT>.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION00130000000000000000">
|
|
Installing
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> </A>
|
|
</H1>
|
|
|
|
<P>
|
|
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> is a Python program developed with version 2.4 of Python. At the
|
|
very least you will need this version (or later) of Python!
|
|
|
|
<P>
|
|
To play the MIDI files you'll need a MIDI player. Pmidi, tse3play, and
|
|
many others are available for Linux systems. For Windows and Mac
|
|
systems I'm sure there are many, many choices.
|
|
|
|
<P>
|
|
You'll need a text editor like <B>vi</B>, <B>emacs</B>, etc. to create
|
|
input files. Don't use a word processor!
|
|
|
|
<P>
|
|
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> consists of a variety of bits and pieces:
|
|
|
|
<P>
|
|
|
|
<UL>
|
|
<LI>The executable Python script, <TT>mma</TT><A NAME="tex2html7"
|
|
HREF="#foot353"><SUP>1.4</SUP></A>, must somewhere in your
|
|
path. For users running Windows or Mac, please check
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> website
|
|
for details on how to install on these systems.
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>A number of Python modules. These should all be installed under
|
|
the directory <TT><B>/usr/local/share/mma/MMA</B></TT>. See the enclosed file
|
|
<TT><B>INSTALL</B></TT> for some additional commentary.
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>A number of library files defining standard rhythms. These
|
|
should all be installed under the directory
|
|
<TT><B>/usr/local/share/mma/lib/stdlib</B></TT>.
|
|
|
|
<P>
|
|
</LI>
|
|
</UL>
|
|
|
|
<P>
|
|
The script <TT><B>install</B></TT> will install
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> properly on most Linux
|
|
systems. It assumes that main script is to be installed in
|
|
<TT><B>/usr/local/bin</B></TT> and the support files in
|
|
<TT><B>/usr/local/share/mma</B></TT>. If you want an alternate location, you
|
|
can edit the paths in the script. The only supported alternate to use
|
|
is <TT><B>/usr/share/mma</B></TT>.
|
|
|
|
<P>
|
|
In addition, you <B>can</B> run
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> from the directory created by
|
|
the untar. This is not recommended, but will show some of
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> 's
|
|
stuff. In this case you'll have to execute the program file
|
|
<TT>mma.py</TT>.
|
|
|
|
<P>
|
|
You should be ``root'' (or at least, you need write permissions in
|
|
<TT>/usr/local/</TT>) to run the install script.
|
|
|
|
<P>
|
|
If you want to install
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> on a platform other than Linux, please get the
|
|
latest updates from our website at <TT><A NAME="tex2html8"
|
|
HREF="www.mellowood.ca/mma">www.mellowood.ca/mma</A></TT>.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION00140000000000000000">
|
|
Running
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> </A>
|
|
</H1>
|
|
|
|
<P>
|
|
For details on the command line operations in
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT>
|
|
<A HREF="node2.html#sec-running">see the "running" section</A>.
|
|
|
|
<P>
|
|
To create a MIDI file you need to:
|
|
|
|
<P>
|
|
|
|
<OL>
|
|
<LI>Create a text file (also referred to as the ``input file'') with
|
|
instructions which
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> understands. This includes the chord
|
|
structure of the song, the rhythm to use, the tempo, etc. The file
|
|
can be created with any suitable text editor.
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>Process the input file. From a command line the instruction:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>$ mma myfile <ENTER> </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
will invoke
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> and, assuming no errors are found, create a MIDI
|
|
file <TT><B>myfile.mid</B></TT>.
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>Play the MIDI file with any suitable MIDI player.
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>Edit the input file again and again until you get the perfect
|
|
track.
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>Share any patterns, sequences and grooves with the author so
|
|
they can be included in future releases!
|
|
</LI>
|
|
</OL>
|
|
|
|
<P>
|
|
An input file consists of the following information:
|
|
|
|
<P>
|
|
|
|
<OL>
|
|
<LI>
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> directives. These include T<SMALL>EMPO</SMALL>, T<SMALL>IME</SMALL>,
|
|
V<SMALL>OLUME</SMALL>, etc. <A HREF="node20.html#sec-directives">Directives</A>.
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>P<SMALL>ATTERN</SMALL>, S<SMALL>EQUENCE</SMALL> and G<SMALL>ROOVE</SMALL> detailed in
|
|
<A HREF="node4.html#sec-pats">Patterns</A>,
|
|
<A HREF="node5.html#sec-seqs">Sequences</A>, and
|
|
<A HREF="node6.html#sec-grooves">Grooves</A>.
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>Music information. See <A HREF="node8.html#sec-music">Musical
|
|
Data</A>.
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>Comment lines and blank lines. See below.
|
|
|
|
<P>
|
|
</LI>
|
|
</OL>
|
|
|
|
<P>
|
|
Items 1 to 3 are detailed later in this manual. Please read them
|
|
before you get too involved in this program.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION00150000000000000000">
|
|
Comments</A>
|
|
</H1>
|
|
|
|
<P>
|
|
Proper indentation, white space and comments are a
|
|
<B>good thing</B>--and you really should use them. But, in most cases
|
|
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> really doesn't care:
|
|
|
|
<P>
|
|
|
|
<UL>
|
|
<LI>Any leading space or tab characters are ignored,
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>Multiple tabs and other white space are treated as single
|
|
characters,
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>Any blank lines in the input file are ignored.
|
|
|
|
<P>
|
|
</LI>
|
|
</UL>
|
|
|
|
<P>
|
|
Each line is initially parsed for comments. A comment is anything
|
|
following a ``//'' (2 forward slashes).<A NAME="tex2html9"
|
|
HREF="#foot321"><SUP>1.5</SUP></A>
|
|
<P>
|
|
Comments are stripped from the input stream. Lines starting with the
|
|
C<SMALL>OMMENT</SMALL> directive are also ignored. See the
|
|
<A HREF="node20.html#comment">comment discussion</A> for details.
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION00160000000000000000">
|
|
Theory Of Operation</A>
|
|
</H1>
|
|
|
|
<P>
|
|
To understand how
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> works it's easiest to look at the initial
|
|
development concept. Initially, a program was wanted which would take
|
|
a file which looked something like:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Tempo 120
|
|
<BR>
|
|
Fm
|
|
<BR>
|
|
C7
|
|
<BR> ...</B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
and end up with a MIDI file which played the specified chords over a
|
|
drum track.
|
|
|
|
<P>
|
|
Of course, after starting this ``simple'' project a lot of
|
|
complexities developed.
|
|
|
|
<P>
|
|
First, the chord/bar specifications. Just having a single chord per
|
|
bar doesn't work--many songs have more than one chord per bar.
|
|
Second, what is the rhythm of the chords? What about bass line? Oh,
|
|
and where is the drummer?
|
|
|
|
<P>
|
|
Well, things got more complex after that. At a bare minimum, the
|
|
program or interface should have the ability to:
|
|
|
|
<P>
|
|
|
|
<UL>
|
|
<LI>Specify multiple chords per bar,
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>Define different patterns for chords, bass lines and
|
|
drum tracks,
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>Have easy to create and debug input files,
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>Provide a reusable library that a user could simply plug in, or
|
|
modify.
|
|
|
|
<P>
|
|
</LI>
|
|
</UL>
|
|
|
|
<P>
|
|
From these simple needs
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> was created.
|
|
|
|
<P>
|
|
The basic building blocks of
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> are P<SMALL>ATTERN</SMALL>s. A pattern is a
|
|
specification which tells
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> what notes of a chord to play, the
|
|
start point in a bar for the chord/notes, and the duration and the
|
|
volume of the notes.
|
|
|
|
<P>
|
|
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> patterns are combined into S<SMALL>EQUENCE</SMALL>s. This lets you
|
|
create multi-bar rhythms.
|
|
|
|
<P>
|
|
A collection of patterns can be saved and recalled as G<SMALL>ROOVE</SMALL>s.
|
|
This makes it easy to pre-define complex rhythms in library files and
|
|
incorporate them into your song with a simple two word command.
|
|
|
|
<P>
|
|
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> is bar or measure based (we use the words interchangeably in
|
|
this document). This means that
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> processes your song one bar at a
|
|
time. The music specification lines all assume that you are specifying
|
|
a single bar of music. The number of beats per bar can be adjusted;
|
|
however, all chord changes must fall on a beat division (the playing
|
|
of the chord or drum note can occur anywhere in the bar).
|
|
|
|
<P>
|
|
To make the input files look more musical,
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> supports
|
|
R<SMALL>EPEAT</SMALL>s and R<SMALL>EPEAT</SMALL>E<SMALL>NDING</SMALL>s. However, complexities like
|
|
<B>D.S.</B> and <B>Coda</B> are not internally supported (but can be
|
|
created by using the G<SMALL>OTO</SMALL> command).
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION00170000000000000000">
|
|
Case Sensitivity</A>
|
|
</H1>
|
|
|
|
<P>
|
|
Just about everything in a
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> file is case insensitive.
|
|
|
|
<P>
|
|
This means that the command:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Tempo 120 </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
could be entered in your file as:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>TEMPO 120 </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
or even
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>TeMpO 120 </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
for the exact same results.
|
|
|
|
<P>
|
|
Names for patterns, and grooves are also case insensitive.
|
|
|
|
<P>
|
|
The only exceptions are the names for chords, notes in S<SMALL>OLO</SMALL>s,
|
|
and filenames. In keeping with standard chord notation, chord names
|
|
are in mixed case; this is detailed in <A HREF="node8.html#sec-music">Musical
|
|
Data</A>. Filenames are covered in
|
|
<A HREF="node23.html#sec-paths">Paths and Filenames</A>.
|
|
|
|
<P>
|
|
<BR><HR><H4>Footnotes</H4>
|
|
<DL>
|
|
<DT><A NAME="foot201">...,</A><A
|
|
HREF="node1.html#tex2html1"><SUP>1.1</SUP></A></DT>
|
|
<DD>Musical MIDI
|
|
Accompaniment and the short form
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> in the distinctive script are
|
|
names for a program written by Bob van der Poel. The ``MIDI
|
|
Manufacturers Association, Inc.'' uses the acronym MMA, but there is
|
|
no association between the two.
|
|
|
|
</DD>
|
|
<DT><A NAME="foot202">...
|
|
MIDI</A><A
|
|
HREF="node1.html#tex2html2"><SUP>1.2</SUP></A></DT>
|
|
<DD>MIDI is an acronym for Musical Instrument Digital
|
|
Interface.
|
|
|
|
</DD>
|
|
<DT><A NAME="foot241">... perspectives.</A><A
|
|
HREF="node1.html#tex2html4"><SUP>1.3</SUP></A></DT>
|
|
<DD>The problem, all humor aside, is
|
|
that the viewpoints of a program's author and user are quite
|
|
different. The two ``see'' problems and solutions differently, and for
|
|
a user manual the programmer's view is not the best.
|
|
|
|
</DD>
|
|
<DT><A NAME="foot353">...mma</A><A
|
|
HREF="node1.html#tex2html7"><SUP>1.4</SUP></A></DT>
|
|
<DD>In the
|
|
distribution this is <TT>mma.py</TT>. It is renamed to save a few
|
|
keystrokes when entering the command.
|
|
|
|
</DD>
|
|
<DT><A NAME="foot321">... slashes).</A><A
|
|
HREF="node1.html#tex2html9"><SUP>1.5</SUP></A></DT>
|
|
<DD>The first choice for
|
|
a comment character was a single ``#'', but that sign is used for
|
|
``sharps'' in chord notation.
|
|
|
|
</DD>
|
|
</DL><HR>
|
|
<!--Navigation Panel-->
|
|
<A NAME="tex2html306"
|
|
HREF="node2.html">
|
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
|
<A NAME="tex2html304"
|
|
HREF="mma.html">
|
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
|
<A NAME="tex2html298"
|
|
HREF="mma.html">
|
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
|
<BR>
|
|
<B> Next:</B> <A NAME="tex2html307"
|
|
HREF="node2.html">Running</A>
|
|
<B> Up:</B> <A NAME="tex2html305"
|
|
HREF="mma.html">Reference Manual</A>
|
|
<B> Previous:</B> <A NAME="tex2html299"
|
|
HREF="mma.html">Reference Manual</A>
|
|
<!--End of Navigation Panel-->
|
|
<ADDRESS>
|
|
Bob
|
|
2006-10-15
|
|
</ADDRESS>
|
|
</BODY>
|
|
</HTML>
|