SOUNDTRACKER INSTRUCTIONS
-------------------------
(covers all modifications in V6.0)

Modifications : Modulation.
-------------   Enhanced portamento.
                Volume changing during play.
                Volume sliding up/down during play.
                Standard USA keymap.
                Playroutine for use in demos etc.

Modifications in V6.0 :
------------------------
                FEATURES :

              -  SPEED CHANGING during play !
              -  EQUALIZER !
              -  NEW playroutine !
              -  NEW Mouse pointer
              -  NEW 3D cursor
              -  VOICE-CONTROL!  (press 1-4 on the right numeral pad)

Patterns.
---------

Any piece of music written with SoundTracker VI is build up from patterns.
SoundTracker holds a table with information about the sequence in which
these parts must be played. With 'Position' you determine your position
in the table. With 'Pattern' you define what pattern to play at that
position. 'Length' defines the total size of the table.


The Keys.
---------

The original (V1.21) version of the SoundTracker had a German keymap.
Version VI supports a standard USA keymap (oder auch nicht) and this
ensures compatibility with nearly all Amigas.
The keys on your Amiga have been grouped to represent the layout of a
two-octave piano-keyboard. You can "shift" the keyboard one octave up or
down with the aid of the F1 and F2 keys, thus incrementing the range of
the keyboard to three octaves.

While editing: Cursor-keys move cursor.
-------------  F6  - Set cursor to first line of pattern.
               F7  - Set cursor to 16th line of pattern.
               F8  - Set cursor to 32th line of pattern.
               F9  - Set cursor to 48th line of pattern.
               F10 - Set cursor to last line of pattern.
               DEL - Delete note under cursor.
       shift + F3  - Cut selected voice of actual pattern.
       shift + F4  - Copy selected voice of actual pattern into copy-puffer.
       shift + F5  - Copy copy-puffer to selected voice of actual pattern.

      
Instruments.
------------

You can use up to fifteen different instruments in one music-piece.
Before you can use a sample as an instrument, some values must be defined.
You can do this by either using a preset, or by setting these values your-
self.

Length : This is simply the length of the used sample in bytes.

Volume : This is the default volume of that instrument.

Replen : When replen is set to 2, each instrument will be played once.
    When replen is set to any other value, the instrument will be
    repeated until an other note is played.

Repeat : SoundTracker can also be programmed to repeat just a part of a
    sample constantly. This is usefull when playing waveforms. Whenever
    Repeat is set to a non-zero value, SoundTracker will just play a
    part of that particular sample. In this case Repeat defines the
    offset and Replen the length of the part that must be repeated. 

Notes.
------
  
               C#1   3 C 2 3
               /    /  |  \|
              /    /   |   Arpeggio, portamento, volume and speed info.
             /    /  Command
            /   Inst#
         Note to
         be played.



Note    : This is simply the note that must be played by that particular
----      instrument.

Inst#   : This is the number of the instrument that must be used to play
-----     the note. When the instrument number is zero, the last selected
     instrument will be used.

Command : This number tells SoundTracker what special functions must be
-------   preformed while playing the note.

These functions are as follows :

     0 - Normal play or arpeggio.
     1 - Portamento up.
     2 - Portamento down.
     3 - Modulate volume of next higher voice. (possibly with arpeggio)
     4 - Modulate period of next higher voice.          ''
     5 - Modulate period + volume of next higher voice.  ''
     6 - Modulate volume of next higher voice and portamento up.   
     7 - Modulate period of next higher voice and portamento up
     8 - Modulate period + volume of next higher voice + portamento up.
     9 - Modulate volume of next higher voice and portamento down.
     A - Modulate period of next higher voice and portamento down.
     B - Modulate period + vol of next higher voice + portamento down.
     C - Set volume.
     D - Slide volume.
     E - Set auto-slide.
     F - Set speed !

Info    : This byte contains the additional information for the commands.
----     


Modulation : One voice can be programmed to modulate another. This means that
----------   either the volume, period or volume AND period are no longer
             static values that are set before starting to play a note, but
             that these are subject to change during play. It can be seen
             that this provides a way to program viberato and tremolo
             effects.

             When a voice is programmed to modulate, it always modulates the
             next voice. So voice1 modulates voice2, voice2 modulates voice3
             and so on. When a voice is told to modulate another, that voice
             is made silent. When voice4 is told to modulate, it is only made
             silent, because there are no 'higher' voices than voice4.
             How does this modulation work ? Well, say you programmed voice1
             to modulate only the volume of voice2. The volume of voice2 is
             no longer defined by the volume of that instrument. Instead, the
             words in the sample of voice1 define the volume for voice2.
             So if the sample of voice1 looked like this :
             $0030,$0032,$0034 etc., the volume of voice2 would become $30,
             then $32 and so on. This is used to introduce a viberato to
             voice2. The period of voice1 defines the speed of this viberato
             effect. 
             When voice1 was programmed to modulate the period of voice2, the
             words in the sample of voice1 would define the period of voice2.
             When a voice is programmed to modulate the volume AND the period
             of the next voice, the first word in the sample defines the
             volume, the second the period, the third the volume again and so
             on.

