Magic Disk 64

home to index to text: MD9403-UTILITIES-FX-EDITOR.txt
                FX-EDITOR               
     - Soundeffekte voll im Griff -     

Für all diejenigen unter Ihnen, die es sich mit Soundeffekten für selbstprogrammierte 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 Bildschirm, in dem Sie in zwei Fenstern diverse 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 Ihnen die Beispielsounds einmal in den Editor zu laden, und übungshalber ein wenig an ihren Werten herumzuexperimentieren.
2) DER EDITOR Im Editor können Sie nun die verschiedensten Sound-Parameter einstellen.
Hierbei ist das hellgraue Fenster in der Mitte links des Bildschirms für allgeimeine Einstellungen an einem Sound gedacht, die eher eine Steuerfunktion für die Abspielroutine darstellen. Im dun- kelgrauen Fenster in der Mitte rechts werden Einstellungen direkt am Soundchip des 64 ers vorgenommen. Sie haben einen direkten Einfluß auf den Klang eines Effekts.
Mit den Cursortasten können Sie nun einen 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 einzelnen Parameter:
" EFFECT" gibt die Nummer des gerade editierten 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 werden 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. Gleichzeitig wirkt er sich jedoch auch auf die Soundfrequenz aus. Sein Wert wird im Low-Byte der Stimmenfrequenz eingetra- gen, so daß bei unterschiedlichen Timerwerten auch unterschiedliche Soundeffekte entstehen. Startund Endwert des Timers sind somit beliebig einstellbar.
Zusammen mit dem Timer-Mode, kann man aufund abwärtszählende Timer programmieren." INC" steht für " Aufwärtszählen"," DEC" für " Abwärtszählen" . In ersterem 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 Endwert. Dadurch kann man Frequenzsprünge erreichen, die u. U. auch sehr interessante 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ählergeschwindigkeit 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" bestimmt nun noch den Frequenzunterschied von Stimme 1 zu Stimme 2 . Der hier stehende Wert wird immer auf den aktuellen Timerwert hinzuaddiert, so daß sich die Frequenz von Stimme 2 mit Stimme 1 mitverändern kann. Hierbei dürfen keine Werte größer als $3 F verwandt werden.
Möchten Sie, daß Stimme 2, dieselbe Frequenz wie Stimme 1 spielt, so geben Sie Null an. Soll Sie mit einer höheren Frequenz 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 Soundeinstellungen 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 entspricht dem Wert, der in das High-Register der Frequenz einer Stimme geschrieben 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 Rechteckswelle für die entsprechende Stimme gewählt haben.
Bei " WAVE" wird nun die eigentliche Wellenform gewählt und eingeschaltet. Hierbei haben die linke und rechte Ziffer eines einstellbaren Wertes verschiedene Bedeutungen. Die linke Ziffer steht für die Art der Wellenform. Hier eine Tabelle 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 miteinander kombinieren, indem Sie ihre Werte aufeinander aufaddieren. Der Wert 5(=1+4) schaltet z. B. Dreieckund Rechteckwelle gleichzeitig ein.
Die rechte Ziffer des Wave-Wertes bestimmt hauptsächlich, ob die Stimme einoder 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 festgelegt, so kann sie dennoch eine Auswirkung auf die andere Stimme haben. Möchten Sie eine Stimme ganz abschalten, so müssen Sie den Wert $00 in das Wave-Register eintragen. In der rechten Hälfte des Wave-Wertes von Stimme 2 bewirken die Ziffern "3","5" oder "7" Frequenzmodulationen von Stimme 1 . Auf diese Weise sind recht interessante Effekte zu erzielen, die Sie unbedingt einmal ausprobieren sollten.
In der Zeile " ATT/ DEC" kann eingestellt werden, mit welcher Geschwindigkeit die entsprechende Stimme zu ihrer Maximallautstärke anschwellen soll ( linke Ziffer), 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 langsames 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 verstummt ( rechte Ziffer) . Dieser Wert entspricht dem " Sustain/ Release"- Register des SID.
" GLIDE" gibt an, ob die entsprechende Stimme sich in der Frequenz nach dem Timer richten soll ( wie anfangs beschrieben), 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 Kombination mit den anderen Parametern kann man auch hiermit sehr interessante Effekte erzielen) .
3) DIE TASTENFUNKTIONEN Kommen wir nun noch zu einigen Funktionen des Prgramms, die durch Drücken von bestimmten Tasten aufgerufen werden. Sie stellen die eigentliche Programmbedienung 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 Effektpalette. Die Funktion lädt dabei aus einem File gleich alle 16 Sounds des Editors in den Speicher. Geben Sie hierzu lediglich 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 Ladeund Speicherfunktionen.
' S' Speichert alle 16 sich im Speicher befindlichen 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 zweimaligen Druck auf die ' SPACE'- Taste wieder 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 Quellund des Zielsounds ein, um die entsprechenden Soundeinstellungen umzukopieren. Die Werte des Zieleffekts gehen dabei verloren!
'$' Lädt das Inhaltsverzeichnis der eingelegten 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 Explosionsgeräusch sicherlich wichtiger als das Grundgeräusch, das ein Raumschiff beim Fliegen macht. Da der Player nun immer nur einen Sound gleichzeitig abspielen kann, muß er wissen, ob ein neuer Sound wichtig genug ist, um einen evtl. schon laufenden Sound zu unterbrechen. Hat der angeforderte, zweite Sound eine höhere Priorität, so unterbricht er den laufenden Sound und ist sofort hörbar. 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 Reihenfolge 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 Effektnummer angegeben, so können Sie immer noch mit ' RUN/ STOP' abbrechen. Andernfalls müssen Sie alle 16 Effekte eingeben ( Abbruch ist dann unmöglich!) .
' Z' Diese Funktion dient dem Speichern eines einzelnen Effekts auf Diskette. Sie werden 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 Nummer 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 abzuspielen sollten Sie zunächst eimal die Grundlautstärke des SID festlegen ( für volle Laustärke:" POKE54296,15") . Vor der eigentlichen Benutzung muß der Player nun initialisert werden. Dies kann ebenso getan werden, um einen evtl. noch laufenden Sound absichtlich abzuschalten. Dies tun wir, indem wir mit dem Wert $ FF im Akku des Prozessors, die Playerroutine bei $4000 aufrufen. Hieraufhin ist der Player zum Abspielen der einzelnen Sounds bereit und ein evtl.
noch aktiv gewesener Sound abgeschaltet.
Hierzu müssen wir lediglich die gewünschte Soundnummer in den Akku laden und ebenfalls auf Adresse $4000 springen.
Damit der Effekt nun wirklich auch hörbar 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 $40 FE 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)

Valid HTML 4.0 Transitional Valid CSS!