mirror of
https://github.com/microtherion/VocalEasel.git
synced 2024-12-23 11:44:03 +00:00
477 lines
12 KiB
HTML
477 lines
12 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>A Simple Example</TITLE>
|
|
<META NAME="description" CONTENT="A Simple Example">
|
|
<META NAME="keywords" CONTENT="mma-tutorial">
|
|
<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-tutorial.css">
|
|
|
|
<LINK REL="next" HREF="node4.html">
|
|
<LINK REL="previous" HREF="node2.html">
|
|
<LINK REL="up" HREF="mma-tutorial.html">
|
|
<LINK REL="next" HREF="node4.html">
|
|
</HEAD>
|
|
|
|
<BODY bgcolor="#ffffff">
|
|
<!--Navigation Panel-->
|
|
<A NAME="tex2html64"
|
|
HREF="node4.html">
|
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
|
<A NAME="tex2html62"
|
|
HREF="mma-tutorial.html">
|
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
|
<A NAME="tex2html56"
|
|
HREF="node2.html">
|
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
|
<BR>
|
|
<B> Next:</B> <A NAME="tex2html65"
|
|
HREF="node4.html">A More Complex Example</A>
|
|
<B> Up:</B> <A NAME="tex2html63"
|
|
HREF="mma-tutorial.html">Tutorial</A>
|
|
<B> Previous:</B> <A NAME="tex2html57"
|
|
HREF="node2.html">Installation</A>
|
|
<BR>
|
|
<BR>
|
|
<!--End of Navigation Panel-->
|
|
<!--Table of Child-Links-->
|
|
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
|
|
|
<UL>
|
|
<LI><A NAME="tex2html66"
|
|
HREF="node3.html#SECTION00310000000000000000">Fella Bird, Basic Edition</A>
|
|
<LI><A NAME="tex2html67"
|
|
HREF="node3.html#SECTION00320000000000000000">Fella Bird, Improved Edition</A>
|
|
</UL>
|
|
<!--End of Table of Child-Links-->
|
|
<HR>
|
|
|
|
<H1><A NAME="SECTION00300000000000000000">
|
|
A Simple Example</A>
|
|
</H1>
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION00310000000000000000">
|
|
Fella Bird, Basic Edition</A>
|
|
</H1>
|
|
|
|
<P>
|
|
|
|
<BR>
|
|
<TABLE CELLSPACING=0 Align="Center" CELLPADDING=10 BGCOLOR="#efefef" BORDER=3>
|
|
<TR> <TD ALIGN="CENTER" BGCOLOR="White">
|
|
<B><FONT SIZE="+2">Sheet Music for a Popular Song</FONT></B> <A NAME="eg:birthday"></A>
|
|
</TR></TD> <TR><TD Align="Center">
|
|
|
|
<IMG WIDTH="95%" SRC="mup/fella.png" ALT="Lost Image">
|
|
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
|
|
<P>
|
|
This example piece of music is shown in a ``fake book'' or ``lead sheet''
|
|
style. It shows the melody notes, lyrics and chords.
|
|
|
|
<P>
|
|
As a first try at making a MIDI accompaniment file, we have created the
|
|
following file:
|
|
|
|
<P>
|
|
<B>// Sample tutorial file
|
|
<BR>// Fella Bird, try 1
|
|
<BR>
|
|
<BR>
|
|
Tempo 120
|
|
<BR>
|
|
Groove Rhumba
|
|
<BR>
|
|
<BR>
|
|
1 F
|
|
<BR>
|
|
2 F
|
|
<BR>
|
|
3 C7
|
|
<BR>
|
|
4 F
|
|
<BR>
|
|
5 F
|
|
<BR>
|
|
6 F
|
|
<BR>
|
|
7 C7
|
|
<BR>
|
|
8 F
|
|
<BR>
|
|
9 Gm
|
|
<BR>
|
|
10 F
|
|
<BR>
|
|
11 C7
|
|
<BR>
|
|
12 F
|
|
<BR>
|
|
13 Gm
|
|
<BR>
|
|
14 F
|
|
<BR>
|
|
15 C7
|
|
<BR>
|
|
16 F / / z!
|
|
<BR>
|
|
<BR></B>
|
|
|
|
<P>
|
|
After the comments in the file, the first line to note is:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Tempo 120 </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
This sets the tempo, or speed, of the piece to 120 beats per minute. You may
|
|
have to guess the tempo--very few pieces (especially in ``fake book'' style)
|
|
will include a metronome setting. For slow pieces you might want to start with a
|
|
tempo setting of ``80''; for faster pieces, like swings, try around ``150''; polkas
|
|
and marches, which are really in <B>2/2</B> time, may require fast
|
|
sounding tempos like ``250''. Feel free to modify the tempo setting in
|
|
the example files--you're not going to break anything.
|
|
|
|
<P>
|
|
Since we are using the standard library which was shipped with
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> ,
|
|
we can select one of the predefined grooves:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Groove Rhumba </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
Note that this command also sets up the ``time signature'' to <B>4/4</B>.
|
|
Not quite the same as the ``cut'' time indicated, but close enough. And speaking
|
|
of ``close enough'', we're using a rhumba rhythm instead of the merengue indicated
|
|
in the score.
|
|
|
|
<P>
|
|
Finally, we have the chord information. The first bar (in the sheet music)
|
|
indicates an ``F'' chord. So that's what we tell
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> to use:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>1 F </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
We continue in a similar manner for the rest of the song.
|
|
|
|
<P>
|
|
We've simplifed the song a bit and show only one chord per bar.
|
|
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> automatically fills out the bars so that each has four chords.
|
|
We could have entered the first bar as:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>2 F F F F </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
or, more simply:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>2 F / / / </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
and had the same result. But, who wants to do all that typing?
|
|
|
|
<P>
|
|
In the final bar, the last beat is a rest.
|
|
|
|
<P>
|
|
The line:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>16 F / / z! </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
causes an ``F'' chord to be used on the first three beats, the fourth
|
|
beat is completely silent due the to the ``z!''. Note the difference
|
|
between a ``z'' and ``z!''--the first silences all but the drum track,
|
|
the second silences everything. See the reference manual for more details
|
|
on ``z''.
|
|
|
|
<P>
|
|
Now, let's create our first MIDI file! If you are using the standard
|
|
distribution, you should find a file ``fella1.mma'' in the tutorial directory.
|
|
Change to this directory and type the command:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>mma fella1 </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
Your computer should run the python script called ``mma'' and process the
|
|
file ``fella1.mma''. The MIDI file ``fella1.mid'' should be created. If this doesn't
|
|
happen, please check your python installation, and make sure that you
|
|
have installed ``mma'' where your shell can find it. If you are completely stuck,
|
|
drop me an email.
|
|
|
|
<P>
|
|
Now, use your favorite MIDI file player to play the song.
|
|
|
|
<P>
|
|
How'd that sound? A piano doing some chords, a jazzy bass line,
|
|
and a bit of drumming? Wonderful!
|
|
|
|
<P>
|
|
|
|
<H1><A NAME="SECTION00320000000000000000">
|
|
Fella Bird, Improved Edition</A>
|
|
</H1>
|
|
|
|
<P>
|
|
If you play the MIDI created in the previous section you'll find a number
|
|
of things lacking. Certainly:
|
|
|
|
<P>
|
|
|
|
<UL>
|
|
<LI>It is hard to sing to because there is no aural indication of
|
|
when to start,
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>The whole piece is the same volume,
|
|
|
|
<P>
|
|
</LI>
|
|
<LI>It's a pretty short song, so let's play it twice.
|
|
|
|
<P>
|
|
</LI>
|
|
</UL>
|
|
|
|
<P>
|
|
The following example has a number of improvements:
|
|
|
|
<P>
|
|
<B> // Sample tutorial file
|
|
<BR>// Fella Bird, try 2
|
|
<BR>
|
|
<BR>
|
|
Tempo 120
|
|
<BR>
|
|
Groove Metronome2-4
|
|
<BR>
|
|
<BR>
|
|
z * 2
|
|
<BR>
|
|
<BR>
|
|
Groove Rhumba
|
|
<BR>
|
|
Repeat
|
|
<BR>
|
|
Volume mp
|
|
<BR>
|
|
Cresc mf 4
|
|
<BR>
|
|
<BR>
|
|
1 F
|
|
<BR>
|
|
2 F
|
|
<BR>
|
|
3 C7
|
|
<BR>
|
|
4 F
|
|
<BR>
|
|
5 F
|
|
<BR>
|
|
6 F
|
|
<BR>
|
|
7 C7
|
|
<BR>
|
|
8 F
|
|
<BR>
|
|
9 Gm
|
|
<BR>
|
|
10 F
|
|
<BR>
|
|
11 C7
|
|
<BR>
|
|
<BR>
|
|
Decresc p 4
|
|
<BR>
|
|
<BR>
|
|
12 F
|
|
<BR>
|
|
13 Gm
|
|
<BR>
|
|
14 F
|
|
<BR>
|
|
15 C7
|
|
<BR>
|
|
<BR>
|
|
RepeatEnding
|
|
<BR>
|
|
<BR>
|
|
16 F / / z
|
|
<BR>
|
|
<BR>
|
|
RepeatEnd
|
|
<BR>
|
|
<BR>
|
|
17 F / / z!
|
|
<BR>
|
|
cut -1
|
|
<BR>
|
|
<BR>
|
|
<BR></B>
|
|
Try running
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> on this file and listen to it. Oh my, much better.
|
|
|
|
<P>
|
|
So, let's look at the changes.
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B>Groove Metronome2-4 </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
This sets the current ``groove'' to a metronome. To find this groove
|
|
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> will automatically process the library file ``metronome''.
|
|
|
|
<P>
|
|
The metronome groove consists of wood-blocks being struck in a
|
|
<B>4/4</B> pattern. In order to ``sound'' the metronome, we need
|
|
to create an empty bar:
|
|
|
|
<P>
|
|
|
|
<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=5 BGCOLOR="OldLace" BORDER=3>
|
|
<TR> <TD>
|
|
|
|
<BLOCKQUOTE><B> z * 2 </B></BLOCKQUOTE>
|
|
|
|
</TD></TR></TABLE>
|
|
|
|
<P>
|
|
Mind you, we could have specified a chord here and gotten the same
|
|
result (the groove has no definitions for any instruments other than
|
|
the wood-block, so nothing else will sound). But, it seems to be more
|
|
clear to use a ``z''.
|
|
|
|
<P>
|
|
Okay, we lied. We didn't create an empty bar for the metronome. If
|
|
you're sharp you'll notice that the ``z'' is followed by ``* 2''. This
|
|
means to play this bar two times. So, you get 2 bars of metronome.
|
|
Cool.
|
|
|
|
<P>
|
|
We've not made any changes to the chords, but a few little changes do
|
|
help this simple piece. Remember the dull, single volume? Well, have a
|
|
look at the ``volume'' directives we've included in this version. We
|
|
start the song off at a moderate volume, and increase it in several
|
|
steps. And, at the end we use a ``decresc'' to reduce the volume to
|
|
``quiet'' over the final 4 bars.
|
|
|
|
<P>
|
|
Please refer to the
|
|
<FONT Face="Serif" Color="Navy"><I>MMA</I></FONT> Reference Manual for salient details on the
|
|
volume commands.
|
|
|
|
<P>
|
|
One minor change we did make in the chords is in bar 16. Note the
|
|
change between this and bar 17. In the first we have a ``z'', the
|
|
second a ``z!''. The difference between the two is that we want the
|
|
precussion tracks to continue though the ending, but not on the final
|
|
beat.
|
|
|
|
<P>
|
|
Finally, to ensure a complete cutoff in the final bar we have added a
|
|
``cut'' command. We're sure you'll find these minor changes a great
|
|
improvement.
|
|
|
|
<P>
|
|
|
|
<P>
|
|
<HR>
|
|
<!--Navigation Panel-->
|
|
<A NAME="tex2html64"
|
|
HREF="node4.html">
|
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
|
<A NAME="tex2html62"
|
|
HREF="mma-tutorial.html">
|
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
|
<A NAME="tex2html56"
|
|
HREF="node2.html">
|
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
|
<BR>
|
|
<B> Next:</B> <A NAME="tex2html65"
|
|
HREF="node4.html">A More Complex Example</A>
|
|
<B> Up:</B> <A NAME="tex2html63"
|
|
HREF="mma-tutorial.html">Tutorial</A>
|
|
<B> Previous:</B> <A NAME="tex2html57"
|
|
HREF="node2.html">Installation</A>
|
|
<!--End of Navigation Panel-->
|
|
<ADDRESS>
|
|
Bob
|
|
2006-10-15
|
|
</ADDRESS>
|
|
</BODY>
|
|
</HTML>
|