(sorry guys, only in german!) Die Song-Module (MDL-Files) liegen im ASCII-Format vor und bestehen aus zwei Bloecken: - Der erste Block enthaelt den Datenkopf (Songname, Laenge, Songliste usw...) und die Pattern. Dieser wird immer in die erste Ram-Bank geladen. - Der zweite Block besteht aus den in der angegebenen Reihenfolge hintereinan- derliegenden Samples. Die ersten beiden Bytes geben die Laenge des ersten Blockes an, Bytes 3 und 4 die Laenge des zweiten Blockes. Die Laenge des ersten laesst sich mit folgender Formel ausrechnen: Laenge = 512 + 9 * Patternlaenge * Patternanzahl Die Laenge des zweiten Blockes erhaelt man, wenn man die Laengen aller Samples addiert. Dahinter folgt direkt der erste Block. 1. Block: Song-Kopf und Pattern ------------------------------- - Songkopf: Dieser ist 512 Bytes gross und folgendermassen aufgebaut: + 000 => Modulname (8 Bytes) + 008 => Namen der 16 Samples, auch jeweils 8 Bytes + 136 => Songliste 2*96 Bytes. Das erste Byte gibt jeweils die Patternnummer, das zweite die Hoehe (Transposewert in Halbtonschritten, normalerweise 0) an + 328 => Sampledaten: 16*... - Samplelaenge (1 Word) - Repeatbeginn (1 Word) - Repeatlaenge (1 Word). + 424 => Songlaenge (1 Byte). + 425 => Patternlaenge (1 Byte) kann 1-99 sein. Normalerweise 64, gibt die An- zahl der Positionen innerhalb eines Pattern an + 426 => Loop To (1 Byte). Position in Songliste, zu der nach Songende gesprun- gen wird + 427 => Songspeed. Frames zwischen zwei Noten (normalerweise 6) + 428 => Songtranspose, liegt zwischen 0 und 12(in Halbtonschritten). + 429 => Modul-Version. 0 bedeutet, dass die Samples in diesem Modul in 8-Bit vorliegen, Bei 7-Bit Samples (neue Version) steht hier eine 1. + 430 => Volumeuntergrenze. Gibt an,ab welchem Wert sich das C-Kommando wie ein Stopper verhalten soll. + 431 => Ab hier sind alle Bytes bis Offset 511 unbenutzt und daher 0. Sie sind fuer eventuelle Erweiterungen vorgesehen - Pattern: Hier folgenden die Informationen fuer die belegten Pattern. Jede Po- sition (normalerweise gibt es davon 64 pro Pattern) besteht aus 3*3 Bytes (3 Bytes fuer jeden der drei Kanaele). Die drei Bytes pro Kanal haben folgende Bedeutung: - 1 => Note. 0 bedeutet nichts ('---'), 1-36 stellen die Noten fuer die 3 Ok- taven dar (1=C-1,2= C#1,3=D-1,....35=A#3,36=B-3), 37 steht fuer einen Stopper ('Res') - 2 => Das Highnibble dieses Bytes gibt die Samplenummer an,das Lownibble die Effectnummer. - 3 => Die beiden Nibbles dieses Byte geben die genaue Spezifizierung des Ef- fekts an. 2. Block: Samples ----------------- Der 2. Block, der direkt hinter dem ersten steht, enthaelt die Sampledaten. Die Samples liegen in der vorgegebenen Reihenfolge hintereinander (7 Bit, Vorzei- chenlos. _______________________________________________________________________________ At this moment there are over 300 DIGITRACKER-modules. If you are registered, you will get the complete module-list by requestion. You get all modules you want, if you send me back-postage and disx. DIGITRACKER CONSISTS OF 1 1 0 0 0 LINES OF ASSEMBLER-SOURCECODE. prodatron/SYMBIOSIS, 19.11.1993