
**************************************************************************

 - THE LEGENDARY >> SUBSOFTWARE << IN 90 !!!
 ===========================================


                   - CONTACT US
 
                     - BP: 36 -
                   - 1380 REBECK -
                    -  BELGIUM -

              - DON'T SEND ANY DISKS -

**************************************************************************

              -----------------------------------
              Dokumentation zum BLUE-Soundtracker
              -----------------------------------

Allgemeines:
------------
Als BLUE vor geraumer Zeit eine Diskette mit mehreren Versionen des
Soundtrackers in die Haende fiel, waren zwei Reaktionen die Folge:

1. Freude ueber die gute Idee!

2. Aerger ueber die noch schlechtere Umsetzung!

Am 2. Punkt vermochten leider auch die gutgemeinten Bemuehungen diverser
Editoren nichts Wesentliches zu aendern, die hier jedoch nicht ungenannt
bleiben sollen. BLUE's Dank und besonderer Gruss geht an:

The Exterminator, Il Scuro, Jungle Command und D.O.C.

Doch was am Anfang versaeumt wurde ist nicht so schnell wieder gutzumachen.
Die Grundlage zum BLUE-Soundtracker lieferte DOC mit dem Soundtracker III.
Als BLUE diesen decompressed und mit speziellen Mitteln in leserlichen
Sourcecode zurueckgewandelt hatte, war es dann soweit:
Die schlimmsten Befuerchtungen bestaetigten sich! Ein zum Himmel schreiender
Programmierstil! Hervorgerufen entweder durch Unwissenheit oder durch
Dummheit, was BLUE dazu veranlasst hat, den Namen des Ursprungsautors K.O. 
- in dessen eigenem Interesse! - an dieser Stelle nicht bekanntzugeben.

Basierend auf diesem Code hat BLUE nun versucht, mit dem geringstmoeglichen
Aufwand (3 1/2 Wochen) das Bestmoegliche herauszuholen. Wer die vorliegende
Version mit der urspruenglichen vergleicht, wird erkennen, dass hierbei
kaum etwas, um nicht zu sagen fast gar nichts, unveraendert geblieben ist.
Das einzige was weitgehend unveraendert blieb, ist die Playroutine und die
obere Haelfte der Arbeitsoberflaeche, was BLUE schliesslich dazu veranlasst
hat, die urspruengliche Namensgebung 'Soundtracker' beizubehalten.

Vollkommen neu dagegen ist die Directoryfunktion, die Notendarstellung,
sowie saemtliche Eingabe- und Editierroutinen. Da dies alles hoffentlich
das Erstellen eines Songs unterstuetzt und auch vereinfacht, hofft BLUE
in Zukunft von noch mehr Leuten noch bessere Kompositionen zu hoeren. 
Die Soundqualitaet des Soundtrackers bietet hierfuer auf jeden Fall die
besten Vorraussetzungen.

Nun mal angenommen, Ihr habt mit dem BLUE-Soundtracker das Eurer Meinung
nach absolute Lied komponiert. Dann ... Ja. Was dann ?

oder

Angenommen, Euch gefaellt der BLUE-Soundtracker einfach, er hat Euch schon
gute Dienste geleistet und Ihr verspuert vielleicht sogar einen inneren
Drang, dem zu danken, der ihn geschrieben hat. Dann ... Ja. Was dann ?

oder

Angenommen, Ihr wollt einfach nur so mit BLUE in Kontakt treten. Dann ... Ja.


Dann schreibt doch einfach an:

                      PLK 99760 C
                      6100 Darmstadt
                      West-Germany

Kontakte mit Niveau sind jederzeit erwuenscht!

Die besten Songs werden jeweils in das aktuelle BLUE MUSIC ALBUM aufgenommen!
Dieses bekommt jeder, der einen Song einsendet und seiner Diskette ausreichend
Rueckporto beilegt, bei Neuerscheinung zugesandt. Weitere Informationen hierzu
findet Ihr im Scrolltext des Intros.

Noch eine Bitte:
In Anbetracht der Kuerze der Entwicklungszeit war es BLUE nicht moeglich,
die vorliegende Version des BLUE-Soundtrackers komplett durchzutesten.
Falls Ihr bei ausgiebiger Nutzung des Programms irgendetwas entdeckt, was
nicht so ist, wie Ihr glaubt, dass es sein sollte, teilt dies BLUE mit.
BLUE wird dann eventuell ein Update veroeffentlichen.


Aufbau eines Soundtracker-Songs:
--------------------------------
Jeder mit dem Soundtracker erstellte Song ist aus maximal 64 verschiedenen
sogenannten PATTERNs zusammengesetzt. Hierbei ist ein PATTERN jeweils eine
Einheit von 64 Notenpositionen. Ein Song besteht nun aus insgesamt 128
POSITIONs, wovon jede mit einer Patternnummer belegt werden kann.
LENGTH spezifiziert die Anzahl der POSITIONs, die bei einem Song jeweils
nacheinander abgespielt werden, bevor wieder bei POSITION 0 begonnen wird.

Mit den Notendaten eines Songs zusammen werden immer auch die Namen und
Parameter der maximal 15 verschiedenen verwendeten Samples sowie eine
Tempo-Grundeinstellung und der Songname selbst abgespeichert:

$000 (000)    20 Bytes      Name des Songs
$014 (020)    20 Bytes      Name von Sample #1
$028 (040)     1 Wort       Nummer der Speicher-Disk ST-xx von Sample #1
$02a (042)     1 Wort       Wortlaenge des Samples #1
$02c (044)     1 Wort       Volume-Grundeinstellung des Samples #1
$02e (046)     1 Wort       Repeat Additive des Samples #1
$030 (048)     1 Wort       Repeat Laenge des Samples #1
    .
    .    14 * 30 Bytes fuer die 14 weiteren Samples
    .
$1d6 (470)     1 Byte       Anzahl der Patterns fuer diesen Song
$1d7 (471)     1 Byte       Tempo-Grundeinstellung des Songs
$1d8 (472)   128 Bytes      Patternnummern der Song-Positionen
$258 (600)  1024 Bytes      Notendaten pro Pattern


