


                         ======  STaccato  ======


                    a program by Leo de Wit  July 1987
                 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.

   Much success, but before all: much liSTening pleasure!



                         ======  STaccato  ======

