                        DELTA MUSIC 2.2

Typed in by the author. Edited by PARASITE.


MODIFICATIONS SINCE LAST RELEASE
512KB GFX bug removed.
Fastdir bug removed.
Clear song, when loading a new one.
More space for samples.
BEGIN option in trackeditor, you can now start SONGPLAY in the
middle of a song.
Track position counter.
PAL short help.  (THIS WAS MY IDEA, NOT GIZWIZ OF KEFRENS !!!)
NTSC short help  (screen number 6).

INSTRUCTIONS

IMPORTENT NOTE
   YOU HAVE TO USE INSTRUMENT $00 AS A SAFE ZERO SOUND, OTHERWISE
   YOU WILL GET A LITTLE NOISE BEEP WHEN YOU REPLAY IT !!!

FUNCTIONS-KEYS
    F1  =  Octave 1 & 2
    F2  =  Octave 3 & 4
    F3  =  Octave 5 & 6
    F4  =  Stop keyboard-play
    F5  =  Start keyboard-play
    F6  =  Decrease arpeggio number (useful for keyboard-play)
    F7  =  Increase arpeggio number
    F8  =  Fast songplay
    F9  =  stop songplay
    F10 =  start songplay

NUMBERS KEYBOARD
    1   =  Block and arpeggio editor
    2   =  Track editor
    3   =  Disk menu
    4   =  Waveform editor
    5   =  Sound editor
    6   =  NTSC short help screen

BLOCK EDITOR:
    Block data :       C-5 00 00 00
                       |   |  |  |
                       |   |  | Effect data
                       |   | Effect number
                       |  Instrument number
                      Note  "---" = no note

    Note :             This is the note you wishes to play.

    Instrument # :     This is the instrument you wish to play the
                       note with.

    Effect number :    This number is a special effect you want to
                       perform. (see the effect list !!!).

    Effect data :      This byte holds the information for the effect.

EFFECT LIST
                       $00 = normal play (no effect)
                       $01 = play speed
                       $02 = filter (power light)
                       $03 = channel bendrate up
                       $04 = channel bendrate down
                       $05 = channel portamento (slide between notes)
                       $06 = max. channel volume (cool for echos)
                       $07 = max. song volume (cool for volume fading)
                       $08 = channel arpeggio (for chords and fx)

ARPEGGIO EDITOR
What is arpeggio? Arpeggio is a table to play chords and complex
sound FX with.

Example :  if you want to play a chord, which is : C-5 D#5 G-5 C-6

1.  You take the first note which is C-5. The value of the first
    note is always 00

2.  Then you write the 00 in arpeggio table

3.  Now you shall find the D#5 value. You do that by counting notes
    from C-5 to D#5.  C-5=0,  C#5=1,  D-5=2,  D#5=3. so the next value
    is 03

4.  Write the 03 into the arpeggio table

5.  Do the same with G-5 and C-6

6.  At the end of you list write $80 to repeat

When you are finished, your list should look like this :

00 03 07 0c 80

SOUND EDITOR
    Delta Music can handle up to 128 instruments. It's hard to
    describe how it works, but you are a smart guy, so you figure it
    out yourself.

VOLUME:
    The volume table is build on  RATE, LEVEL, SUSTAIN.

    Rate :       slide-speed to chosen level.

    Level :      the volume to slide to.

    Sustain :    how long to hold this volume, before next step.

VIBRATOR:
    The vibrator table is build on  STEP, LENGTH, SUSTAIN.

    Step :       how big steps to take each time.

    Length :     how many steps to take. (both + and -)

    Sustain :    how long to wait, before next step.

BENDRATE:
    Increase or Decrease speed from note frequency.

WAVEFORM LENGTH:
    This is the length of the waveforms/samples you're using.

REPEAT AND REPEAT LENGTH:
    To loop a sample, use these. They work the same way as
    Soundtracker.

WAVEFORM TABLE:
    This table is a list of different waveforms, which you want to
    change between, for this sound.

    The first byte in this table is very special. If this sound is
    a sample, then this byte is the sample number. But if it's a
    synthetic sound, then this byte is the tablespeed.

    The rest of the bytes is the waveform-numbers you want to use
    for your sound. You can use value from $00 - $FE.

    At the end of your table you most write $FF to loop, and the fol-
    lowing byte is the loop position. (the byte number to loop to)