Allgemeines zu den Samples:
---------------------------
Samples fuer den BLUE-Soundtracker duerfen nun bis zu 65535 Worte lang
sein. Laengere Samples koennen von der Amiga-Audio-Hardware nicht an
einem Stueck verarbeitet werden. Da sich alle Sampledaten in den 512K
Chip-Ram befinden muessen, ist fuer die Sampledaten insgesamt ebenfalls
eine obere Grenze gegeben. Moechte man selbst einen Sound erstellen,
so sampled man am besten ein 'F' in der gewuenschten Oktave mit einer
Samplingrate von 11200. So erhaelt man eine gute Qualitaet und die
richtige Stimmung des Instruments ist gewaehrleistet.
Das Sample wird dann einfach als Datenfile auf einer ST-xx Diskette
in der Directory 'Samples' abgespeichert, um es vom Soundtracker aus
benutzen zu koennen. Zu jedem Sample koennen folgende vier Parameter 
eingestellt werden:

LENGTH:    Laenge des Samples in Worten                      (0..65535)
VOLUME:    Lautstaerken-Grundeinstellung des Samples         (0..64)
REPEAT:    Es ist moeglich das verwendete Sample zu loopen.  (0..32767)
           REPEAT gibt den Offset des Repeat-Startes an.
           Bei nicht geloopten Sounds: REPEAT = 0.
REPLEN:    Anzahl der Worte die jeweils, beginnend beim      (0..65535)
           Repeat-Start, abgetastet werden.
           Bei nicht geloopten Sounds: REPLEN = 1.

Um nicht bei jedem neu geladenen Sample diese Parameter einstellen zu
muessen, existiert eine sogenannte PRESETLISTE. Hierin koennen zu jedem
Samplenamen jeweils die vier zugehoerige Parameterwerte abgespeichert werden.
Des weiteren enthaelt die PRESETLISTE die Information, auf welcher ST-xx
Diskette das Sample beim Laden zu suchen ist.


Editieren der PRESETLISTE:
--------------------------
Um groesstmoegliche Flexibilitaet zu erreichen, wird die PRESETLISTE bei
jedem Startvorgang des BLUE-Soundtrackers in Form des Files 'st.presets'
aus dem Verzeichnis 'BLUE' der Startdiskette neu geladen. Im selben 
Verzeichnis findet Ihr die PRESETLISTE auch als Ascii-Text-File sowie
das Programm 'makepreset' welches diese Ascii-Liste in das vom Soundtracker
lesbare File 'st.presets' umwandelt. Hierzu einfach das Ascii-File als
Argument an 'makepreset' uebergeben.
Beim Editieren der PRESETLISTE sind zwei Dinge zu beachten:

1. Haltet Euch mit Neueintraegen an die Form bereits vorhandener Eintraege
   und verwendet insbesondere keine Tabs anstelle von Spaces!
2. Das Programm 'makepreset' interpretiert ein '-' gefolgt von einem
   <Return> als Anfangssignal und ein <Return> gefolgt von einem '-'
   als Endesignal fuer den Uebersetzungsvorgang. Achtet also darauf, dass
   die Presetdaten von diesen Zeichenkombinationen eingeschlossen sind.  

Wenn Ihr diese beiden Punkte beachtet, kann eigentlich nichts schiefgehen!
Mit diesem Konzept habt Ihr nun beispielsweise die Moeglichkeit, Euch eine
Euren Beduerfnissen entsprechende Sample-Disk zusammenzustellen und die
PRESETLISTE dementsprechend abzuaendern, etc.


Laden eines Samples:
--------------------
Beim Laden eines Samples geht der BLUE-Soundtracker folgendermassen vor:
Geladen wird grundsaetzlich das Sample mit dem im zugehoerigen Feld
angegebenen Namen. Dieser kann natuerlich auch direkt eingegeben werden.
Geladen wird nun jeweils die bei LENGTH angegebene Anzahl von Worten,
die im Regelfall natuerlich mit der tatsaechlichen Laenge des Samples
uebereinstimmen sollte. Um dies zu erreichen und die Soundparameter nicht
umstaendlich einzustellen zu muessen, hat man zwei Moeglichkeiten:

1. Laden ueber die PRESETLISTE:
   Man sucht in der Presetliste, bis das gewuenschte Sample gefunden ist.  
   Durch Anwaehlen von USE PRESET werden die in der Liste angegebenen
   Parameterwerte und der Presetname nun zu den aktuellen Soundparametern
   bzw. zum aktuellen Soundnamen gemacht. Nach dem nun die Parameterwerte
   eingestellt sind, kann das Sample mit LOAD SAMPLE geladen werden. Ist die
   in der PRESETLISTE angegebene  Diskette nicht im Laufwerk, werdet Ihr auf-
   gefordert diese einzulegen. Das Druecken der rechten Maustaste hat hier
   die Wirkung von 'Cancel'. Der BLUE-Soundtracker durchsucht daraufhin alle
   eingelegten Disketten nach einer Directory Samples und nach einem File mit
   dem angegebenen Namen. Wenn ein solches gefunden wird, wird dieses geladen.

2. Laden ueber die SAMPLES Directory:
   Mit Anwaehlen von SAMPLES wird zunaechst geprueft, ob die Diskette, von der
   zuletzt die Directory 'Samples' geladen wurde, sich noch in einem Laufwerk
   befindet und wenn dem so ist, deren Directory angezeigt. Ist dies jedoch
   nicht der Fall, sucht Soundtracker erst in dem Laufwerk nach 'Samples', von
   dem diese Directory zuletzt geladen wurde (bzw. in Df1: falls dies der
   erste Ladevorgang ist), dann im anderen Laufwerk (bzw. DF0:) und zeigt
   die eventuell gefundene Directory an. Mit Anwaehlen von Diskname und 
   der Drivenummer kann man zum anderen Laufwerk wechseln.
   Klickt man nun einen Samplenamen an, wird automatisch die PRESETLISTE nach
   einem Eintrag des gleichen Namens durchsucht und wenn dieser gefunden wird,
   erfolgt ein USE PRESET. Ist ein solcher Eintrag nicht vorhanden, so wird
   LENGTH auf die tatsaechlichen Samplelaenge gesetzt, VOLUME auf 64, REPADD
   auf 0 und REPLEN auf 1. Durch nochmaliges Anklicken bzw. Anwaehlen von LOAD
   wird das Sample dann geladen. Moechte man von der Directory-Anzeige zum
   normalen Arbeitsbildschirm zurueckwechseln, so klickt man einfach einmal
   in die obere Haelfte des Bildschirms. 

Wird ein Sample nicht gefunden, so meldet sich der BLUE-Soundtracker grund-
saetzlich mit der Meldung "Can't Find Sample" und dem Samplenamen. Man hat
hier zwei Moeglichkeiten zu reagieren. Entweder man legt nun eine andere
Diskette ein und veranlasst durch Druecken der linken Maustaste, dass das
Sample erneut gesucht wird oder man drueckt die rechte Maustaste und faehrt
so im normalen Programmablauf fort. 


