10996
UTILITY -> Sound
© _Shareware_ (1993)
 
 
 
Digitracker v1.1
cpc
 
 

Last Update : Monday 07 July 2014 at 22 h 06

Manual n° 1

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + _____ ___ _________ ___ + + / _ ç / /ç / ______/ç / /ç + + / / ç ç / / // / _____ç// / /______ ù ù + + / / / /ç / / // / / /ç / / //_____/ç ù . ù + + / /__/ / // / // /__/ / // / / ç_____ç/ + +/________/ //__/ //________/ //__/ / + +ç________ç/ ç__ç/ ç________ç/ ç__ç/ + + _________ _______ _________ _________ ___ ___ _________ _______ + + /__ ___/ç/ ___ ç / ___ /ç/ ___ /ç/ /ç / /ç/ ______/ç/ ___ ç + + / /ç__ç/ /__/ /ç/ /__/ / / / /__/ / /__/ / / /______ç/ /__/ /ç+ + / / / / _ __/ / ___ / / / _ç_ ç/ _ __/ / ____/ç / _ __/ /+ + / / / / / ç ç ç/ /ç_/ / / /__/ /ç/ / ç ç ç/ /____ç/ / / ç ç_ç/ + +/__/ / /__/ //__/ç/__/ //__/ /________/ /__/ //__/ç/________/ç/__/ //__/ç + +ç__ç/ ç__ç/ ç__ç/ç__ç/ ç__ç/ç________ç/ç__ç/ ç__ç/ç________ç/ç__ç/ ç__ç/ + + + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ DIGITRACKER 1.1 - 14 KHZ 3 CHANNEL MONO 8 BIT SAMPEL TRACKER - 128K CPC (PLUS) ALL CODE'N'DESIGN 1993 BY PRODATRON / SYMBIOSIS THIS PROGRAM IS S H A R E W A R E THAT MEANS, THAT IT IS FREE TO COPY, PUT IT INTO YOUR SOFTWARE-LIBRARY, SPREAD IT, BUT IF YOU USE IT, YOU SHOULD SEND A DONATION OF 10DM, 4P, 6$ OR 30F TO JOERN MIKA, BERGSTR. 128, 47443 MOERS, GERMANY BUG-REPORTS AND MODULE SWAPPING ALSO WELCOME ! +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + + B E N U T Z E R - A N L E I T U N G + + + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 0.) KLEINE EINLEITUNG: _______________________________________________________________________________ Digitracker macht's endlich moeglich: Das Erstellen und Abspielen von Melo- dien, die auf digitalisierten Instrumenten und Geraeuschen (Samples) basieren. Leistungsdaten: - 64512 Bytes fuer Samples frei - 34 moegliche Pattern bei 64 Positionen im Pattern - 14000 Herz Abspielfrequenz - 96 Songpositionen moeglich - 8 Bit-Digiblaster Sound Unterstuetzung - Groesstenteils Amiga-Protracker-Effekt kompatible, 17 Effekte (Slides, Vibra- to, Arpeggios, Position-Loops, Sample-Offset...) - MOD-Converter fuer Amiga-Protrackermodule, kann Samples 1:1 oder 1:2 konver- tieren, so dass man maximal 161 KB lange Module transferieren kann. - Playercode-Generator, erzeugt Abspielroutine an beliebige Adresse, mit der Digitracker-Module in eigene Programme eingebunden werden koennen. - Leisungsstarke Abspielroutine, beliebige Startposition beim Abspielen, er- laubt Interrupts, auf Wunsch Farbequalizer und/oder Rasterbalken und mehr... - Komfortable, einheitliche Benutzerfuehrung - Highspeed auf allen Ebenen, da Programm 100% in Maschinensprache Das Programm besteht aus 3 Modulen: - Dem eigentlichen DIGITRACKER, mit dem sich Stuecke editieren und abspielen lassen. - Dem MOD-CONVERTER, mit dem AmigaProtracker-Module ins Digitracker Format kon- vertiert werden koennen. - Dem PLAYERCODE-GENERATOR, der eine externe Abspielroutine fuer Digitracker- Module erzeugen kann. 1.) DIGITRACKER _______________________________________________________________________________ Die Steuerung des Programms ist voellig einheitlich gehalten. Ausgewaehlt und/ oder verstellt wird immer mit den CURSOR-Tasten, aktiviert mit COPY, RETURN oder SPACE. Alle Operationen koennen mit ESC abgebrochen, von den Untermenues gelangt man ebenfalls mit ESC wieder ins Hauptmenue. Ein Sound besteht grundsaetzlich aus zwei Teilen, den Samples und den Pattern. Die Pattern enthalten die eigentliche Melodie und werden in der Reihenfolge ab- gespielt, wie es in der Song-Liste vorgegeben ist. Sound-Parameter (im grossen Parameter-Fenster): ----------------------------------------------- SngPos - Die aktuelle Position in der Song-Liste. Pattrn - Der Pattern, welcher in der Song-Liste bei SngPos drankommt. Height - Abweichung von der Normalhoehe, mit der der eben genannte Pattern ab- gespielt wird (in Halbtonschritten). Lenght - Song-Laenge. Anzahl der Stellen, die in der Song-Liste durchgespielt werden, bis von vorne begonnen wird. LoopTo - Nach Durchspielen der Song-Liste wird an dieser Position neu begonnen. Speed - Abspielgeschwindigkeit des Songs, genauer gesagt die Zeit in 50stel Sekunden, die zwischen zwei Position innerhalb einer Patterns vergeht. Out At - Sound-Ausgabe. A-C: Ueber einen der drei Soundchip-Kanaele. D: Ueber den Digiblaster (8Bit A-D Wandler am Druckerport des CPC wie er in der CPC Amstrad Internation Ausgabe 8/9 1991 beschrieben wurde). Der Digi- blaster ist UNBEDINGT zu empfehlen, denn er bringt nahezu Soundblaster Qualitaet auf den CPC. Sampel - Gerade fuer den Editor angewaehlter Sample. Edit-Parameter (im kleinen Edit-Fenster): ----------------------------------------- Pat - Im Editor ausgewaehlter Pattern. Oct - Gerade fuer den Editor ausgewaehlte Octave. Buf - Position im Zwischenspeicher. Len - Anzahl der Positionen innerhalb eines Patterns. Skp - Anzahl der Position die beim Editieren nach jeder Eingabe im Pattern uebersprungen werden DISC OP. - Diskettenmenue: -------------------------- LOAD SONG - Modul laden (Samples, Patterns, SongDaten), Extension:MDL SAVE SONG - Modul speichern LOAD SAMP - Sample laden, wenn noch Speicherplatz vorhanden, Extension:SMP SAVE SAMP - Sample speichern ERASE - Modul oder Sample von Diskette loeschen DRIVE A/B - Laufwerk auswaehlen USER - Pfad-Nummer einstellen Hinweis: Beim Laden eines Moduls wird das, welches sich noch im Speicher befindet, ueberschrieben. Lediglich die Pattern, welche hinter dem letzten Pattern des geladenen Songs liegen, bleiben erhalten. Dadurch ist es moeglich, Songs zu mergen. PLAY SONG - Komplettes Modul abspielen: --------------------------------------- Das Modul wird ab der aktuellen Position (SngPos) abgespielt. Nach Abbruch wird SngPos aktualisiert. PLAY PAT. - Pattern abspielen: ------------------------------ Der im Editor angewaehlte Pattern wird abgespielt. EDIT SONG - Pattern editieren: ------------------------------ Die Pattern koennen hiermit bearbeitet werden. Jeder Pattern besteht aus drei Spuren, jede davon steht fuer einen Kanal und ist wiederum unterteilt in (nor- malerweise 64) Positionen. Eine Position ist folgendermassen aufgebaut: AAB CDEE AA - Note (C,C#,D,D#...) B - Oktave (1-3) C - Nummer des Samples, welches hier abgespielt werden soll D - Commando-Nummer EE - genaue Spezifizierung des Commandos Statt der Note+Octave (AAB) kann auch nichts stehen ('---') oder ein Stopper ('Res'), der einen in dieser Spur eventuell noch anhaltenden Ton ausschaltet. Um eine Note zu setzen, bedient man sich folgender Tasten: ù Gewaehlte Octave ù Gewaehlte Octave + 1 --------+------------------------------+----------------------------- Noten: ù C# D# F# G# A# C# D# ù C# D# F# G# A# C# D# ù C D E F G A B C D E ù C D E F G A B C D E --------+------------------------------+----------------------------- Tasten: ù S D G H J L : ù 2 3 5 6 7 9 0 ù Z X C V B N M , . / ù Q W E R T Y U I O P Kommandos: ------------------------------------------------------------------------------- 0xy - Normales Abspielen, oder Arpeggio (0-X-Y). X und Y in Halbtonschritten, die auf den Grundton addiert werden. 1xx - Slide Up. Tonhoehe nach oben gleiten lassen. XX gibt die Geschwindigkeit an. Je groesser XX ist, desto schneller aendert sich die Tonhoehe. 2xx - Slide Down. Tonhoehe nach unten gleiten. 3xx - Tone Portamento. Ein Ton muss bereits angeschlagen sein. Die Note,die vor diesem Kommando steht, gibt das Ziel an, zu dem hingeglitten werden soll. XX gibt die Gleitgeschwindigkeit an. Ist XX Null, so wird der Wert ange- nommen, der zuletzt fuer dieses Kommando benutzt wurde. 4xy - Vibrato. Y gibt die Anzahl der Stufen an, die nach oben/unten ausgelenkt werden, X gibt die Groesse der Stufen an. ist XY=0 dann wird der zuletzt benutzte Wert uebernommen. 9xx - Sample Offset. Der Sample kann mit diesem Kommando von einer beliebigen Stelle aus angespielt werden. Beispiel: XX=1D => Sample wird ab dem Byte #1D00 angespielt. Bxx - Position Jump. Der Pattern wird an dieser Stelle abgebrochen und es wird an die angegebene Position in der Song-Liste gesprungen D-- - Pattern Break. Pattern wird abgebrochen, im naechsten (in der Song-Liste) wird weitergemacht. Die Werte hinter dem D Commando sind nicht von Bedeu- tung Exy - E-Kommando: Siehe unten. Fxx - Song-Geschwindigkeit. Diese kann hiermit neu eingestellt werden. 5,6,7,8,A und C werden nicht benutzt und zeigen keine Wirkung. E-Kommandos: ------------------------------------------------------------------------------- E0x - Kanalwechsel. X kan 0,1 oder 2 sein und gibt den Soundchip-Kanal an (A,B, C), auf den der Sound ausgegeben werden soll. Wird dieser auf dem Digi- blaster ausgegeben, so hat dieses Commando keine Wirkung. E1x - Fine Slide Up. X gibt an, alle wieviel 50stel Sekunden die Tonhoehe um eine Stufe erhoeht wird. Je groesser also X, desto langsamer gleitet der Ton nach oben. E2x - Fine Slide Down. E4x - Vibrato Waveform. X=0 (oder gerade Zahl): Vibrato wird als Dreiecksfunk- tion ausgefuehrt. X=1 (oder ungerade Zahl): Vibrato als Saegezahn aus- fuehren E5- - Loop Point. Position setzen zu der nach dem E6 Kommando gesprungen wird. E6x - Jump to Loop. Es wird x mal zu der Stelle mit dem letzten E5-Kommando ge- sprungen.Mit Hilfe dieser beiden Schleifenbefehle lassen sich Stellen in- nerhalb eines Pattern mehrmals wiederholen. EDx - Note Delay. Die Note,die vor diesem Kommando steht, wird erst in x 50stel Sekunden angespielt EEx - Pattern Delay. x Positionen warten, bis zur naechsten Position gewechselt wird. Es wird nach der Position mit diesem Kommando also eine Pause ge- macht, als laegen x Positionen zwischen dieser und der naechsten. E3,E7,E8,E9,EA,EB,EC und EF werden nicht benutzt und zeigen keine Wirkung. EDIT LIST - Songliste oder Sampleliste bearbeiten: --------------------------------------------------- Songliste: Diese besteht aus zwei Haelften. Auf der einen Seite stehen die Num- mern der Pattern, die an den jeweiligen Positionen abgespielt werden, auf der anderen die Hoehen-Differenzen, mit denen die Pattern abgespielt werden (in Halbtonschritten). Sampleliste: Die erste Spalte gibt den Namen an, die zweite die Laengen, die dritte den Repeat-Start und die vierte die Repeat-Laenge (kleiner 256: kein Re- peat) an. Beim Testen eines Samples mit COPY wird die eingestellte Oktave be- ruecksichtigt. Ein Wechsel dieser bringt unterschiedliche Frequenzen beim Sam- peltesten. Mit <H> wird die Lautstaerke das angewaehlten Samples halbiert. Mit <V> kann diese verstaerkt oder abgeschwaecht werden. CLEAR - Loeschen bestimmter Elemente: ------------------------------------- Es kann alles, nur bestimmte/alle Samples oder nur die Pattern geloescht wer- den. PRINTER - Ausdrucken des Modules: --------------------------------- Print-Songdatas: YES bedeutet, dass auch die Modul- (Patternliste, Song-Laenge, ...) und Sampledaten (Name, Laenge,...) gedruckt werden, bei NO werden nur die einzelnen Patterns gedruckt. First/Last Pattern: Zu druckender Patternbereich. Lines/Page: Um einen richtigen Seitenvorschub auszufuehren, muss dieser Parame- ter gesetzt werden (0=kein Seitenvorschub). 12 Zoll Papier hat normalerweise 72 Zeilen (Standard). OTHERS: ------- Setup - Grundeinstellungen aendern - Song-Transpose: Hoehenverschiebung des Songs in Halbtonschritten. Bei 1:1 Amiga-Transferierten Samples '12', bei 1:2 Uebersetzungen '0'. - Pattern-Lenght: Anzahl der Positionen innerhalb eines Patterns. - Palette-Number: 0-7 Farbwahl - Ed:PlaySamples: Normalerweise NO: In diesem Fall ertoenen im Editor Chip- Toene, die die Hoehe des Samples angeben. Dies kann aber auch verfaelscht sein. Wird auf YES geschaltet, so werden die Samples direkt im Editor ausge- geben. Das hat allerdings zur Folge, dass erst dann auf die naechste Position gesprungen wird, wenn die Samples aller drei Kanaele beendet sind. Handelt es sich bei einem der drei Samples um einen endlosen (Repeat), so wird erst nach Druck auf Space zur naechsten Position uebergegangen. Memory - Sample-Memory: Wieviel belegt und frei ist. Die Samples liegen alle in der 2. 64K Ram-Bank. - Patterndatas need...: Wichtig, wenn man Module in eigene Programme einbinden will. Hier folgt die Anzahl der Bytes (alles in Hex), die der Song in der er- sten Ram-Bank benoetigt. - Song needs...on Disc: Wichtig beim Speichern 2.) MOD-CONVERTER _______________________________________________________________________________ Zur Zeit gibt es mehrere 1000 (!!) Mod-Files (Amiga-Protracker-Format). Mit diesem Modul koennen solche ins Digitracker-MDL-Format konvertiert werden. Das MOD-Files muss zunaechst vom Amiga/PC/... zum CPC transferiert werden. Das erledigen Programme wie DOS-COPY (Face Hugger Production), die in der Lage sind, MS-DOS Disketten zum CPC zu kopieren. Parameter: ---------- - Source/Destination Drive: A/B - Sample-Transfer: 1:1 - die Samples werden direkt uebernommen. 1:2 je 2 Bytes innerhalb der Samples werden zu einem zusammengefasst, wodurch die Samples in der Laenge halbiert werden. - Sample-Volumes: NO - Die Samples bleiben unveraendert in ihrem Originalzu- stand. YES - Die Samples werden entsprechend der im MOD-File angegebenen Lautstaerke eingestellt. CONVERT MOD - Amiga-Protracker-Modul konvertieren: -------------------------------------------------- Nur moeglich, wenn das Modul nicht zuviele Patterns (>34), zuviele Songpositio- nen (>96) oder zu lange Samples (>63 KB beim 1:1 Transfer bzw. >126 KB beim 1:2 Transfer) hat. Ansonsten werden zunaechst die einzelnen Pattern konvertiert. Da MOD-Pattern aus vier Spuren/Kanaelen bestehen, muss immer einer davon entfernt werden. Da- zu kann er entweder mit den Tasten 1-4 ganz geloescht werden oder durch 'M' in einen anderen reingemischt werden. Soll letzteres geschehen,so muss die 'Source Voice' 1-4 angegeben werden, die dann in eine 'Destination-Voice' (1-3) hi- neingemischt werden soll. Wird z.B. die Tastenfolge 'M' , '1' , '2' gedrueckt, so wird der 1. Kanal in den 2. hineingemischt, der vorher der 3.war (aber jetzt der zweite ist, weil wegen Loeschung des 1. alle einen vorverschoben wurden). bei 'M', '3', '2' wird der 3. in den 2. gemischt, der auch vorher der 2. war. PRINT MOD - Amiga-Protracker-Module ausdrucken: ----------------------------------------------- Ein MOD-File wird in der Form ausgedruckt, in der man es auch vom Amiga her ge- wohnt ist. CONVERT SAMPLE - PC, Amiga oder Drumming-CPC Samples konvertieren: ------------------------------------------------------------------ In dem Untermenue kann gewaehlt werden, welche Samples man konvertieren will: - VOC-Files: Samples, die auf PCs benutzt werden (Soundblaster). - WAV-Files: Samples, die auf PCs speziell unter Windows benutzt werden. - SAM-Files: Amiga-Samples. - INS-Files: Samples fuer 'Drumming-CPC', das Face Hugger Programm aus der CPCAI, welches zur Demonstration des Digiblasters diente. Beim Konvertieren wird ebenfalls der Parameterpunkt 'Sample-Transfer' beachtet (1:1 oder 1:2). Sollen Amiga-Samples ('SAM') transferiert werden, so muss deren Laenge vom Be- nutzer aus eingestellt werden, da es mit AMSDOS nicht moeglich ist, deren ge- naue Laenge festzustellen. 3.) PLAYERCODE-GENERATOR _______________________________________________________________________________ Dieser erlaubt das Erzeugen der Digitracker-Modul-Abspielroutine an (fast) eine beliebige Adresse. Der Bereich von #4000 bis #7FFF und von #0000 bis #0200 kann nicht verwendet werden, da diese von der Routine zum Bankswitching, bzw. fuer die Interruptverwaltung benutzt werden. Eine abgespeicherte Abspielroutine ist etwa 4KB lang und leistet folgendes: - Laden eines Moduls - Abspielen des geladenen Moduls Die Samples eines Moduls sollten zusammen nicht laenger als 64256 Bytes sein (#FB00). Im folgenden nun die Benutzung der Routine, wobei die angegebenen Offset-Werte auf die Startadresse der Routine addiert werden muessen, um die richtige Adres- se zu bekommen. In den angegebenen Beispielen wird immer davon ausgegangen,dass die Routine an Adresse &3000 beginnt. + 00 => Laden eines Moduls unter Basic: CALL Anfadr+00 (,Start-Adresse) Ein Modul, das bereits geoeffnet sein muss, wird geladen und initiali- siert. 'Start-Adresse' gibt an, an welche Stelle die Song- und Pattern- Daten in den Speicher in die erste Ram-Bank geladen werden. Wird dieser Parameter nicht mit angegeben, so wird &5600 angenommen. Die Sample- daten werden immer in die zweite Ram-Bank ab #200 geladen (davor wird der Speicher fuer Tabellen und Routinen benoetigt). Es muss immer darauf geachtet werden, dass die Patterndaten nicht in bereits benutzte Speicherbereiche geladen werden (z.B.Abspielroutine!). Beispiel: OPENIN"SOUND.MDL":CALL &3000,&4000:CLOSEIN Laedt das Modul 'Sound.Mdl' wobei die Patterndaten ab Adresse &4000 ab- gelegt werden. + 03 => Abspielen eines Moduls unter Basic: CALL Anfadr+03 (,Optionswert (,Start/Patternnummer)) Ein geladenes Modul wird abgespielt. Wenn der 'Start/Patternnummer'-Pa- rameter oder beide weggelassen werden, wird automatisch 0 angenommen. Das Optionsbyte ist in Bits unterteilt, die folgende Bedeutung haben: Bit 0,1 => Ausgabe-Kanal: 0-2 Ausgabe ueber einen Soundchip-Kanal, 3 Ausgabe ueber den Digiblaster. Bit 2 => =0: Songplay. Das komplette Modul wird abgespielt. Der zwei- te Parameter gibt dabei dann die Startposition an. =1: Patternplay. Nur ein Pattern wird gespielt. Die Nummer davon gibt dann der zweite Parameter an. Bit 3 => =1: Rasterbalken beim Abspielen einschalten Bit 4 => =1: Farbequalizer beim Abspielen. Die Farben 1,2 und 3 stel- len die Equalizer fuer die jeweiligen Kanaele dar. Bit 5 => =0: Bereich von #100 bis #200 sichern. Da dieser Bereich von der Routine waehrend des Abspielens benutzt wird, wird der direkt hinter ihr zwischengespeichert. =1: Benoetigt man den genannten Bereich nicht, und will man lieber den Bereich direkt hinter der Abspielroutine freihal- ten, so kann man dieses Bit auf 1 setzen Bit 6 => =1: Abfrage der Tasten F0-F9. Normalerweise wird die Player- routine nach Druck auf Space abgebrochen. Wird dieses Bit gesetzt, so werden die Funktionstasten abgefragt, und zwar soviele, wie in einer spaeter beschriebenen Variable festge- legt werden. Die Nummer der gedrueckten F-Taste steht dann in einer weiteren Variable. Bit 7 => =1: Interrupts zulassen. Die Abspielroutine stellt einen ei- genen Interrupt-Handler zur Verfuegung, der eingesetzt wird, wenn dieses Bit gesetzt ist. Pro Frame-Fly (der jede 50stel Sekunde eintritt) finden 6 Interrupts statt. In einer spae- ter beschriebenen Tabelle muessen dann die Adressen der 6 Routinen stehen, die abwechselnd vom Interrupt-Handler auf- gerufen werden. Beispiele: - CALL &3003,3 => spielt den Sound ueber Digiblaster ab. Keinerlei Zu- saetze. - CALL &3003,1+4,3 => spielt den dritten Pattern auf Kanal B des Sound- chips ab. - CALL &3003,8+32 => spielt Sound ueber Kanal A mit Rasterbalken ab, wo- bei der Bereich von #100 bis #200 nicht gesichert wird. - POKE &3000+12,5 CALL &3003,3+16+6 PRINT PEEK(&3000+13) => spielt Sound ueber Digiblaster mit Farbequali- zern ab und fragt dabei die ersten 5 F-Tasten ab. Nach Beendigung wird die gedrueckte F-Taste ausgegeben. - CALL &3003,128,10 => spielt Sound ab Position 10 ab, wobei die Inter- rupts zugelassen werden. + 06 => Laden eines Moduls unter Maschinensprache: HL=Adresse Wie unter Basic muss auch hier die Datei bereits geoeffnet sein. + 09 => Abspielen einer Moduls unter Maschinensprache: A=Optionsbyte, B=Start- position/Patternnummer + 12 => Variable: Anzahl der Funktionstasten (1-10), die abgefragt werden, wenn Bit 6 des Optionsbyte gesetzt ist. <5> bedeutet z.B., dass die Tasten f0 bis f4 abgefragt werden. + 13 => Nach Rueckkehr aus der Playerroutine laesst sich hiermit die Nummer der gedrueckten F-Taste (falls Options-Bit 6 gesetzt war) feststellen: Nummer der gedrueckten F-Taste = Byte 12 - Byte 13 Wird z.B. bei Offset 12 (Anz. der abgezufragenden Funktionstasten) eine 5 gepoket und wird beim Abpspielen die f3-Taste gedrueckt,so steht hier eine 2 (=5-3). + 14 => Dieses Byte wird beim Begin des Abspielens auf 0 gesetzt.Wenn nun waeh- rend das Abspielens sein Wert geaendert wird (durch eine Interrupt-Rou- tine), so wird das Abspielen abgebrochen. Damit ist es moeglich, die Playerroutine auch auf eine andere Art als 'Space' oder die Funktions- tasten zu verlassen. + 15 => Pen-Nummer des Rasterbalkens. 0-15, 16 steht fuer den Border. + 16,17 => Farbe des Rasterbalkens und des Borders. Diese muessen in codierter Form vorliegen. Im folgenden die Tabelle mit den codierten Farbwerten: 00 - 84 04 - 88 08 - 77 12 - 94 16 - 71 20 - 83 24 - 74 01 - 68 05 - 93 09 - 86 13 - 64 17 - 79 21 - 90 25 - 67 02 - 85 06 - 76 10 - 70 14 - 95 18 - 82 22 - 89 26 - 75 03 - 92 07 - 69 11 - 87 15 - 78 19 - 66 23 - 91 + 18-33 => Diese Tabelle enthaelt die Farbwerte die bei den Farbequalizern durchlaufen werden. Auch sie muessen in codierter Form vorliegen. + 34-45 => Adressen der Interrupt-Routine. Hier folgen sechs 16 Bit-Adressen, die auf die sechs Interrupt-Routinen zeigen. Normalerweise haben alle 6 Adressen den Wert #F, so dass bei eingeschalteten Interrupts immer an die Stelle #F gesprungen wird, wo normalerweise ein RET-Befehl steht. Anmerkungen zu den Interrupt-Routinen: - Diese duerfen nicht die Index-Register veraendern (IX, IY). Bei Ge- brauch muessen diese daher zwischengespeichert werden und am Ende mit den alten Werten geladen werden. - Die Interrupt-Routinen werden mit RET abgeschlossen. - Die Interrupt-Routinen duerfen an jeder beliebigen Stelle in der er- sten Ram-Bank liegen. - Jede der sechs Interrupt-Routinen wird einmal in einer 50stel Sekunde aufgerufen. - Fuer Democoder koennte noch folgendes wichtig sein: Die erste der sechs Interrupt-Routinen bekommt den Interrupt, der di- rekt nach dem Frame-Fly kommt.Die nachfolgenden Interrupts gehen dann der Reihe nach an die uebrigen Interrupts. - Die Interrupt-Routinen sollten natuerlich moeglichst kurz sein.10 Ra- sterzeilen ist das absolute Maximum. - Je mehr Prozessorzeit durch dir Int-Routis verschluckt wird, desto tiefer und langsamer wird die Soundausgabe. - Bei eingeschalteten Interrupts wird uebrigens noch der Bereich ab #100 und tiefer fuer den Stack-Pointer benutzt! 4.) AUFBAU DER MDL-DATEIEN (MODULE) _______________________________________________________________________________ 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: 8*... - Samplelaenge (1 Word) - Repeatbegin (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 => 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 (8 Bit, Vorzei- chenlos. _______________________________________________________________________________ Momentan gibt es fuer den Digitracker bereits weit ueber 200 Module. Wer re- gistriert ist, kann bei mir kostenlos die Modulliste anfordern. Die gewuensch- ten Module kopier ich gegen Rueckporto und Disx. DAS PROGRAMM BESTEHT AUS 9 5 8 1 ZEILEN ASSEMBLER QUELLTEXT. prodatron/SYMBIOSIS, 24.09.1993 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + + A + + ________________________________________________________________ + + / ______________________________________________________________/ç + + / /ç_____________________________________________________________ç/ + + / / / / /ç/ /ç/ _ _ /ç/ __ ç / /ç/ __ /ç/ ____/ç/ /ç/ ____/ç + + / /_/_ / /_/ / / // // / / /_/ /ç/ / / /ç/ / / /___ ç/ / / /____ç/ + + /___ /ç/___ / / //_// / / __ / / / / / / / /___ /ç/ / /___ /ç + + ____/ / /ç__/ / / / ç / / / /_/ / / / / /_/ / /___/ / / / /ç__/ / / + + /_____/ / /___/ /_/ / /_/ /_____/ /_/ /_____/ /_____/ /_/ / / / / + + _ç_____ç/__ç___ç/ç_ç/__ç_ç/ç_____ç/ç_ç/ç_____ç/ç_____ç/ç_ç/___/ / / + + /_______________________________________________________________/ / + + ç_______________________________________________________________ç/ + + + + PRODUCTION + + + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


Goto Top
CPC-POWER/CPCSOFTS, programming by Kukulcan © 2007-2021 all rights reserved.
Reproduction forbidden without any express authorization. All the game titles used belong to their respective owners.
Hébergement Web, Mail et serveurs de jeux haute performance