Magic Disk 64

home to index to html: MD9403-UTILITIES-FX-EDITOR.html
                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)



Valid HTML 4.0 Transitional Valid CSS!