Laden eines Songs:
------------------
Ein Song, den man laden moechte, muss sich auf jeden Fall in einer Directory
mit dem Namen 'Songs' befinden. Man hat nun wiederum zwei Moeglichkeiten: 

1.Laden mit LOAD SONG:
  Waehlt man LOAD SONG an, sucht der BLUE-Soundtracker zunaechst in der
  zuletzt geladenen Directory 'Songs' (bzw. Df0:Songs) nach dem File mit dem
  angegebenen Namen. Wird dies hier nicht gefunden oder ist die Diskette mit
  der aktuellen Directory nicht eingelegt, werden saemtliche in den Laufwerken
  befindliche Disketten nach einer Directory 'Songs' und dem entsprechenden
  File durchsucht. Ist die Suche erfolgreich wird das File geladen.

2.Laden ueber die SONGS Directory:
  Auf die gleiche Art und Weise, wie dies auch bei SAMPLES geschieht, wird
  nach Anwaehlen von SONGS versucht, eine Directory 'Songs' zu laden und
  darzustellen. Beim ersten Ladevorgang wird hier allerdings zunaechst in
  DF0: gesucht. Der Ladevorgang kann nun entweder durch Doppelklick oder
  Anwaehlen von LOAD gestartet werden.

Zunaechst laedt Soundtracker den Song selbst und versucht anschliessend,
die im Song angegebenen Samples zu laden. Dabei wird die Information, von
welcher Diskette ein Sample zu laden ist, jeweils aus der PRESETLISTE geholt.
Ist diese Information dort nicht zu finden oder 'Cancelt' man die gegebene
Aufforderung zum Einlegen einer bestimmten Diskette durch Druecken der
rechten Maustaste, werden saemtliche in den Laufwerken befindliche Disketten
nach dem Sample durchsucht.


Loeschen des Arbeitsspeichers:
------------------------------
Da der BLUE-Soundtracker zu Beginn jedes Ladevorgangs den kompletten
Arbeitspeicher initialisiert, loescht man diesen am einfachsten, indem
man versucht, einen micht existierenden Song zu laden. Die vorhandenen
Sampledaten werden dabei nicht veraendert.


Speichern eines Songs:
----------------------
Beim Speichern eines Songs legt Soundtracker zunaechst den Songheader mit
den Informationen ueber die verwendeten Samples und daran anschliessend
die Notendaten der Patterns, beginnend bei Pattern 0, in aufsteigender
Reihenfolge, bis einschliesslich der hoechsten benutzten Patternnummer
auf Diskette ab. Deshalb ist es ratsam, die Pattern jeweils lueckenlos
in aufsteigender Reihenfolge zu benutzten.

1.Speichern mit SAVE SONG:
  Hierbei wird versucht, den Song unter dem angegebenen Namen im aktuellen
  Directory (zu Beginn df0:songs) abzulegen. Schlaegt dieser Versuch
  fehl, wird der Speichervorgang abgebrochen.

2.Speichern ueber die SONGS Directory:
  Hier gilt das gleiche wie beim Ladevorgang. Abgespeichert wird durch
  Anwaehlen von SAVE. Ein etwa vorhandenes File gleichen Namens wird
  beim Speichervorgang jeweils ueberschrieben.


Loeschen eines Songs:
---------------------
Loeschen kann man einen Song mit Hilfe von DELETE ueber die SONGS Directory.


Allgemeines zu den Diskettenoperationen:
----------------------------------------
Der BLUE-Soundtracker verwendet fuer die Diskettenzugriffe das AmigaDos.
Gleichzeitig sind aber etwa auftauchende Dos-Requester, wegen der Art und
Weise des Bildschirmaufbaus, nicht sichtbar. In den meisten Faellen wurden
die Dos-Requester zwar abgefangen, dies ist jedoch nicht in allen Faellen
geschehen. So ist es zum Beispiel nicht zu empfehlen, die Diskette waehrend
einer in Gang befindlichen Lade- bzw. Schreibtaetigkeit aus dem Laufwerk
zu nehmen. (Aber wer macht sowas schon!)
Weiterhin kann es bei fehlerhaften Disketten und deshalb auftretenden
Read/Write Errors ab und zu sein, dass ein unsichtbarer Requester auftaucht.
Wenn sich also nichts mehr ruehrt, klickt am besten ein paar mal da hin, wo
Ihr das 'Cancel' vermutet. In den meisten Faellen hilft das.


Anwahl der Gadgets:
-------------------
Bei den vier mit '<<' gekennzeichneten Lade- bzw. Speicherfunktionen
USE PRESET, LOAD SONG, SAVE SONG und LOAD SAMPLE wartet Soundtracker auf
eine zusaetzliche Reaktion durch Betaetigung der linken, wonach die Funktion
ausgefuehrt wird, bzw. der rechten Maustaste, was einem 'Cancel' gleichkommt.
Bei den Plus/Minus-Gadgets ist es in einigen Faellen moeglich, den Zaehlvorgang
durch gleichzeitiges Druecken der rechten Maustaste zu beschleunigen.


Abspielen der Pattern und des Songs:
------------------------------------
Der BLUE-Soundtracker kann sich in zwei verschiedenen Zustaenden befinden:
Durch Anwaehlen von PLAY gelangt man in den Songplay Modus. Hierbei wird
die komplette Komposition, beginnend bei der aktuell eingestellten POSITION,
abgespielt. Ist eine POSITIONnummer ausserhalb der mit LENGTH bestimmten
Reichweite eingestellt, so startet Soundtracker den Song bei POSTION 0.
Im Patternplay Modus, den man durch Anklicken von PATTERN startet, wird,
wie der Name schon sagt, jeweils nur das aktuell dargestellte Pattern gespielt. 
Hierbei ist es moeglich, auch waehrend des Abspielens, das aktuelle Pattern 
durch Eingabe einer Nummer zwischen 0 und 63 zu bestimmen. Zum Eingeben
einfach die Patternnummernanzeige anklicken.
Mit STOP wird der Abspielvorgang jeweils beendet. 


Veraendern des Tempos:
----------------------
Das eingestellte Tempo bestimmt die Abspielgeschwindigkeit der Notendaten.
Beim Speichervorgang wird die aktuelle Tempo-Einstellung als Default-Tempo,
in die Songdaten geschrieben. Der bei Tempo eingestellte Wert entspricht exakt
dem Zaehlmass 'Beats per Minute' (Ihr koennt gerne nachmessen).  


