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)