MODE
    There are two sound modes : sample and synthetic sound, and you
    choose between these by clicking on the mode icon.

WAVEFORM EDITOR
    MIX RANGE :  mix buffer with chosen waveform.

    The rest speaks for itself, so you don't need instructions
    for it.

TRACK EDITOR
     The first byte in the track is the block number, and the second
     byte is the tranpose byte.

     Block number    :  This is just the block you wish to play.

     Transpose byte  :  This byte holds the number of notes to sub or
                        add to all notes in the block.

BEGIN (BEG.)
     When you are composing a long tune, then you don't want to hear
     the song from the begining. This you can avoid by setting the
     BEG. to the position you want to start from.

 SPECIAL KEYFUNCTIONS FOR TRACK-EDITOR:

     RIGHT AMIGA KEY FOR FAST DEC. STEP.
     RIGHT ALT KEY FOR FAST INC. STEP.
     USE DEL KEY TO CUT IN TRACK.
     USE HELP KEY TO INSERT IN TRACK.

LOAD A FILE
    Here is a list of loading modes. You can't load a final song !!!!

    Load a song            :   FROM = not used
                               TO   = not used
                               MODE = song

    Load a synthetic sound :   FROM = instrument number ($00-$7F)
                               TO   = not used
                               MODE = sound

    Load a sample          :   FROM = instrument number ($00-$7F)
                               TO   = sample number ($00-$07)
                               MODE = sound

SAMPLES
    With Delta Music you can play samples up to 64KB (65536 bytes).
    You can have up to 8 different samples ......

    Read also about SOUND EDITOR .....

C64 SOUNDS
    All C64 waveforms, except sinus waveforms, are presented in the
    editor when you load it, so it should not be to hard to create
    new instruments ....

REPLAYER, FINAL SONG & SOUND FX
    When you're finished with your music piece, and you want to use
    it in your latest demo, then save it as FINAL SONG.
    When you save a final song, the replay routine will be saved
    with it. This means, that you don't have to have a replayer as
    source code. The replayer is of course, PC relative, so you can
    place it where you want.
    All final songs, is located in directory "FINAL"

    The replayer has 4 modes : INIT, PLAY, VOLUME, SOUND FX

    Before you're calling the replayer, you must set a mode number.
    Reg. D0 = holds the mode number.

    If D0 = 0   then the replayer will PLAY the music and sound fx.

    If D0 = 1   then the replayer will INIT the music.

    If D0 = 2   then the replayer will set new SONG VOLUME.

    If D0 = 3   then the replayer will use a instrument as SOUND FX.

    I've made 4 routines just below, look at these, and you'll get
    the picture. Otherwise, try to load the file "REPLAY.S",
    which is located in the directory FINAL. This routine also
    demonstrate - how to fade the volume ........

THIS IS HOW YOU DO IT
    1.   Init_Music.

    2.   Set_Song_Volume.    ; normaly you will set this to 63

    3.   Call Play_Music each blanking.

    4.   If you want a sound fx, call Make_Sound_FX just after
         Play_Music. Call it only once, because the Play_Music will
         take care of the rest.


INIT_MUSIC:
    moveq   #1,d0            ; Set mode INIT.
    jsr     music_data
    rts

PLAY_MUSIC:
    moveq   #0,d0            ; Set mode PLAY
    jsr     music_data
    rts

SET_SONG_VOLUME:
    moveq   #2,d0            ; Set mode SONG VOLUME
    moveq   #(0-63),d1       ; The new song volume want
    jsr     music_data
    rts

MAKE_SOUND_FX:
    moveq   #3,d0            ; Set mode SOUND FX.
    moveq   #(0-3),d1        ; Which channel to play sound fx in.
    moveq   #(0-127),d2      ; Which instrument to use as fx.
    moveq   #(1-72),d3       ; Which note to play the fx with.
    move.w  #(0-65535),d4    ; How long to hold the sound FX.
    moveq   #(0-63),d5       ; Which arpeggio effect to use on the FX
    jsr     music_data
    rts