Stummschaltung einzelner Stimmen:
---------------------------------
Sowohl im Song als auch im Pattern Modus ist es moeglich, einzelne Stimmen
stummzuschalten bzw. selektiert anzuhoeren. Fuer jede Stimme existiert
hierzu eine Anzeige oberhalb des Notensystems. Durch deren Anklicken wird
der Zustand einer Stimme jeweils invertiert. Hierbei gilt:
Anzeige gruen  -->  Stimme ist zu hoeren
Anzeige rot    -->  Stimme ist stummgeschaltet


Notendarstellung:
-----------------
Das aktuelle Pattern wird jeweils komplett in dem Notensystem dargestellt.
Die Notation entspricht hiebei der wohl gaengisten, eines Violinschluessels.
Dargestellt wird aber nicht Tonartgerecht mit 'b' und '#' (das waere des
Guten wohl auch etwas zu viel gewesen), sondern der BLUE-Soundtracker kennt
nur das '#', d.h. die Erhoehung um einen Halbton. Aus Platzgruenden wird
das '#' jeweils durch einen vertikalen Strich vor der Note symbolisiert. 
Da sich in einem Notensystem jeweils nur zwei Oktaven gut darstellen lassen,
der Tonumfang des Soundtrackers aber drei Oktaven betraegt, war es notwendig,
verstaendliche Symbole fuer die Oktavtransponierung einzufuehren.
Hierbei gilt folgendes:
Rote  Punkte ueber einer Note  -->  Note eigentlich eine Oktave hoeher 
Blaue Punkte ueber einer Note  -->  Note eigentlich eine Oktave tiefer
Die Farbe einer Note gibt an, welcher der 15 Sounds fuer das Abspielen dieser
Note verwendet wird. Ist die Note schwarz, ist der in dieser Stimme zuletzt 
gespielte Sound zu hoeren. Ebenfalls im Notensystem dargestellt wird der
jeweils an dieser Position im Pattern stehende Command.
Diese beiden und noch eine zusaetzliche Information kann ebenfalls der
Notendarstellung in Textform am unteren Bildschirmrand entnommen werden.
Hier werden die Bezeichnungen und Informationen zu den Noten aller vier
Stimmen an der aktuellen Notenposition angegeben.
Diese Darstellung hat folgendes Format:
 
                  Stimme1     Stimme2     Stimme3     Stimme4
           --------------------------------------------------- 
           xx    C#1  1C34   xxx  xxxx   xxx  xxxx   xxx  xxxx
           ---------------------------------------------------
           /      |   ||||
Notenposition    /    |||Infobyte 2.Nibble
    Notenbezeichnung  ||Infobyte 1.Nibble
                      |Command
                      Soundnummer

Notenposition:
Gibt die Position der dargestellten Noten im Pattern an (0..63).

Notenbezeichnung:
Dies ist einfach die Bezeichnung der an dieser Stelle zu spielenden Note.

Soundnummer:
Beim Abspielvorgang werden vor dem Spielen dieser Note die Daten und Paramter
des angegebenen Sounds bereitgestellt. Steht hier eine Null, entfaellt diese
Bereitstellung und der zuletzt in dieser Stimme gespielte Sound ist zu hoeren.

Command:
Hiermit wird dem Soundtracker mitgeteilt, welche spezielle Funktion er waehrend
dem Spielen dieser Note auszufuehren hat.
Folgende Commands stehen zur Verfuegung:

 0 - Arpeggio
 1 - Portamento up
 2 - Portamento down
 3 - Modulate Volume          / Arpeggio
 4 - Modulate Period          / Arpeggio
 5 - Modulate Volume + Period / Arpeggio
 6 - Modulate Volume          / Portamento up
 7 - Modulate Period          / Portamento up
 8 - Modulate Volume + Period / Portamento up
 9 - Modulate Volume          / Portamento down
 A - Modulate Period          / Portamento down
 B - Modulate Volume + Period / Portamento down
 C - Set Volume
 D - Slide Volume
 E - Auto-Slide Volume
 F - Set/Slide Tempo

Infobyte:
Das Infobyte enthaelt naehere Informationen zu den einzelnen Commands.
Die genaue Bedeutung ist im folgenden bei jedem Command erklaert.


Beschreibung der Commands:
--------------------------

Arpeggio:
---------
Arpeggio hat man immer dann gewaehlt, wenn das Infobyte ungleich Null und
kein anderer Command selektiert ist. Mit Arpeggio hat man die Moeglichkeit
Akkorde zu simulieren. Dies erreicht Soundtracker durch schnelles wechseln
der Tonhoehe waehrend dem Abspielen einer Note, wobei jeweils 5 durch das
Infobyte genauer bestimmte Tonhoehenwechsel waehrend einer Notenlaenge
stattfinden. Eine Note wird also in insgesamt 6 Schritten gespielt:  

1 - die Note selbst wird gespielt
2 - die im 1.Nibble des Infobytes angegebene Halbtonanzahl wird addiert
3 - die im 2.Nibble des Infobytes angegebene Halbtonanzahl wird addiert
4 - wie 1
5 - wie 2
6 - wie 3

Beispiel:
Man moechte einen Akkord C-1/E-1/G-1 simulieren. Dann muesste in etwa
folgendes in das Pattern geschrieben werden:

   C-1 2047
   --- 0047
   --- 0047
   --- 0047
   --- 0000

Es wird also die Note C-1 mit dem Sound #2 angeschlagen. Danach erfolgt
jeweils 5 mal pro Notenlaenge ein Wechsel zwischen C-1, E-1 (C-1 plus 4
Halbtoenen) und G-1 (C-1 plus 7 Halbtoenen). Dies geschieht hier ueber die
Dauer von 4 Notenlaengen, bis man beispielsweise damit rechnet, dass das
Sample von Sound #2 ausgeklungen ist. 


Portamento:
-----------
Der Portamento Effekt (gleitender Tonhoehenwechsel) wird erreicht, indem
bei jedem der Abspielschritte, beginnend bei Schritt 2, jeweils der im
Infobyte angegebene Wert zu der Periode (diese bestimmt ja bekanntlich
die Tonhoehe) dieser Note addiert bzw. von ihr subtrahiert wird.

Beispiel:

   F#2 A108
   --- 0108
   --- 0108
   --- 0000