Arpeggio : Arpeggio is used for simulating accords. It does this by
--------   rapidly changing the notes while playing an instrument.
           Arpeggios are selected whenever the info byte has a non-zero
           value and no other commands are selected.
           When arpeggios are used, SoundTracker looks five times during
           the play of one note, at the information contained in the info
           byte. Each nibble (4 bits) in this byte defines
           how many notes SoundTracker must add to the the note currently
           playing. In each of the five passes SoundTracker does the
           following with the information contained in the info byte :
       
           1 - Add the first nibble to the current note.

           2 - Add the second nibble to the current note.

           3 - Play the current note.

           4 - Add the first nibble to the current note.

           5 - Add the second nibble to the current note.

 
Portamento : Portamento is used for 'sliding' of the instrument.
----------   If portamento is in use, the information contained in
             the info byte will be added to (or subtracted from) the period
             of the note playing in each of the five passes.

   Example : D#2 3208
             --- 0208
             --- 0208
             --- 0210
             etc.

   
Volume : One of the enhancements that the V6.0 version provides is the
------   ability to change the volume at any time during play.
         When command 12 ($C) is selected, the volume is set to the value
         contained in the info byte. The volume will remain at this level
         until a next SAMPLE is played. At this time, the volume is
         reset to the default volume level of that sample.

Example: C#1 1C22 - Set volume to $22 and use instrument # 1 to
                    play the C#1 note.
         D-2 0000 - Use instrument # 1 to play the D-2 note.
                    (Volume level remains at $22)
         B-1 1000 - Use instrument # 1 to play the B-1 note and
                    set volume to default value for that
                    instrument.

         It is also possible to "slide" the volume up or down while playing.
         In this case the first nibble of the info byte defines the amount
         at which the volume must be incremented, and the second nibble
         the amount at which it must be decremented.

Example: D#3 2D20 - Slide volume up, amount = 2
         --- 0D20
         --- 0D20
         etc.

         C#3 4D03 - Slide volume down, amount = 3
         --- 0D03
         --- 0D03    
         etc.

         This is all very well until you try to slide the volume and use
         portamento or arpeggio at the same time. For this reason,
         SoundTracker VI provides an auto-slide mode. You set the
         auto-slide mode with command # 14 ($E). Set the amount at which
         the volume must be slided up or down as normal. Now play your
         arpeggio or portamento and the volume will be slided as well.
         You return from auto-slide mode whenever an info byte with a zero
         value is encountered.     

Example: E-2 CE02 - Set auto slide, amount = 2
         --- 0203 - Portamento AND volume slide down.
         D-2 3203 - Volume to default level of instrument #3,
                    portamento and volume slide down.
         --- 0203
         G-1 1000 - Return from auto-slide. Play note G-1 with
         etc.       instrument # 1.


Speed:   This function allows changing the speed during play.
------   You can only enter a speed between 01 and 0F.
         Setting the info byte to zero doesn't effect anything.
         The normal speed is 6.

Example: D-2 4F05 - Set speed to 5
         --- 0000
         E-1 0F00 - Nothing happens to speed.
         --- 0FC3 - Set speed to 3
         G-2 2F06 - Set normal speed

         If you load another song it will be played with the actual speed.

The Playroutine. (FILE: PLAYROUTINE.S)
----------------

The playroutine on the SoundTracker disk is for using your music in demos,
intros, games etc. It was written using the Seka-assembler and the source
of the routine can directly be incorporated in your demo/intro source.
When you are finished writing your music using SoundTracker, save it to
disk. Write down which instruments you've used and write down there length.
Now enter the Seka-assembler and load the playroutine-source. At the end
of the routine, (next to the 'mt_muzakdata' label) is an empty block.
Enter the size of the song data. After that you've to enter all sizes of
the instruments you've used (at mt_snd1, mt_snd2...).
Assemble. Now load the saved song and the samples to their blocks.
At the start of your program, call the 'mt_init' routine, and to play the
music, call the routine 'mt_music' once every vertical blanking interrupt.
   
The 'Speed' label at the start of the routine, defines the pace at which the
notes succeed each-other. ($1f4 is the default value used in SoundTracker.)
Please note that, the higher the number, the slower the playroutine becomes.
Also, the slower it becomes, the longer it takes to complete a pass through
the routine. Some samples cannot handle high speeds, so you will have to try
this out.  

As has been told before, the source-file of the routine can
directly be incorporated in your demo/intro-source. To minimize the
possibility of a 'Double Symbol' error, all labels used in the routine start
with 'mt_'. So, when writing your program, do not use any labels that start
with 'mt_'.

Please note that the VI version of SoundTracker is not completely downwards
compatible with version V1.21. Any old V1.0 song that uses no portamento or
arpeggio can be used with VI without any problems. If arpeggio is used,
simply remove the 1 that selects the arpeggios in V1.21.
(Example : C#2 2184) If the old V1.21 song uses portamento, you will have to
rewrite this a little until it sounds the same as before. 
                                                                 D.O.C.
--------------------------------------------------------------------------