FX-EDITOR - Soundeffekte voll im Griff - ----------------------------------------
Für all diejenigen unter Ihnen, die es sich mit Soundeffekten für selbstpro- grammierte Spiele schwer tun, haben wir ein ganz besonderes Programm auf dieser MD: den "FX-Editor", mit dem es sehr Einfach wird, die Register des SID voll im Griff zu haben, und diesem armen, kleinen Soundchip die unglaublichsten Soundeffekte zu entlocken! 1) ZUM PROGRAMM Laden Sie das Programm zunächst mit LOAD"FX EDITOR",8 und starten Sie es mittels 'RUN'. Hiernach erscheint auch schon gleich der Editor auf dem Bild- schirm, in dem Sie in zwei Fenstern di- verse Soundoptionen einstellen können. Steuerfunktionen des Programms werden über einzelne Tasten aufgerufen, die wir in einem eigenen Kapitel weiter unten besprechen wollen. Außer dem FX-Editor befinden sich auf dieser MD auch noch ein File namens "EXAMPLE-EFFECTS" mit 16 Beispielsounds. Außerdem ist jeder dieser 16 Sounds auch einzeln auf Diskette vorhanden, wobei man ein solches Soundfile am Präfix "SND." erkennen kann. Ich empfehele Ih- nen die Beispielsounds einmal in den Editor zu laden, und übungshalber ein wenig an ihren Werten herumzuexperimen- tieren. 2) DER EDITOR Im Editor können Sie nun die verschie- densten Sound-Parameter einstellen. Hierbei ist das hellgraue Fenster in der Mitte links des Bildschirms für allgei- meine Einstellungen an einem Sound ge- dacht, die eher eine Steuerfunktion für die Abspielroutine darstellen. Im dun- kelgrauen Fenster in der Mitte rechts werden Einstellungen direkt am Soundchip des 64ers vorgenommen. Sie haben einen direkten Einfluß auf den Klang eines Effekts. Mit den Cursortasten können Sie nun ei- nen in allen Farben schillernden Cursor durch die einzelnen Eingabefelder beider Fenster bewegen. Bewegungen nach links und rechts verschieben den Cursor dann entweder innerhalb eines Feldes, oder lassen ihn zum jeweils anderen Fenster springen. Mit Bewegungen nach oben und unten können Sie zwischen den einzelnen Eingabefeldern eines Fenstern wechseln. Alle Eingaben werden in hexadezimaler Schreibweise gemacht, so daß nur die Tasten von '0' bis '9', sowie von 'A' bis 'F' erlaubt sind. Eingabefelder, in denen Texte stehen (z.B. "ON" oder "OFF") sind nur als Schalter gedacht, und werden mit Hilfe der 'RETURN'-Taste in ihr jeweiliges Gegenteil umgewandelt. Änderungen, die Sie an den einzelnen Parametern machen werden übrigens sofort nach der Eingabe übernommen und müssen nicht explizit bestätigt werden. Kommen wir nun zur Bedeutung der einzel- nen Parameter: "EFFECT" gibt die Nummer des gerade edi- tierten Effekts an. Da der FX-Editor maximal 16 dieser Effekte verwaltet, können Sie hier nur eine der Ziffern von 0-9, bzw. Buchstaben von A-F eingeben. Die Daten des eingegebenen Effekts wer- den dann automatisch aus dem Speicher in die Editierfenster übertragen, von wo aus sie bearbeitet werden können. Die beiden Werte "TIMER START" und "TI- MER END" bestimen start und Endwert des Soundtimers. Er legt zunächst einmal die Spieldauer eines Effektes fest. Gleich- zeitig wirkt er sich jedoch auch auf die Soundfrequenz aus. Sein Wert wird im Low-Byte der Stimmenfrequenz eingetra- gen, so daß bei unterschiedlichen Timer- werten auch unterschiedliche Soundeffek- te entstehen. Start- und Endwert des Timers sind somit beliebig einstellbar. Zusammen mit dem Timer-Mode, kann man auf- und abwärtszählende Timer program- mieren. "INC" steht für "Aufwärtszäh- len", "DEC" für "Abwärtszählen". In er- sterem Fall sollte der Startwert immer kleiner als der Endwert sein. Im zweiten Zählmodus ist das Gegenteil der Fall. Dennoch müssen Sie sich nicht zwingend daran halten. Wählen Sie z.B. im "INC"- Zählmodus einen Endwert bestimen, der kleiner als der Startwert ist, so wird von diesem Wert bis $FF gezählt, und anschließend wieder von $00 bis zum End- wert. Dadurch kann man Frequenzsprünge erreichen, die u.U. auch sehr interes- sante Effekte erzeugen. Mit "TIMER STEP" stellen Sie die Zählgeschwindigkeit ein. Hier gilt: je kleiner der Wert, desto schneller wird gezählt. Maßgebend ist hier das Grundtiming der Playerroutine (s.u.). Sie sollte nämlich 50 Mal pro Sekunde aufgerufen werden. Stellen Sie nun z.B. den Wert 0, als Zählergeschwin- digkeit ein, so wird bei jedem Aufruf der Zähler verändert und damit auch der Sound modifiziert. Beim einem Wert von 1 geschieht das nur jeden zweiten Aufruf, weswegen sich der Sound nur 25 Mal pro Sekunde verändert, und so fort... Der Parameter "VOICE 2 DIFFRENCE" be- stimmt nun noch den Frequenzunterschied von Stimme 1 zu Stimme 2. Der hier ste- hende Wert wird immer auf den aktuellen Timerwert hinzuaddiert, so daß sich die Frequenz von Stimme 2 mit Stimme 1 mit- verändern kann. Hierbei dürfen keine Werte größer als $3F verwandt werden. Möchten Sie, daß Stimme 2, dieselbe Fre- quenz wie Stimme 1 spielt, so geben Sie Null an. Soll Sie mit einer höheren Fre- quenz gespielt werden, so sollte immer ein gerader Wert angegeben werden. Unge- rade Werte erzeugen Klirreffekte (siehe "SND.GLASSBREAK"). Soviel also zu den Basiseinstellungen eines Sounds. Im dunkelgrauen, rechten Fenster können nun direkte Soundeinstel- lungen vorgenommen werden. Sie bestimmen hauptsächlich Klangverlauf, Wellenform und Grundfrequenz eines Effekts, und sind im Prinzip direkt mit den SID- Registern zu vergleichen. Sie sehen hier nun zwei Spalten, in denen links die Daten für Stimme 1 und rechts die Daten für Stimme 2 bestimmt werden. "FREQ" gibt dabei die Grundfrequenz eines Tons an. Der hier eingetragene Wert ent- spricht dem Wert, der in das High- Register der Frequenz einer Stimme ge- schrieben wird. Der Wert des Low- Registers wird ja vom Timer moduliert, weswegen es hier nicht erscheint. Die Parameter "RATIO LO" und "RATIO HI" geben den Pulsabstand einer ggf. verwen- deten Rechteckswelle an. Das Editieren dieser Werte ist nur dann notwendig, wenn Sie auch tatsächlich eine Rech- teckswelle für die entsprechende Stimme gewählt haben. Bei "WAVE" wird nun die eigentliche Wel- lenform gewählt und eingeschaltet. Hier- bei haben die linke und rechte Ziffer eines einstellbaren Wertes verschiedene Bedeutungen. Die linke Ziffer steht für die Art der Wellenform. Hier eine Tabel- le mit den einzelnen Werten für die vier Grundwellen:
Wert Wellenform ---------------------
$0x keine Wellenform $1x Dreieckwelle $2x Sägezahnwelle $4x Rechteckwelle $8x Rauschen
Das "x" steht hier jeweils für einen beliebigen Wert in der rechten Hälfte des Wave-Wertes. Sie können übrigens auch die ersten drei Wellenformen mitei- nander kombinieren, indem Sie ihre Werte aufeinander aufaddieren. Der Wert 5 (=1+4) schaltet z.B. Dreieck- und Recht- eckwelle gleichzeitig ein. Die rechte Ziffer des Wave-Wertes be- stimmt hauptsächlich, ob die Stimme ein- oder ausgeschaltet sein soll. Ist sie "1", so ist die Stimme eingeschaltet und auch hörbar. Ist sie "0", so ist die entsprechende Stimme abgeschaltet. Ist für sie jedoch eine Wellenform festge- legt, so kann sie dennoch eine Auswir- kung auf die andere Stimme haben. Möch- ten Sie eine Stimme ganz abschalten, so müssen Sie den Wert $00 in das Wave- Register eintragen. In der rechten Hälf- te des Wave-Wertes von Stimme 2 bewirken die Ziffern "3", "5" oder "7" Frequenz- modulationen von Stimme 1. Auf diese Weise sind recht interessante Effekte zu erzielen, die Sie unbedingt einmal aus- probieren sollten. In der Zeile "ATT/DEC" kann eingestellt werden, mit welcher Geschwindigkeit die entsprechende Stimme zu ihrer Maximal- lautstärke anschwellen soll (linke Zif- fer), und wie schnell sie danach wieder abklingt (rechte Ziffer). Je größer hier ein Wert ist, desto langsamer läuft die entsprechende Operation ab ("0"=Sofort volle/keine Lautstärke, "F"=sehr langsa- mes an-/abklingen). Die Funktion dieses Wertes entspricht dem "Attack/Decay"- Registers des SID. "HOLD" bestimmt, wie lange ein Ton, nach Anschwellen auf seine Maximallautstärke, gehalten werden soll (linke Ziffer) und wie lange es dauern soll, bis er nach seinem Abschalten schließlich ganz ver- stummt (rechte Ziffer). Dieser Wert ent- spricht dem "Sustain/Release"-Register des SID. "GLIDE" gibt an, ob die entsprechende Stimme sich in der Frequenz nach dem Timer richten soll (wie anfangs be- schrieben), oder nicht (bleibt dann konstannt auf der Frequenz von "FREQ" stehen). Schalten Sie hierzu einfach mit "ON"/"OFF" das Gliding an oder aus. "SUSTAIN" bestimmt, ob die Stimme bei jeder Timeränderung kurz unterbrochen werden soll, oder nicht. Ist letzteres der Fall, so klingt die Stimme etwas weicher. Ansonsten erscheint sie etwas unruhiger im Klangverlauf (in Kombina- tion mit den anderen Parametern kann man auch hiermit sehr interessante Effekte erzielen). 3) DIE TASTENFUNKTIONEN Kommen wir nun noch zu einigen Funktio- nen des Prgramms, die durch Drücken von bestimmten Tasten aufgerufen werden. Sie stellen die eigentliche Programmbedie- nung dar: 'SPACE' Hiermit wird der momentan eingestellte Soundeffekt abgespielt, so daß Sie ihn auf seinen Klang hin testen können. 'L' Dient dem Laden einer ganzen Effektpa- lette. Die Funktion lädt dabei aus einem File gleich alle 16 Sounds des Editors in den Speicher. Geben Sie hierzu ledi- glich den Namen des zu ladenden Files an, und bestätigen Sie mit 'RETURN'. Möchten Sie den Ladevorgang abbrechen, so drücken Sie 'RUN/STOP'. Tippfehler können mit der 'DEL'-Taste korrigiert werden. Diese Bedienung bei der Eingabe von Filenamen gilt übrigens auch für alle anderen Lade- und Speicherfunktio- nen. 'S' Speichert alle 16 sich im Speicher be- findlichen Soundeffekte zusammen mit der Sound-Player-Routine auf Diskette ab. Geben Sie hierzu einfach den Namen des zu speichernden Files an, und bestätigen Sie mit 'RETURN'. 'H' Gibt ein englische Hilfstext auf dem Bildschirm aus, von dem Sie durch zwei- maligen Druck auf die 'SPACE'-Taste wie- der zum Editor gelangen. 'X' Dient dem Kopieren eines Effekts auf einen anderen. Drücken Sie diese Taste, so geben Sie lediglich nacheinander die Ziffer des Quell- und des Zielsounds ein, um die entsprechenden Soundeinstel- lungen umzukopieren. Die Werte des Zie- leffekts gehen dabei verloren! '$' Lädt das Inhaltsverzeichnis der einge- legten Diskette, und zeigt es auf dem Bildschirm an. Hierbei können Sie die Ausgabe durch Gedrückthalten der 'CTRL'- Taste anhalten, oder aber durch 'RUN/ STOP' ganz stoppen. Mit 'SPACE' gelangen Sie daraufhin wieder zum Editor zurück. 'P' Hiermit kann die Priorität der einzelnen Sounds untereinander verändert werden. Dies bestimmt die Art und Weise, wie die Sound-Player-Routine später die Sounds abspielen soll. Dieser Wert teilt der Player-Routine mit, wie wichtig ein Sound ist oder nicht. So ist ein Explo- sionsgeräusch sicherlich wichtiger als das Grundgeräusch, das ein Raumschiff beim Fliegen macht. Da der Player nun immer nur einen Sound gleichzeitig ab- spielen kann, muß er wissen, ob ein neuer Sound wichtig genug ist, um einen evtl. schon laufenden Sound zu unterbre- chen. Hat der angeforderte, zweite Sound eine höhere Priorität, so unterbricht er den laufenden Sound und ist sofort hör- bar. Hat er eine niedrigere Priorität, so wird ein einfach ignoriert. Nach drücken der 'P'-Taste können Sie nun nacheinander die 16 Sounds in ihrer Rei- henfolge vom letztwichtigsten bis zum meistwichtigsten Sound eingeben. Hierbei darf ein Effekt nicht zweimal aufgeführt werden und es muß jeder Effekt einmal in der Liste erscheinen. Haben Sie nach Aufruf der Funktion noch keine Effekt- nummer angegeben, so können Sie immer noch mit 'RUN/STOP' abbrechen. Andern- falls müssen Sie alle 16 Effekte einge- ben (Abbruch ist dann unmöglich!). 'Z' Diese Funktion dient dem Speichern eines einzelnen Effekts auf Diskette. Sie wer- den hierbei zunächst nach der Nummer des zu speichernden Sounds gefragt. Nach deren Eingabe muß nur noch ein Filename bestimmt werden, dem automatisch der Präfix "SND." vorangestellt wird.
'K' Hiermit laden Sie einen einzelnen Sound
in den Editor. Hierbei werden Sie zunächst wieder gefragt, an welche Num- mer der Sound geladen werden soll. Nach Eingabe eriner Ziffer von '0' bis 'F' wird dann wieder zur Filenamenseingabe verzweigt. Auch hier wird der Präfix "SND." automatisch vorangestellt und muß nicht explizit angegeben werden. 4) DIE SOUND-PLAYER-ROUTINE Ein mit der 'S'-Funktion des Programms gespeichertes File enthält automatisch auch die Abspielroutine des FX-Editors. Ein solches File muß absolut (mit ",8,1") in den Speicher geladen werden. Es belegt immer den Adressbereich von $4000 bis $4300. Um nun einen Sound ab- zuspielen sollten Sie zunächst eimal die Grundlautstärke des SID festlegen (für volle Laustärke: "POKE54296,15"). Vor der eigentlichen Benutzung muß der Pla- yer nun initialisert werden. Dies kann ebenso getan werden, um einen evtl. noch laufenden Sound absichtlich abzuschal- ten. Dies tun wir, indem wir mit dem Wert $FF im Akku des Prozessors, die Playerroutine bei $4000 aufrufen. Hie- raufhin ist der Player zum Abspielen der einzelnen Sounds bereit und ein evtl. noch aktiv gewesener Sound abgeschaltet. Hierzu müssen wir lediglich die gewün- schte Soundnummer in den Akku laden und ebenfalls auf Adresse $4000 springen. Damit der Effekt nun wirklich auch hör- bar ist, muß die Interruptroutine des Players 50 Mal pro Sekunde aufgerufen werden. Sie beginnt bei $4003 und sollte über einen CIA-IRQ angesprungen werden. Um herauszufinden, ob gerade ein Sound gespielt wird, oder nicht, kann die Adresse $40FE ausgelesen werden. Steht hier der Wert $FF, so ist kein Sound aktiv. Jeder andere Wert zeigt an, daß sich gerade ein Effekt durch die SID- Register bewegt.
(ub)