Hierbei wird die Note F#2 mit Sound #10 gespielt, und die Periode bei jedem
Abspielschritt, ueber die Dauer von 3 Notenlaengen, um 8 erniedrigt, was
wiederum die Tonhoehe dementsprechend anhebt.


Modulation:
-----------
Eine Stimme kann auch dazu verwendet werden, eine andere Stimme zu modulieren.
Hiermit ist gemeint, dass sowohl die Lautstaerke als auch die Periode (und
damit natuerlich die Tonhoehe) der modulierten Stimme keine statischen Werte
mehr darstellen, sondern direkt durch die Sampledaten der modulierenden Stimme
dynamisch, waehrend des Abspielvorgangs, beeinflusst werden.
Hiermit koennen gezielt Effekte wie Vibrato oder Tremolo verwirklicht werden.
Eine Stimme kann jeweils nur zur Modulation der naechst hoeheren Stimme
verwendet werden, d.h. Stimme #1 moduliert Stimme #2, Stimme #2 moduliert
Stimme #3  etc. Die modulierende Stimme selbst ist dabei stummgeschaltet.
Stimme #4 wird also, wenn man sie zur Modulation verwenden will, nur stumm-
geschaltet, da es mit ihr nicht moeglich ist, eine andere Stimme zu modulieren.

Beispiele:
Man verwendet Stimme #1 um die Lautstaerke von Stimme #2 zu modulieren. Die
Lautstaerke von Stimme #2 ist nun nicht mehr durch den bei ihr eingestellten
Lautstaerkenwert bestimmt, sondern direkt durch die Sampledaten von Stimme #1.
Sehen diese Daten etwa so aus: $0030,$0032,$0034,..., so ist der Lautstaerken-
verlauf bei Stimme #2 auch $0030,$0032,$0034,... Auf diese Weise erreicht man
zum Beispiel einen Vibratoeffekt in Stimme #2. Die Geschwindigkeit dieses
Vibratos ist dabei durch die Periode von Stimme #1 festgelegt.
Moduliert Stimme #1 nun die Periode von Stimme #2, werden die Sampledaten von
Stimme #1 in gleicher Weise dazu verwendet, den Periodewert zu betimmen.
Wird mit Stimme #1 nun gleichzeitig Lautstaerke und Periode moduliert, werden
die Sampledaten jeweils alternierend dazu verwendet, die Lautstaerke bzw.
Periode festzulegen, d.h. das erste Datenwort von Sample bestimmt die Laut-
staerke, das zweite die Periode, das dritte wiederum die Lautstaerke usw.


Set Volume:
-----------
Man hat hiermit die Moeglichkeit, die Lautstaerke der Instrumente waehrend
des Abspielens eines Songs den Gegebenheiten anzupassen bzw. einzelne Noten
zu betonen. Das Infobyte gibt jeweils den neuen Wert fuer die Lautstaerke an.
Dieser Wert hat Gueltigkeit bis in dieser Stimme erneut Soundparamter bereitge-
stellt werden, d.h. bis wieder eine Soundnummer im Pattern angegeben wird.

Beispiel:

   C-2 1C22 - Hier wird die Lautstaerke auf $22 gesetzt und Sound #1
   --- 0000   dazu verwendet um die Note C-2 mit diese Lautstaerke
   --- 0000   zu spielen.
   E-2 0000 - Die Note E-2 wird mit Sound #1 und Lautstaerke $22 gespielt.
   --- 0000
   --- 0000   An dieser Stelle werden die Soundparameter von Sound #1 neu
   G-2 1000 - bereitgestellt. Anschliessend wird die Note G-2 mit Sound #1
   --- 0000   und dort angegebenen Lautstaerken Grundeinstellung gespielt.


Slide Volume:
-------------
Neben der expliziten Festlegung eines Lautstaerkenwertes ist es moeglich,
diesen durch Angabe eines Offsets gleitend zu veraendern. Die Lautstaerke
wird hiebei jeweils einmal pro Note, um den im 1. Nibble des Infobytes ange-
gebenen Wert, angehoben, bzw. um den Wert im 2. Nibble, abgesenkt.

Beispiele:

   A#2 4D20 - Lautstaerke wird um 2 erhoeht.
   --- 0D20 - Lautstaerke wird noch einmal um 2 erhoeht.
   F#2 4000 - Lautstaerke wird wieder auf Default-Wert von Sound #4 gesetzt. 

   D-3 0D04 - Lautstaerke wird um 4 abgesenkt.
   --- 0D04 - Erneutes Absenken der Lautstaerke um 4.
   E-3 C000 - Lautstaerke wird auf Default-Wert von Sound #12 gesetzt.


Auto-Slide Volume:
------------------
Mit Auto-Slide hat man die Moeglichkeit, Arpeggio oder Portamento und eine
Lautstaerkenaenderung gleichzeitig vorzunehem. Das Infobyte hat hierbei die
gleiche Bedeutung wie bei Slide Volume. Der Auto-Slide Mode bleibt solange
gesetzt, bis als Infobyte ein Nullbyte geschrieben wird.

Beispiel:

   E-2 CE02 - Auto-Slide Mode wird gesetzt. Lautstaerke wird abgesenkt um 2.  

   --- 0203 - Portamento down um 3, Lautstaerke wird abgsenkt um 2.

   D-2 3203 - Portamento down um 3, Lautstaerke wird auf Default-Wert
              von Sound #3 gesetzt, Lautstaerke wird abgesenkt um 2.
   --- 0203   Portamento down um 3, Lautstaerke wird abgesenkt um 2.

   G-1 1000 - Auto-Slide Mode wird geloescht. Lautstaerke wird auf Default-
              Wert von Sound #1 gesetzt.


Set/Slide Tempo:
----------------
Mit Set Tempo werden Tempowechsel waehrend des Abspielvorgangs veranlasst.
Hierzu wird die gewuenschte Geschwindigkeit einfach im Zaehlmass 'Beats per
Minute' ins Infobyte geschrieben. Der BLUE-Soundtracker akzeptiert explizite
Tempoangaben zwischen 30 und 210. Um einfacher z.B. ein Riterdando realisieren
zu koennen, sind die Werte ausserhalb dieser Grenzen dazu vorgesehen, gleitende
Tempowechsel zu programmieren. Schreibt man einen Wert zwischen 1 und 29 ins
Infobyte, wird das Tempo um den angegebenen Wert erhoeht, bei Angaben zwischen
227 und 255, um '256 minus Infobytewert' vermindert. Die Aenderung erfolgt also
jeweils durch Addition des Infobytes, wobei der darin enthaltene Wert als
vorzeichenbehaftete Zahl in Zweierkomplementdarstellung interpretiert wird.

