                          Appendix B - List of effects

   Here is a more complete list of effects, and their data fields that are
   useable inside Desktop Tracker. Those marked as Not used should not be
   used, as they will be allocated at a further date.

  Effect 00: Arpeggio

   The data byte is two nibbles, &UV. Every 50th of a second (or depending on
   the arpeggio speed), the note changes pitch. U is the number of semitones
   the note must decrease on in the second arpeggio segment, V is the number
   of semitones the note must decrease on in the third arpeggio segment.

   For example:

                             Event  Note    Effect  
                             11     C 2 0D  00 37   

   This plays C2 for a 50th of a second, then A1 for another 50th of a
   second, and finally F1 for a 50th of a second, before repeating back to
   C2. It is, in effect, a F major chord.

  Effect 01: Portamento up

   Until the next event, the pitch is shifted up by the data value every 50th
   of a second. If the data is "00*, then this means keep the portamento the
   same value as the last event.

   For example:

               Event  Note    Effect                              
               20     C 2 1A  01 01 Pitch bend up by 1            
               21     --- --  01 00 Keep the same value (i.e. 1)  
               22     --- --  01 02 Now change to 2               
               23     --- --  01 00 And again, with the value 2.  

  Effect 02: Portamento down

   This is the same as Portamento up, except that the pitch is shifted down
   in tone.

  Effect 03: Tone portamento

   The pitch of the note is increased, or decreased, in order to reach the
   pitch of the destination note. This destination note is the actual note
   stored in the music, the sample field is ignored, and the data is the same
   as for the Portamento effects (01 and 02). If the data field is zero, then
   this means continue the last tone portamento.

   For example:

              Event  Note    Effect                                 
              13     F 3 04  00 00 No effect                        
              14     G 3 --  03 10 Pitch bend, until it reaches G3  

  Effect 04: Vibrato

   This is performs low frequency oscillation on the sound. Like the arpeggio
   instruction, the data is split into two nibbles, &SA. S is the speed of
   the vibrato, with &F being the fastest, and &0 being frozen, and A is the
   amplitude, with &F as the highest amplitude, and &0 means no vibrato. If
   the data field is zero, then this means continue the last vibrato effect

   For example:

       Event  Note    Effect                                              
       3A     F#1 13  04 4A This is a reasonably slow, but large vibrato  

  Effect 05: Delayed note on another track

   This effect allows you to use one track to play a note on another track,
   after a certain time delay, measured in 50ths of a second. The data field
   is split into two nibbles again, &TD. T is the track number (from &0 to
   &F) of the note, and D is the time delay in 50ths of a second (from &0 to
   &F).

   For example:

 Event  Note    Effect                                                          
 05     D#2 01  05 24 This plays a note on track 2, after 4/50ths of a second.  

  Effect 06: Play end part of a sample

   This is a fairly useful command that allows release parts of samples to be
   played, rather than just looping them. The whole data is 21 bits in
   length, which is the offset from the beginning of the sample to the byte
   at which to start playing from. If this is the last effect of a group of
   four, or it is the only effect in a 1-effect event, then the data byte is
   the offset*256.

   If it is not, then all the 21 bits are obtained from the data byte, the
   next effect number, and the next effect's data byte. The bottom 8 bits
   come from the next effect's data byte; the next 8 bits from the effect's
   data byte, and the top 5 bits from the next event's number.

   For example:

   Event  Note    Effect(s)                                                    
   1D     C 3 00  06 10 Play from the &10*256 th byte &1000, (or 4096)th byte  
   20     C 3 01  06 22 Play from the &012233 th byte                          
                  01 33 on sample 0.                                           

  Effect 07: Tremolo

   This effect performs a low frequency oscillation on the volume of a note.
   It is similar to Vibrato, except the volume changes instead. A zero data
   field means continue the last tremolo.

  Effect 08: Phasor effect #2

   The current position in a sample is added by the contents of the data
   field.

   For example:

        Event  Note    Effect                                            
        E5     --- --  08 10 The sample position is incremented by &10.  

  Effect 09: Phasor effect #1

   This is exactly the same as Phasor effect #2, except the position is
   incremented by the data field *256.

  Effect 0A: Volume slide

   Every 50th of a second, the volume is increased by the data field, which
   is a signed value. If the data field is zero, then it means continue the
   last volume slide.

   For example:

 Event  Note    Effect                                                           
 81     D 1 30  0A 01 The volume is incremented by 1 for every 50th of a second  
 B7     E 1     0A FE The volume is decremented by 2 every 50th of a second.     

  Effect 0B: Position jump

   The next position to play is given by the data byte.

   For example:

            Event  Note    Effect                                    
            66     A#1 15  0B 22 Set the next position to &22 (34).  

  Effect 0C: Set volume

   The current volume is set from the data byte. Depending on the options,
   the data can be &00 to &40 for Amiga volume, or &00 to &7F for Acorn
   volume.

   For example:

 Event  Note    Effect                                                           
 5F     B 2 1F  0C 20 Set to half volume, if Amiga, or about 1/8th Archimedes    
                volume.                                                          

  Effect 0D: Set stereo position

   The stereo position is set to the data field, which can have the values 01
   to 07, with 01 full left, 04 centre, and 07 full right.

   For example:

              Event  Note  Effect                                  
              FE     D#2   0D 05 Set stereo position to 66% right  

  Effect 0E: Stereo slide

   This is another nibble, of &SD. &S is the time delay between change (in
   50ths of a second), and &D is the stereo difference, which is a signed
   value. It is inverted if the stereo position reaches 1 or 7.

   For example:

 Event  Note  Effect                                                             
 D0     G#3   0E 61 Every 6/50ths of a second, the sound moves right, until it   
              reaches 7, where it will go backwards.                             

  Effect 0F: Set speed

   The speed of the music is set to the data byte, in 50ths of a second.

   For example:

         Event  Note    Effect                                          
         76     C 1 33  0F 05 The speed is set to 5/50ths of a second.  

  Effect 10: Set arpeggio speed

   By default, the speed is 1, which means that the arpeggio changes every
   50th of a second. This effect allows this to be changed, to whatever speed
   you want it.

  Effect 11: Fine portamento

   This is similar to portamento up and down, except that instead of the
   pitch being incremented every 50th of a second, it is added to once. It is
   a signed byte value

   For example:

                 Event  Note    Effect                          
                 4A     G#1 20  11 FE Tone is decremented by 2  

  Effect 12: Clear repeat

   This allows the repeat part of a sample to be ignored after a certain
   amount of time, in 50ths of a second.

   For example:

  Event  Note    Effect                                                        
  A9     D 1 18  12 07 In 7/50ths of a second, the repeat section is ignored.  

  Effect 13: NOT USED

   Reserved for future expansion.

  Effect 14: Set vibrato waveform

   This allows the waveform to be chosen, from a list of 4. The data byte is
   from &00 to &03.

  Effect 15: NOT USED

   Reserved for future expansion.

  Effect 16: Loop

   If the data field is zero, then this is the start of the loop. If it is
   non-zero, then it means loop (n+1) times from the event which had the last
   "16 00* effect, to this one.

   For example:

          Event  Note    Effect                                        
          07     C 2 02  00 00                                         
          08     D 2 02  16 00 Start loop                              
          09     E 2 02  00 00                                         
          ..     ...     ..                                            
          20     F 1 02  16 02 Play the events 08 to 20, three times.  

  Effect 17: Set tremolo waveform

   This is exactly the same as set vibrato waveform, except the tremolo
   waveform is set instead.

  Effect 18: Set fine tempo

   By default, Desktop Tracker works in units of 1/50th of a second. Using
   this effect, it can be set to other values, to allow a more musically
   accurate speed (which is measured in beats per minute). "18 32* sets it to
   1/50th of a second (&32 is 50 in decimal). Here is a table of speed and
   fine tempo values needed for different musical speeds:

 +---------------------------------------------------------------------------+
 | Tempo | Value | Speed | Actual  | %error                                  |
 |-------+-------+-------+---------+-----------------------------------------|
 | 60    | 8     | 1     | 8.000   | 0.000                                   |
 |-------+-------+-------+---------+-----------------------------------------|
 | 72    | 10    | 1     | 9.600   | 4.167                                   |
 |-------+-------+-------+---------+-----------------------------------------|
 | 90    | 12    | 1     | 12.000  | 0.000                                   |
 |-------+-------+-------+---------+-----------------------------------------|
 | 120   | 16    | 1     | 16.000  | 0.000                                   |
 |-------+-------+-------+---------+-----------------------------------------|
 | 144   | 19    | 1     | 19.200  | 1.053 - See later for a more accurate   |
 |-------+-------+-------+---------+-----------------------------------------|
 | 160   | 21    | 1     | 21.333  | 1.588 set of values                     |
 |-------+-------+-------+---------+-----------------------------------------|
 | 180   | 24    | 1     | 24.000  | 0.000                                   |
 |-------+-------+-------+---------+-----------------------------------------|
 | 192   | 26    | 1     | 25.600  | 1.563                                   |
 |-------+-------+-------+---------+-----------------------------------------|
 | 224   | 30    | 1     | 29.866  | 0.446 - See later                       |
 |-------+-------+-------+---------+-----------------------------------------|
 | 240   | 32    | 1     | 32.000  | 0.000                                   |
 |-------+-------+-------+---------+-----------------------------------------|
 | 125   | 50    | 6     | 50.000  | 0.000 - This is the default value       |
 |-------+-------+-------+---------+-----------------------------------------|
 | 144   | 96    | 5     | 96.000  | 0.000 - Changing the speed for accuracy |
 |-------+-------+-------+---------+-----------------------------------------|
 | 224   | 224   | 15    | 224.000 | 0.000 - Use crochet = 4 events          |
 +---------------------------------------------------------------------------+

   Don't worry about the % error, as this is only for reference. These values
   are based on using 8 events per crochet, except the last one, which uses
   4.

  Effect 19: Retrigger sample

   This continually replays a sample from the beginning every "n* 50ths of a
   second. "n* is the data byte.

   For example:

    Event  Note    Effect                                                    
    21     G 2 13  19 02 Every 2/50ths of a second, the sample is replayed.  

  Effect 1A: Fine volume slide

   This is a cross between volume slide and fine portamento. The data byte is
   added to the current volume once only.

  Effect 1B: Hold

   The sample is looped, using its sustain offset and length, until the
   counter is 0. The counter is set to the data byte, if the data byte is not
   zero, otherwise, it means continue with the last counter. The difference
   between sustain and repeat is that sustain loops a part of a sample for a
   certain amount of time, and then continues, whereas repeat just loops the
   sample continuously.

   For example:

   Event  Note    Effect                                                       
   03     A#3 11  1B 20 Plays the sustained part &20 times before continuing.  

  Effect 1C: Note cut

   The note is turned off after a certain amount of time.

  Effect 1D: Note delay

   The note is not played immediately; it is played after a certain amount of
   time on the current track.

   For example:

       Event  Note    Effect                                               
       BD     D#2 22  1D 02 The note is played after 2/50ths of a second.  

  Effect 1E: Pattern delay

   The next pattern will be played after data byte *speed *1/50ths of a
   second after the end of the current pattern.

   For example (speed =6):

 Event  Note  Effect                                                             
 C6     F#1   1E 08 The next pattern is played 6*8=48/50ths of a second after    
              the current one ends.                                              

  Effect 1F: Call linked code

   This allows code to be called when Desktop Tracker reaches this effect.
   The format is: &AD, where A is the "address*, and D is the "data*. A set
   of 16 memory locations are provided, and a SWI call can access these. For
   example, the effect 1F47 would result in the "address* 4 being holding the
   value 7. Also, during this effect, a linked set of codes are called, so
   that they can control whatever they want. The main use of this is to
   provide operation for a light box, so that light patterns can be placed in
   the tune. The first 4 locations are "dedicated* to this, each bit
   controlling 1 light. However, you should not have to worry about this, as
   it is unlikely that everyone will have a light box.

   If you want to link code, then a SWI call is provided for you. Please
   refer to the SWI call list, in the file called "SWIs* in the "Extras*
   directory, or at the end of this manual.
