home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
No Fragments Archive 10: Diskmags
/
nf_archive_10.iso
/
MAGS
/
ST_USER
/
1989
/
USER1289.MSA
/
STACATTO.FLD_DOC_COMPOSE.DOC
< prev
next >
Wrap
Text File
|
1989-09-28
|
13KB
|
272 lines
====== STaccato ======
Program by Leo de Wit, July '87, translated into English for the net 880903
PART 2: Music format information
COMPOSE TUNES YOURSELF:
----------------------
This part of the Staccato documentation handles the self composing of
tunes to be played by STaccato. This is by far the hardest, but if you
have any musical background it should be possible without too much effort.
STaccato accepts filenames of songs to be played as arguments to
the program. It also needs GEM because of the graphics. Unfortunately,
it is not possible to install a GEM appilcation as accepting parameters
(installing as TTP leads to a crash). What you *COULD* do is indicate
for STACCATO.PRG that the document type is MUS (in INSTALL APPLICATION).
If you always use .MUS as file extension for the music files, you can
(if STACCATO.PRG is in the same directory) by clicking the .MUS file
start the tune automatically (the Desktop will start STACCATO.PRG with
the music file as its argument string). I myself use a shell so that
a GEM application CAN be started with parameters. This is somewhat more
handy for testing new pieces (the start tune is skipped, you don't need
to answer the standard questions of the program and select the directory).
You can switch from the editor to the music player in notime (I have it
all either on RAM- or hard disk).
Then follows here the layout of a .MUS file, the text file that
contains the music instructions.
Each musical line (and you can decide for yourself how many bars it
has got) consists in the textfile of a group of 1 to 4 lines.
This is a group of contiguous lines in the file that do not start with
a dollar sign ($); lines starting with a dollar have a special meaning.
The first of these lines contains global indications, like the volume,
the key and the tempo; the next three contain indications for the three
respective channels of the sound generator. An indication is either a
note itself, i.e. pitch and duration, or something about the sound or
the volume etc. (the 'how').
A note itself is constructed like this:
a) (optionally) a length (like 1: whole-note or semibreve, 2: half-note
or minim, 4: quarter-note or crotchet, 8: eight-note or quaver, 16:
sixteenth-note or semiquaver, 3: third-note or triplet). A missing
length indication defaults to the previous used value. The length
indication can be followed by a dot, which increases its length with
half its value (and this may be repeated).
b) a pitch (C,D,E,F,G,A,B,c,d,e,f,g,a,b), for which the inflections
apply that are implied by the scale chosen, for instance if we choose
the scale of D major (two raisings: Fis and Cis) then each F gets a
sharp: Fis, and each C also (Cis).
c) (optionally) inflections (# for sharp, & for flat, ## and && for
respectively double sharp and double flat, = for natural sign). Beware:
all inflections have a temporary character; an inflection in one voice
does not imply one in another. So there's a difference in this respect
with classical music notation. For long lasting inflections: use a
different scale.
d) (optionally) an indication for the style to be used: . for staccato,
" for legato. A staccato playing style means that the second half of the
note is replaced by a rest of equal length, legato style implies that
there is no rest between notes. The default playing style is portato,
which disjoins notes just slightly. The three playing styles can be
installed as default style by the 'L' option (see below).
e) (optionally) selection of a higher or lower octave: each ' denotes
an octave higher, each _ an octave lower. Like the options c) and d)
this selection is only temporarely. For a long lasting octave change:
use the O option (see below). The default octaves used per voice are:
channel A: C is the middle C of the piano, channel B: an octave below A,
channel C: an octave below B. This default appears to satisfy very well
in practice.
f) (optionally) volume change (to emphasize a note): > for one degree
louder, < for one degree softer. This is a temporary change of the volume.
The options c), d), e) and f) are interchangeable.
The options c), e) and f) are also cumulative, e.g. a&'>> means
an As an octave higher and two degrees louder.
Indications about the way how:
These are mostly commands that consist of a capital (for the type of
command), optional parameters terminated by a ; .
The only exceptions are the commands {, }, [ and ] that mean respectively:
start / stop noise for this channel and start / stop wave for this channel
(for wave: see the W option below).
Here are the capital letter commands:
M: the macro command. This is, as an exception, terminated by a | .
The first character behind M is the macro's number (up to 8 macros can be
defined; an existing macro can be redefined). A @ followed by the macro's
number gets substituted by the text of the macro. Macros are neat for
small, often returning patterns (trills, motifs).
V: the volume command; this indicates the loudness of the tone by means
of either:
a) a number from 0 to 15 (quiet - very loud).
b) an indication of the form ppp - pp - p - mp - mf - f - ff - fff
(respectively very soft to very loud).
c) a + or a - (respectively a degree lower or higher in loudness).
The volume command can be used both globally and per channel.
L: the legato command; this indicates the playing style: L.; staccato,
L; portato and L"; legato.
The legato command can be used both globally and per channel.
O: the octave command; this indicates the octave a voice is played in
(Note: by using both upper- and lowercase letters for the notes' names
we do not have to use the O-command too often. O is followed by a digit
0-8 (very low - very high) or by a + or a - (repectively an octae higher
or lower).
The octave command can be used both globally and per channel.
T: the tempo command; this indicates the tempo as crotchets per minute,
either as a number, e.g. T120; or as a musical term, e.g. Tallegro; .
The allowed tempi are (with corresponding number of crotchets): Largo (50),
Larghetto (63), Adagio (71), Andante (92), Moderato (114), Allegro (144),
Presto (184), Prestissimo (204). The indication by number is more handy
because the tempo can be specified more accurately.
The tempo command can only be used globally.
Q: the vibrato command; this has two numbers separated by a comma as
parameters: Qk,l; . The first number represents the vibrato depth (how
much deviates the frequency at most from the basic frequency), the second
the vibrato frequency (number of frequency changes per second). A light
vibrato enlivens the somewhat dull sound of the sound chip; I myself
like a Q1,5; for the upper voice and no vibrato for the other two.
The vibrato command is a per channel command; if it is used globally
it is used for the wave frequency, not for an overall vibrato.
S: the scale command; this indicates the default inflections; use for
a minor scale the corresponding major (e.g. C if needing A minor).
The parameter is a capital A-G that indicates the keynote, followed by
zero or more inflections & or #. Example: a song is in g minor. The
corresponding major scale is Bes or B&, so the command becomes: SB&; .
The scale command can only be used globally.
W: the wave command; this one has a number from 0-15 as parameter and
indicates the type of waveform that is used as envelope for the tone.
For a more elaborate description of these wave types I refer to the
the techinal docs about the sound generator chip YM-2149 (or the
compatible but more propagated AY-3-8910), or descriptions about the
ST's hardware, e.g. Data Becker's book 'ATARI ST Intern'. It suffices
to say here that one can indicate per channel whether the volume is
constant or follows a curve; in the music text file we indicate the
use of the curve by a [ (start wave) and ] (stop wave). With indications
to the global channel we indicate the frequency of the curve (e.g. a'),
with the W command the form of the curve (triangle, sawtooth etc.).
I myself am not very impressed by the wave's possibilities; perhaps it
can be of good use for sound effects.
Finally the lines that start with a dollar sign; these give global
indications about the way in which tp play the tune. The type of indication
depends on the character following the dollar:
1) ! : this is a comment line. I use comment lines to indicate the
piece's title, who composed it and who arranged it; besides that I use empty
comment lines as separator between musical lines as follows:
$!
<indications for first line of global channel>
<indications for first line of channel A>
<indications for first line of channel B>
<indications for first line of channel C>
$!
<indications for second line of global channel>
<indications for second line of channel A>
<indications for second line of channel B>
<indications for second line of channel C>
$!
etc...
or to indicate that only two channels (A and B) are being used:
$!
<indications for first line of global channel>
<indications for first line of channel A>
<indications for first line of channel B>
$!
<indications for second line of global channel>
<indications for second line of channel A>
<indications for second line of channel B>
$!
etc...
As a further pecularity of the comment line should be mentioned, that the
first 3 lines of the file, if they are comment lines, are displayed on
the piano's title-page.
2) i : include a file here, e.g. $i intermez.mus (we will indicate
from here the file that is included and the file that includes an other
by means of the terms included and including file respectively). The
file intermez.mus (that by the way has to reside in the same folder as
the including file) is started at this point as if there was made a
different choice for a file to be played.
More than one files can be included and including files can be nested.
Beware that included files can change default settings (so you can end up
with a wrong scale coming back in the including file); unless you know
exactly what you're doing, you should use the including file only for
including and don't put music into it. Including is fine for pieces that
are built according to the sonata form or like a suite (look for example
in \mozart\nachtms\serenade.son or \bach\frans6\suite6.son). You are
advised to give these including files a new extension, for example .son
for sonata instead of the default .mus extension for music file. The use of
the .mus extension for music files is also recommended because of
a) clarity, b) possibility to automatically start a tune by installing
STACCATO.PRG as having document-type MUS (INSTALL APPLICATION), c) the
possibility for this file to be a party to the guessing (guessing only
selects .MUS files). The reason for include files getting a defferent
extension is just because of c): if we made them .MUS also, we would have
to guess also for them, but how can you differentiate between a tune and
a different tune that the first one is part of?!
3) the symbols |:, 1 and :| : indicate a repetition.
|: indicates the beginning, and :| the end. A possible number directly
following the :| indicates the number of repetitions (default is 2).
The 1 can be used to make a distinction between the last time and the one
before:
$|:
<Common part each time>
.
.
.
<End of common part>
$1
<This part not the last time>
.
.
.
<End of not the last time>
$:|
<This part only the last time>
4) t, the displaying of text; this is nice for songs to be sung along
with. The t is optionally followed by a number that indicates for which
repetition the text has to be displayed; is the number missing, the text
is always displayed. This is useful for multiple stanzas; the music only
has to be written once. Example:
$|: <begin stanza>
$t1 <text 1st line 1st stanza>
$t2 <text 1st line 2nd stanza>
$t3 <text 1st line 3rd stanza>
<indications global channel 1st line stanza>
<indications channel A 1st line stanza>
<indications channel B 1st line stanza>
<indications channel C 1st line stanza>
$! <marking of next musical sentence>
$t1 <text 2nd line 1st stanza>
etc...
.
.
.
$t1 <text last line 1st stanza>
$t2 <text last line 2nd stanza>
$t3 <text last line 3rd stanza>
<indications global channel last line stanza>
<indications channel A last line stanza>
<indications channel B last line stanza>
<indications channel C last line stanza>
$t <text 1st line refrain>
<indications global channel 1st line refrain>
<indications channel A 1st line refrain>
<indications channel B 1st line refrain>
<indications channel C 1st line refrain>
$! <marking of next musical sentence>
$t <text 2nd line refrain>
etc...
.
.
.
$t <text last line refrain>
<indications global channel last line refrain>
<indications channel A last line refrain>
<indications channel B last line refrain>
<indications channel C last line refrain>
$:|3 <three repetitions>
In the folder nedvolk you'll find examples of the t option.
By the way, to get some experience with the stuff, you could copy a
piece and, modifying it bit by bit, try out the various possibilities of
the sound interpreter.