Beispiel:

   D-3 5F57 - Setzt Tempo auf 87 Beats per Minute.
   --- 0000
   E-3 5F03 - Erhoehung des Tempos um 3 BpM auf 90 BpM.
   --- 0000
   F-3 5FFE - Verminderung des Tempos um 2 BpM auf 88 BpM.
   --- 0FFE - Verminderung des Tempos um 2 BpM auf 86 BpM.
   --- 0FFE - Weitere Tempoverminderung um 2 BPM auf 84 BpM.

Ein Tempowechsel ist immer global wirksam, d.h. egal in welcher Stimme er
veranlasst wird, er bezieht sich immer auf alle vier Stimmen gemeinsam. Aus
diesem Grund wird es wohl kaum vorkommen, dass man, um einen Tempowechsel
vornehmen zu koennen, auf einen anderen Command verzichten muss.


Editiern mit der Maus:
----------------------
Eine Eingabe von Notenwerten ins Pattern mit Hilfe der Maus ist immer dann
moeglich, wenn sich der BLUE-Soundtracker nicht im Songplay Modus befindet.
Hierzu bewegt man den Mauszeiger ins Notenfeld ueber die gewuenschte Position.
Durch Druecken der linken Maustaste kann nun der durch den Mauszeiger dar-
gestellte Notewert ins Pattern geschrieben werden. Ist an dieser Stelle
bereits ein Noteneintrag vorhanden, wird dieser zunaechst geloescht und erst
das zweite Betaetigen der Maustaste veranlasst einen Neueintrag. Zusammen
mit dem Notenwert wird im Regelfall auch die aktuelle Soundnummer im Pattern
vermerkt. Will man dies verhindern, muss man einfach das Soundgadget des
aktuellen Sounds erneut oder die Soundstatusanzeige, die sich rechts von der
Patternnummernanzeige befindet, anklicken. Dies hat einen alternierenden
Wechsel der Editiereigenschaften zur Folge. Hat diese Anzeige und damit auch
die vom Mauszeiger jeweils dargestellte Note die Farbe des aktuellen Sounds,
wird die Soundnummer jedesmal mit ins Pattern eingetragen. Sind Anzeige und
Note schwarz, so erfolgt ein solcher Eintrag nicht.


Spielen von Noten mit der Maus:
-------------------------------
Waehrend ein Notenwert ins Pattern geschrieben wird, ist dieser jeweils auch
akustisch mit dem momentan eingestellten Sound zu vernehmen. Moechte man mit
der Maus einzelne Notenwerte spielen, ohne diese im Pattern einzutragen, kann
man das mit der rechten Maustaste tun. Um nun staendig die von dem Mauszeiger
dargestellten Notenwerte zu hoeren, haelt man einfach die rechte Maustaste
gedrueckt. Betaetigt man die rechte Maustaste und haelt diese nieder waehrend
die vom Mauszeiger dargestellte Note sich ueber dem Notencursor befindet, kann
man nun durch Bewegen der Maus, die bereits im Pattern eingetragenen Noten
aller vier Stimmen abspielen. Dies soll dazu dienen, sich einzelne Sequenzen,
oder auch nur Akkorde, selektiv anhoeren zu koennen, ohne dafuer einen Playmode
einschalten zu muessen.


Tastatur als Keyboard:
----------------------
Ueber die gesamte Tastatur ist eine drei Oktaven umfassende Klaviatur verteilt,
so dass die gesamte Reichweite einer Stimme jeweils voll ausgeschoepft werden
kann, ohne die Notenbelegung der Tasten zu aendern. Falls man sich im Edit
Modus befindet, ist es mit den Tasten moeglich, die entsprechenden Notenwerte
direkt ins Pattern einzugeben (siehe naechster Abschnitt).


Editieren mit der Tastatur:
---------------------------
Hierzu sind zunaechst einige grundlegenden Dinge zu bemerken. Moechte man
mit Hilfe der Tastatur irgendwelche Veraenderungen im Pattern vornehmen, so
ist dies grundsaetzlich nur moeglich, wenn man sich im sogenannten Edit Modus
befindet. Diese Einschraenkung besteht deshalb, weil man die Moeglichkeit
haben soll, die Tastatur sowohl als reines Play-Keyboard als auch, wie dies
im Edit Modus der Fall ist, als Eingabegeraet fuer Patterndaten verwenden zu
koennen. In den Edit Modus gelangt man u.a. durch Anklicken von EDIT.
Wie bei der Mauseingabe auch, ist es waehrend dem Songplay Modus vollkommen
unmoeglich, irgendwelche Veraenderungen durchzufuehren. Deshalb bewirkt das
Einschalten des Edit Modus das Ausschalten des Songplay Modus und umgekehrt.

Man hat nun zwei Moeglichkeiten sich bei der Eingabe von Notenwerten und
sonstigen Informationen zu orientieren. Zum einen existieren die Notenlinien,
zum anderen die Notendarstellung in Textform am unteren Bildschirmrand.
BLUE gibt hier den Tip am besten beides getrennt voneinander zu betrachten.
Beim Eingeben von Notenwerten, ist es guenstiger sich am Notenfenster zu
orientieren, und man sollte sich auch darauf beschraenken, waehrend fuer die
Eingabe etwaiger Commands und Infobytewerte die Textzeile zustaendig ist, und
am besten orientiert man sich auch nur an ihr. Dies ist ein gutgemeinter Rat
an alle, die durch die gegenlaeufigen Cursorbewegungen leicht die Uebersicht
verlieren und daran verzweifeln. 
Eingegeben wird ein Wert grundsaetzlich in der aktuellen Stimme und an der
augenblicklichen Noten- bzw. Textcursorposition. Die Cursorsteuerung und die
Noten- bzw. Werteingabe ist dabei so geregelt, dass man sich ohne Betaetigung
der Shift-Taste am Notenfenster und mit Betaetigung der Shift-Taste in der
Notentextzeile orientieren sollte.


Edit-Tastenbelegung ohne <Shift>:
---------------------------------
Cursor links/rechts   -->   Bewegt den Notencursor links/rechts.
Cursor up/down        -->   Aendert die aktuelle Stimme up/down.
<Del>                 -->   Loescht die Note unter dem Notencursor und
                            bewegt diesen eine Note weiter.
<Backspace>           -->   Loescht die Note vor dem Notencursor und
                            bewegt diesen eine Note zurueck.
<Space>               -->   Aendert den Soundeintrag der aktuellen Note zum
                            aktuellen Soundeintrag gemaess Soundstatus um
                            Dabei wird die Note mit dem eventuell neuen
                            Sound gespielt und der Cursor weiterbewegt.
Keyboardtaste         -->   Schreibt die gespielte Note zusammen mit dem
                            aktuellen Soundeintrag an der Cursorposition
                            ins Pattern und bewegt den Cursor weiter.

Hat man den Edit Modus zusammen mit dem Patternplay Modus angewaehlt, so
erfolgen die Eingaben ebenfalls genau an Position des Notencursors. Da
dieser sich nun immer an der aktuellen Notenposition befindet, hat man
die interessante Moeglichkeit in Echtzeit ueber die Tastatur Sequenzen
einzuspielen bzw. Schlagzeugpatterns zu erstellen. 


Edit-Tastenbelegung mit <Shift>:
--------------------------------
Cursor links/rechts   -->   Bewegt den Textcursor links/rechts.
Cursor up/down        -->   Aendert die aktuelle Notenposition up/down.
<Del>                 -->   Loescht die Note bzw. den Eintrag unter dem
                            Textcursor und bewegt diesen weiter.
<Backspace>           -->   Loescht die Note bzw. den Eintrag vor dem
                            Textcursor und bewegt diesen zurueck.
<Space>               -->   Textcursor befindet sich ueber einer Note:
                               Aendert den Soundeintrag dieser Note zum
                               aktuellen Soundeintrag gemaess Soundstatus um
                               Dabei wird die Note mit dem eventuell neuen
                               Sound gespielt und der Cursor weiterbewegt.
                            Textcursor befindet sich nicht ueber einer Note:                      
                               Der Textcursor wird weiterbewegt.
Keyboardtaste         -->   Textcursor befindet sich ueber einer Note:
                               Schreibt die gespielte Note zusammen mit dem
                               aktuellen Soundeintrag an der Cursorposition
                               ins Pattern und bewegt den Cursor weiter.
                            Textcursur befindet sich nicht ueber einer Note:
                               Schreibt den eingegebenen Zahlenwert an der
                               Textcursorposition ins Pattern und bewegt
                               den Cursor weiter.

Haelt man die Shift-Taste gedrueckt, spielt es fuer die Eingabe keine Rolle
ob zusaetzlich zum Edit Modus der Patternplay Modus eingeschaltet ist.


Cut,Copy und Paste:
-------------------
Im BLUE-Soundtracker gibt es nun endlich auch die doch so unverzichtbaren
Funktionen Cut,Copy und Paste. Um eine dieser Funktionen ausfuehren zu
koennen, muss man sich im Edit Modus befinden, ohne dass gleichzeitig
der Patternplay Modus gewaehlt ist. Es koennen immer nur Passagen einzelner
Stimmen kopiert oder herausgeschnitten werden. Hierzu bewegt man zunaechst
den Notencursor auf den Beginn des zu markierenden Abschnitts.

<Escape>   -->   Legt den Beginn des Markierungsabschnitts fest.

Wenn man den Notencursor nun zum Ende des Abschnitts bewegt hat, gibt
es drei Moeglichkeiten fortzufahren:

<Escape>   -->   Der markierte Abschnitt wird herausgeschnitten
                 und in den Copybuffer kopiert.

<Del>      -->   Der markierte Abschnitt wird geloescht
                 und in den Copybuffer kopiert. 

<F3>       -->   Der markierte Abschnitt wird einfach nur in den
                 Copybuffer kopiert. Das Pattern selbst wird dabei
                 nicht veraendert.

Da intern nicht nur der markierte Abschnitt sondern jeweils die gesamte
Notenzeile in den Copybuffer transferiert wird, kann man mit <Shift> <F5>
(siehe auch Funktionstastenbelegung) das Herausschneiden oder Herausloeschen
rueckgaengig machen.
Um den markierten Abschnitt vom Copybuffer wieder in das aktuelle Pattern
einzufuegen, hat man zwei Moeglichkeiten:

<Shift><Escape>  -->  Der Abschnitt im Copybuffer wird an der
                      aktuellen Notencursorposition eingefuegt.

<Shift><F3>      -->  Der Abschnitt aus dem Copybuffer wird ueber die ab
                      der Notencursorposition stehenden Notendaten kopiert.


Transponieren:
--------------
Hat man mit <Escape> und den Cursor-Tasten einen Notenabschnitt markiert,
kann man diesen in Halbtonschritten nach oben bzw. unten transponieren.
Fallen Noten dabei oben aus der drei Oktaven fassenden Reichweite heraus,
werden diese von unten wieder hineingeschoben und umgekehrt. Die Tasten: 

<F1>  -->  Markierter Abschnitt wird um einen Halbton nach oben transponiert.

<F2>  -->  Markierter Abschnitt wird um einen Halbton nach unten transponiert.


Funktionstastenbelegung:
------------------------
<F1>         -->  Aendert die Notendarstellung. Oktave #3 wird transponiert
                  dargestellt und ist fuer die Maus nicht zugaenglich.

<F2>         -->  Aendert die Notendarstellung. Oktave #1 wird transponiert
                  dargestellt und ist fuer die Maus nicht zugaenglich.

<Shift><F3>  -->  Kopiert den Abschnitt aus dem Copybuffer ueber die
                  ab der Notencursorposition stehenden Notendaten.

<Shift><F4>  -->  Loescht die aktuelle Notenzeile und Kopiert sie dabei
                  in den Copybuffer.

<Shift><F5>  -->  Kopiert den Copybuffer ueber die aktuelle Notenzeile.

<F6>         -->  Bewegt den Notencursor zur Notenposition #0
<F7>         -->  Bewegt den Notencursor zur Notenposition #16
<F8>         -->  Bewegt den Notencursor zur Notenposition #32
<F9>         -->  Bewegt den Notencursor zur Notenposition #48
<F10>        -->  Bewegt den Notencursor zur Notenposition #63


Sonstige Tastenbelegung:
------------------------
<Space>  -->  Neben der Funktion der Space-Taste im Edit Modus, kann man
              sie dazu verwenden, falls weder der Edit noch ein Play Modus
              eingeschaltet ist, die Notenwerte der aktuellen Stimme mit
              dem momentan eingestellten Sound zu spielen.

<Enter>  -->  Schaltet den Patternplay Modus an bzw. aus, wobei jeweils
              an der aktuellen Notenposition gestartet wird.

<Alt>    -->  Schaltet den Edit Modus an bzw. aus.

<Ctrl>   -->  Bewirkt ein kurzfristiges Stummschalten aller Stimmen. Hiermit
              ist es moeglich Abhilfe zu schaffen, falls eine Stimme 'haengt'.

<Help>   -->  Listet eine Kurzuebersicht der verfuegbaren Commands und der
              jeweiligen Bedeutungen des Infobytes. 

<Amiga>  -->  Durch zusaetzliches Betaetigen einer der Tasten <1>,...,<f>
              wird der entsprechende Sound angewaehlt.


Bedeutung der Mauszeigerfarben:
-------------------------------
Durch die Farben des Mauszeigers zeigt Soundtracker an in welchem Modus er
sich momentan befindet. Hier nun die Bedeutung der Farben:

Grau    -->  Kein besonderer Modus ist gewaehlt.
Blau    -->  Soundtracker befindet sich im Edit Modus.
Gelb    -->  Soundtracker befindet sich im Songplay Modus.
Orange  -->  Soundtracker befindet sich im Patternplay Modus.
Lila    -->  Soundtracker wartet auf eine Eingabe.
Gruen   -->  Eine Ladetaetigkeit ist in Gang.
Rot     -->  Eine Fehler ist aufgetreten oder eine Funktion wurde 'gecancelt'.


Playroutine:
------------
Im Verzeichnis BLUE dieser Diskette befinden sich die ebenfalls von BLUE
modifizierten Files 'playroutine.s' und 'playmodul.s'. Beide Files enthalten
groesstenteils den Source-Code, der im Soundtracker verwendeten Abspielroutine
und bieten zwei unterschiedliche Moeglichkeiten, Soundtracker-Songs in eigene
Demos, Intros oder Spiele zu integrieren. Waehrend das File 'playroutine.s'
auch ohne Zusatz lauffaehig ist, ist das File 'playmodul.s' dazu gedacht, die
Abspielroutine in den eigenen Sourcecode einzubinden oder ein vom eigenen
Programm aus ladbares Songmodul zu erstellen.
Die Song- bzw. Sampledaten werden in beiden Faellen folgendermassen integriert:
Zunaechst notiert man sich die Laenge des Songs und der verwendeten Samples
sowie deren zugehoerige Soundnummern. Im Seka-Assembler traegt man diese
Laengenangaben nun am Kopf der verwendeten Routine hinter den entsprechenden
'equ'-Anweisungen ein. Nachdem man das File nun assembelt hat, laedt man mit
'Read Image' die Song- bzw. Sampledaten an die entsprechenden Labels 'songdata'
bzw. 'smp#data' (das '#' steht hier fuer die Soundnummer). Nun wird das auf
diese Weise sammengefuegte Objectfile mit 'Write Object' abgespeichert. Geht
man in der beschriebenen Weise beim File 'playroutine.s' vor, ist dieses nun
als Programm startbar. Ein kleiner Tip: Als Alternative zum einzelnen einlesen
der Song und Sampledaten, kann man diese auch mit dem CLI-Befehl 'Join' in der
richtigen Reihenfolge hintereinanderkopieren und komplett einlesen.
Bindet man die Abspielroutine in den eigenen Sourcecode ein, so wird der Song
mit Aufruf der Unterroutine 'mt_init' gestartet und mit Aufruf von 'mt_end'
kann er gestoppt werden. Nochmaliges Aufrufen von 'mt_init' spielt den Song
nun wieder von vorne usw. Man hat ausserdem die Moeglichkeit, durch Loeschen
von 'mt_onoff', den Song anzuhalten und durch setzen von 'mt_onoff', von der
gleichen Position an weiterzuspielen. Man sollte allerdings auf keinen Fall
versuchen, einen mit 'mt_onoff' angehaltenen Song mit 'mt_init' wieder zu
starten. Ein Neustart mit 'mt_init' funktioniert nur nach vorherigem Aufruf
von 'mt_end'.
Weist man der Konstante 'Tempo' keinen gueltigen Tempowert zu, so wird die
Abspielgeschwindigkeit durch das im Song angegebene Tempo festgelegt. Steht
hier ebenfalls ein ungueltigen Wert, da der Song beispielsweise mit einer
alten Soundtrackerversion erstellt wurde, so wird das Tempo auf 122 gesetzt.
Dies entspricht dem Standard-Tempo des BLUE-Soundtrackers.
Da die Audio-Hardware des Amiga nur auf das ChipMem zugreifen kann, ist darauf
zu achten, dass sich die Sampledaten bei Ausfuehrung des Programms auch
tatsaechlich im ChipMem befinden. Am besten ist, man legt die Abspielroutine
ebenfalls ins ChipMem, da sie sich, wegen der hoeheren Geschwindigkeit des
FastMem, dort ab und zu 'ueberschlagen' koennte.


Playmodul:
----------
Da BLUE die Abspielroutine, wie uebrigens auch den Soundtracker selbst, in 
vollkommen relocativem Code geschrieben hat, ist es moeglich, mit dem File
'playmodul.s' ein von jedem Programm aus ladbares Modul zu erstellen, welches
saemtliche Song- und Sampledaten sowie die aufrufbare Playroutine selbst
enthaelt. Hierzu bindet man die Daten zunaechst, wie oben angegeben, in das
File 'playmodul.s' ein und speichert es als Objectfile ab. Im Verzeichnis
BLUE dieser Diskette befindet sich das Programm 'makemodul'. Das soeben
abgespeicherte Objectfile wird nun an 'makemodul' als Argument uebergeben.
Hierdurch werden einfach nur die im Objektfile befindlichen Informationen
fuer das AmigaDos entfernt, die dieses zum laden eines Programms normalerweise
benoetigt. Uebrig bleibt der Programmcode selbst, der von 'makemodul' in einem
Datenfile, das an der Endung '.mod' zu erkennen ist, abgespeichert wird.
Dieses File kann nun von jedem Programm aus an eine beliebige Adresse des
Chiprams geladen und als Unterroutine aufgerufen werden. Hierbei gilt:

Anspringen der Ladeadresse    -->  Routine mt_init
Anspringen der Ladeadresse+2  -->  Routine mt_end
Ladeadresse+4                 -->  Adresse von mt_onoff


-------------------------------------------------------------------------------
               Und nun: Viel Spass mit dem BLUE-Soundtracker!
-------------------------------------------------------------------------------
