?hW,eitung zu S O F T S Y N T H SOFTSYNTH lœuft auf allen 8-Bit ATARI- Computern mit mindestens 48 Kb RAM und Diskettenlaufwerk unter DOS 2.5. Es bootet automatisch und benÓtigt ATARI-Basic. Die fast unglaubliche Klangvielfalt, die SOFTSYNTH von allen herkÓmmlichen Musikprogrammen unter- schei- det, beruht auf einer Soft- ware-Technik, die auf ATARI-Computern bisher nicht zur Verwendung kam: Es ist mÓglich, die Spannung, die am Fernseherlautsprecher anliegt, direkt durch die CPU zu steuern. Indem die CPU nun zyklisch bestimmte Span- nungswerte ansetzt, kann sie einen Ton erzeugen. Unter Verwendung einer geeigneten Liste von Zahlen, die zyklisch in Spannungen umgewan- delt werden, kann jede beliebige Schwingungsform - sprich Klang- farbe - erzeugt werden ( dies entspricht dem Prinzip von S.A.M. ). Bei diesem Verfahren ist allerdings die CPU so stark ausge- lastet, da¿ eine Darstellung auf dem Bildschirm das korrekte Timing stÓren w rde. Durch ein programmtechnisch sehr auf- wendiges Verfahren gelang es, "nebenbei" auch H llkurvenkontrolle und verschiedene Effekte ausf hren zu lassen. SOFTSYNTH gliedert sich grundlegend in drei Teile: - der SCHWINGUNGS- UND HLLKURVEN- EDITOR, im Folgenden als Editor bezeichnet, dient zum Erstellen der Listen, die als Schwingungen oder H llkurven verwendet werden. Die- ser Programmteil ist menuegesteuert. - mit dem COMPOSER werden Musikst cke eingegeben oder editiert. Dies wird mittels einer einfachen Musik-Pro- grammiersprache vorgenommen, die - œhnlich Basic - einen zeilennum- mern- orientierten Editor benutzt. - der INTERPRETER hat die Aufgabe, das Musikst ck zu spielen. Composer und Interpreter befinden sich gleichzeitig im Speicher; der Interpreter wird einfach mit dem Befehl PLAY aufgerufen. Wird der Edi- tor verlangt, so mu¿ er nachgeladen werden. Die einzelnen Programmteile werden im folgenden detailliert be- schrieben. Nach dem Booten erscheint das SOFT- SYNTH-Hauptmenu, von dem man durch Tippen des Anfangsbuchstabens zu Com- poser, Editor, DOS oder der spœter beschriebenen BASIC-Einbau-Utility gelangt. Mit "O" (Optionen) lassen sich Ladegerœusch, Tastenklick und Softscroll einstellen. Die beiden Letztgenannten sind nur auf dem ATARI XL/XE mÓglich. DER EDITOR Zunœchst zur internen Darstellung: Jede Schwingungsform wird als eine Liste von 256 ein-Byte-Zahlen zwischen 0 und 15 dargestellt. Eine auf diese Weise quantisierte Sinusschwingung sehen Sie auf Abb. 1. H llkurven werden als Listen von 64 Zahlen zwischen 0 und 15 darge- stellt. Hierbei stehen die Zahlenwerte nicht f r Spannungen, sondern f r Lautstœrken. Eine so dargestellte perkussive H llkurve, wie sie etwa beim Anschlag einer Klavier- saite auftritt, sehen Sie in Abb. 2. Der Editor erlaubt immer nur eine Schwingungsform und eine H llkurve im Speicher zu haben; wird eine neue Liste eingeladen oder erstellt, so wird die vorher im Speicher befind- liche ber- schrieben. Nun zum Editor selbst: Wenn der Editor gestartet wird, lan- det man zunœchst im Editor- Hauptme- nue. Hier bieten sich folgende Optionen, die man ber SELECT/START, Cursortasten/RETURN oder Joy- stick/Knopf erreicht ( die meisten Funktionen kÓnnen mit ESC abgebro- chen werden ): - SCHWINGUNG ruft das Schwingungsfor- men-Untermenue auf - HLLKURVE ruft das H llkurven-Unter- menue auf - ANHóREN spielt Dreiklœnge in ver- schiedenen Oktaven mit der gegenwœr- tig im Speicher befindlichen Klangfarbe und H llkurve. Diese Funktion ist nur f r ein kurzes Aus- probieren eines Klangs gedacht; um eine Klangfarbe wirklich zu testen, sollte man den Composer aufrufen und sie in ein Musikst ck einsetzen. - COMPOSER ruft den Composer ohne Umweg ber das SOFTSYNTH- Hauptmenue auf. - HAUPTMENUE ruft das SOFTSYNTH-Haupt- menue auf Vor Ausf hrung der letzten beiden Funktionen wird man gefragt, ob man wirklich sicher ist, da der Composer oder das SOFTSYNTH- Hauptmenue von der Diskette nachgeladen werden m ssen und eine etwa erzeugte Klangfarbe verloren wœre. Ruft man das Schwingungs-Untermenue auf, so bietet sich folgende Auswahl: - DIREKT ERSTELLEN ermÓglicht das "Zeichnen" einer Schwin- gungsform in der Darstellungsart von Abb.1. Wie berall im Editor kann wahlweise mit Joystick oder Cursortasten/START gesteuert wer- den. Und so wird gezeichnet: Der aktuelle Punkt wird durch einen kleinen Pfeil gekennzeichnet; das gerade bearbeitete Byte ( 0 - 255 ) wird unten angezeigt. Mit den Richtun- gen oben/unten œndert man das Niveau ( 0 - 15 ). Ein Knopfdruck bzw. START bewegt den Pfeil nach rechts, geht also zum nœchsten Byte ber und hin- terlœ¿t eine horizontale Linie auf dem gegenwœrtigen Niveau. Bewegt man den Pfeil nach links, so wird der zuletzt gezeichnete Teil der Schwin- gung gelÓscht; gleichzeitig wird der Pfeil auf das Niveau der Schwingung an dieser Stelle gesetzt. Nach rechts kann sich der Pfeil beliebig von dem bisher gezeich- neten Teil der Schwingung entfernen. Sobald man dann auf den Knopf dr ckt, wird eine angenœherte Linie von dem Punkt, wo man die bisher gezeichnete Schwingung verlassen hat zu der aktuellen Position des Pfeils gezo- gen. Sobald Byte 255 erreicht ist, kehrt man ins Menue zur ck. - DURCH OBERTóNE erlaubt die Eingabe des Obertonspektrums einer Klangfarbe ( Abb. 3 ). Diese in der Musik verbreitete Darstellungsweise beruht darauf, da¿ man jede harmonische Klangfarbe als Summe von Sinusschwin- gungen mit der Frequenz des Tons selbst, der doppelten Frequenz, der Dreifachen usw. mit bestimmten Ampli- tuden darstellen kann. Bei der Ein- gabe steht die unterste Zahlenreihe f r die Nummer des Obertons, also 0=Grundton, 1=1. Oberton ( doppelte Frequenz ), 2=2. Oberton ( dreifache Frequenz ) usw.. Die obere Zahlenreihe gibt die jewei- lige relative Amplitude des Obertons, die dar ber noch einmal als Balken dargestellt wird. Sie kann Werte von 0 bis 99 annehmen. Die Nummer des gerade bearbeiteten Obertons wird invers dargestellt. Nach rechts/links kann man zum nœchsten/vorherigen ber- gehen. Die jeweilige Amplitude kann man nach oben oder unten œndern. Mit einem Druck auf den Knopf oder START zeigt man an,da¿ die Eingabe beendet ist, und das Programm berechnet aus dem Ober- tonspektrum die Schwingungs- form, die gleichzeitig gezeichnet wird. - DARSTELLEN zeigt die im Speicher befindliche Schwingungsform auf dem Bildschirm. - MISCHEN erzeugt eine Klangfarbe, die "zwischen" zwei schon bestehenden liegt. Als erste Schwingungsform wird die im Speicher befindliche genommen, die Zweite wird, wie unter EINLADEN beschrieben, unter den Schwingungsformen auf der Diskette ausgewœhlt.Danach steht eine Schwin- gung im Speicher, deren Werte sich aus den arithmetischen Mitteln der Werte der ersten beiden ergeben. - ZUSAMMENFGEN hœngt zwei Schwin- gungsformen aneinander. Der Ablauf ist wie bei MISCHEN. - EINLADEN lœdt eine Schwingungsform von Diskette. Zunœchst wird das Directory geladen, und die Namen aller auf Diskette befindlichen Schwingungsformen werden ausgegeben. Dann sucht man sich mit Cursorta- sten oder Joystick die gew nschte Schwingung heraus und gibt mit Knopf oder START den Befehl zum Laden. Die eingeladene Schwingung wird sofort dargestellt. - ABSPEICHERN sichert die Schwin- gung aus dem Speicher auf Diskette. Zuvor mu¿ der Schwingung ein Name gegeben werden, der bis zu acht Zeichen lang sein kann, aber keine Leer- zeichen enthalten darf. Das Programm hœngt dann automatisch ".S" f r Schwingungsform als Extender an und erzeugt eine Datei mit dem sich ergebenden Namen unter DOS 2.5.Sollte eine andere Schwingungsform auf der Diskette den gleichen Namen haben, so wird diese gelÓscht. - DISK-INHALT gibt die Namen aller Schwingungen auf einer Diskette aus. Dieser Menuepunkt hat noch eine andere Funktion: Das Programm geht davon aus, da¿ nur eine Diskette mit Schwingungsformen bearbeitet wird. Wenn also mehrmals EINLADEN, MISCHEN oder ZUSAMMENFGEN gewœhlt wird, so wird das beim ersten mal gelesene Directory in den anderen Fœllen weiterverwendet, um Zeit zu sparen. Nur mit der Funktion DISK- INHALT wird dies umgangen, f r den Fall, da¿ eine andere Diskette bear- beitet werden soll. - Hauptmenue f hrt zum Editor-Hauptme- nue zur ck. Das HLLKURVEN-Menue bietet folgende Punkte: - ERSTELLEN lœ¿t eine H llkurve auf dem Bildschirm "zeichnen". Die Steuerung erfolgt wie beim entspre- chenden Menuepunkt bei SCHWINGUNG, nur da¿ es hier nicht 256, sondern 64 Werte gibt und das automatische Ziehen von Verbindungslinien nicht mÓglich ist. - DURCH ADSR erlaubt die Eingabe von Attack-, Decay-, Sustain- und Release-Time sowie Sustain-Level, wie es in der elektronischen Musik blich ist. Die Steuerung erfolgt entsprechend wie bei der Ein- gabe eines Obertonspektrums. Nach einem Knopfdruck wird die entspre- chende H llkurve berechnet und glei- chzeitig dargestellt. - EDITIEREN dient dazu, kleine ¹nde- rungen an einer H llkurve vorzuneh- men. Mann kann einen Pfeil nach links und rechts ber die Darstellung der H llkurve bewegen. Bewegt man den Pfeil nach oben oder unten, so verœndert sich entsprechend der angesprochene Wert der H llkurve. Solange man auf den Knopf dr ckt, bewegt sich der Pfeil nach rechts und hinterlœ¿t auf seinem Niveau eine ho- rizontale Linie. Nat rlich kÓnnen auf/ab Bewegungen und Knopfdruck auch kombiniert werden. Verlassen kann man diese Funktion nur mit ESC. - die restlichen Funktionen EINLADEN, ABSPEICHERN, DISK-INHALT und HAUPTME- NUE funktionieren ganau so wie die entsprechenden Menuepunkte bei SCHWIN- GUNG. Einziger Unterschied ist,da¿ beim Abspeichern Dateien von 64 Byte lœnge mit dem Extender ".H" f r H ll- kurve angelegt werden. Nun, da die Erzeugung von Schwin- gungsformen und H llkurven er- klœrt ist, wenden wir uns der eigentlichen Eingabe von Musik- st cken mit dem Composer zu. ¹hnlich wie in ATARI-Basic mu¿ jeder Musikanweisung eine Zeilen- nummer von 0 bis 32767 vorangestellt wer- den, allerdings darf wegen der grÓ- ¿eren bersichtlichkeit nur eine Anweisung pro Zeile eingegeben wer- den. Da jede Anweisung gleich bei der Eingabe in ein speicherplatzsparen- des und schnell abzuarbeitendes Format berf hrt wird, werden Syn- taxfehler sofort mit einer Fehler- meldung quittiert: Die fehlerhafte Zeile wird ausgegeben, wobei der Feh- ler mit einem inversen Zeichen mar- kiert ist. Bei der Eingabe von Musikanweisungen oder Editorbefehlen kÓnnen Leerzei- chen grundsœtzlich weggelassen werden. Hier zunœchst die wichtigsten Edi- tor-Befehle ( n,m stehen f r nat r- liche Zahlen; Angaben in eckigen Klammern m ssen durch entsprechende Werte ersetzt werden; Parameter in Klammern sind optional, d.h. wenn sie nicht eingegeben werden, nimmt das Pro- gramm Standardwerte an ): - LIST ( Abk rzung L. ) Syntax: LIST ( #Device:Filename.ext,n,m ) Beispiele: LIST LIST 100, LIST #D:MUSIK.LST.100,200 Gibt Zeilen n bis m auf Device aus. Als Standardwerte werden Device=Bildschirmeditor, n=1, m=32767 angenommen. LIST n gibt nur Zeile n aus. LIST n, gibt Zeile n bis Ende des Musikst cks aus. Es kann sinnvoll sein, Musikst cke oder Teile davon in LIST- ( ASCII- ) Format auf Diskette abzuspeichern, beispielsweise um sie zusammenzuf gen. - SAVE Syntax: SAVE #Device:Filename.ext Beispiel: SAVE #D:MUSIK.SYN Speichert ein Musikst ck im internen Format ab. - LOAD Syntax: LOAD #Device:Filename.ext Beispiel: LOAD #D:MUSIK.SYN - NEW lÓscht den Musikspeicher - PLAY ( Abk rzung P ) Syntax: PLAY ( #Device:Filename.ext,Device,n ) Beispiele:PLAY PLAY 100 PLAY #D:MUSIK:SYN,D2:,100 Ruft den Interpreter auf; das Musikst ck wird gespielt. Abbruch ist mit BREAK mÓglich. Zuvor werden die Schwingungsformen und H llkurven, die f r das Musikst ck benÓtigt werden, eingeladen, falls sie noch nicht ein- geladen worden sind. Als Standard wird angenommen, da¿ das im Spei- cher befindliche Musikst ck gespielt werden soll, die Schwingungen und H llkurven werden von Disk ein- geladen, und es wird mit der ersten Zeile begonnen. Wird ein Filename ein- gegeben, so wird zuerst das angege- bene Musikst ck geladen. Die zweite Device-Angabe ( ohne Dop- pelkreuz ) gibt an, woher die Schwingungsformen und Klangfarben geladen werden sollen ( beispiels- weise von der zweiten Diskettensta- tion ). Die Zeilennummer gibt an, ab welcher Zeile das Musikst ck ge- spielt werden soll. - EXIT verlœ¿t den Composer. Das Hauptmenue wird von der Diskette geladen. - EDIT ruft den Editor auf. Befassen wir uns nun mit den Musik- Anweisungen. Um einen Ton zu erzeugen, ist zunœchst eine Anzahl von Parame- tern notwendig: - Tonkanal Es stehen vier in allen Parametern unabhœngige Tonkanœle zur Verf gung. - Frequenz ( Note ) Die Frequenz darf theoretisch von 0 bis 4000 Hz reichen; sie wird auf 0.15 Hz genau angenœ- hert. Die TÓne der C-dur Tonleiter werden einfach mit ihren Namen C,D,E,F,G,A,H bezeichnet; HalbtÓne werden durch ein angehœngtes Doppelkreuz gekennzeichnet ( C#,D#,F#,G#,A# ). Soll eine andere als die grundlegende Oktave, die durch C=261 Hz definiert ist, ver- wendet werden, so mu¿ die Nummer der Oktave hinter die Bezeichnung des Tons gesetzt werden, also C1 f r eine Oktave hÓher als der Grundton, C-3 f r drei Oktaven tiefer. Zulœssig sind die Oktaven -9 bis 4. Es gibt auch die MÓglichkeit, Fre- quenzen direkt einzugeben, indem der Frequenz in Hertz ein Apostroph voran- gestellt wird. Wenn man also einen 100 Hz-Ton erzeugen mÓchte, gibt man einfach '100 ein. Durch die interne Kodierung kann es gesche- hen, da¿ beim LISTen ein Wert auf- taucht, der sich vom eingegebenen um 1/10 Hz unterscheidet. Sollte eine eingegebene Frequenz zufœllig mit einer Note bereinstim- men, so wird beim LISTen der Name dieser Note ausgegeben. - Schwingungsform - H llkurve F r Schwingungsform und H llkurve m ssen die Namen bereits mit mit dem Editor erzeugter Dateien angegeben werden. - Lautstœrke Sie kann ganze Werte von 0 bis 15 annehmen. - Tondauer Sie wird im Normalfall in 1/50 Sekun- den, sogenannten Jiffies, angegeben. Diese Zeiteinheit wird verwendet, da Funktionen wie H llkurvenkontrolle oder einschalten eines neuen Tons beim abspielen normalerweise alle 1/50 Sekunde ausgef hrt werden. Die Tondauer darf von 1 bis 16000 Jiffies reichen; bei sehr gro¿en Werten kÓn- nen Differenzen zum eingegebenen Wert auftreten. - Wartezeit bis zum nœchsten Ton Auch dieser Wert wird in Jiffies angegeben. Zulœssig sind Werte von 0 bis 65535. Dieser Wert ist nicht zu verwechseln mit der Tondauer. Ist beispielsweise die Wartezeit k rzer als die Tondauer, so kann auf einem anderen Tonkanal ein neuer Ton angeschlagen werden, wœhrend der erste Ton noch weiter erklingt. Soweit die Parameter eines Tons. Da sie, durch Kommata getrennt, in der aufgef hrten Reihenfolge aneinanderge- hœngt werden, sieht die Syntax einer vollstœndigen Tonanweisung so aus: [Zeilennummer] [Tonkanal],[Note],[Schwingung],[H llkurve], [Lautstœrke],[Dauer],[Wartezeit] Beispiel: 10 1,C1,SINUS,PERCUS,15,100,150 In Zeile 10 wird auf Kanal 1 ein eingestrichenes C mit der Schwin- gung "SINUS", der H llkurve "PERCUS", Lautstœrke 15 ( maximale Lautstœrke ), Tondauer 100 Jiffies ( =2 Sekunden ) und Wartezeit 150 Jif- fies. Nat rlich wœre es sehr umstœndlich wenn man f r jeden Ton eine solche Zeile eingeben m ¿te. Da gewÓhnlich innerhalb eines Musik- st cks die meisten dieser Parameter kon- stant gehalten werden, schafft hier die SET-Anweisung Abhilfe: Sie legt Schwin- gungsform, H llkurve, Laut- stœrke, Tondauer und Wartezeit f r einen bestimmten Tonkanal fest. - SET Syntax: SET [Tonkanal], [Schwingung], [H llkurve], [Lautstœrke], [Dauer], [Wartezeit] Beispiel: SET 1,SINUS,PERCUS,15,100,150 Wenn zuvor diese Anweisung ausge- f hrt wurde, lautet die Tonanwei- sung, die den gleichen Ton wie das Beispiel einer vollstœndigen Tonan- weisung erzeugt, nur noch: 20 1,C1 Alle anderen Parameter sind f r Ton- kanal 1 durch die SET- Anweisung festgelegt. Es ist sogar mÓglich, die Nummer des Tonkanals wegzulassen, also nur einzugeben: 20 C1 In diesem Fall wird die Nummer des Tonkanals aus der letzten zuvor ein- gegebenen Tonanweisung bernommen. Wenn bisher noch keine Tonanweisung eingegeben wurde, wird Tonkanal 1 verwendet. Beim LISTen wird der Tonkanal in jedem Fall ausgegeben. All dies zusammen ermÓglicht eine sehr z gige Eingabe von Musik- st cken, da man unter Verwendung des weiter unten beschriebenen NUM- Befehls eigentlich nur die Bezeich- nungen der Noten einzutippen hat. Es ist sinnvoll, die SET-Anweisun- gen an den Anfang eines Musikst cks zu setzen. Nat rlich kann man die Standardwerte auch mehrmals innerhalb eines Musikst cks umdefinieren. Es ist auch mÓglich, einem ein- zelnen Ton vom Standard abweichende Parameter zuzuweisen. Wie blich werden die Parameter durch Kommata getrennt. So kann man: - Nur die Schwingung zuweisen: 30 C1,RECHTECK - Nur die H llkurve zuweisen: 30 C1,,PERCUS2 - Schwingungsform und H llkurve: 30 C1,RECHTECK,PERCUS2 - Wartezeit: 30 C1,200 - Tondauer und Wartezeit: 30 C1,180,200 - Lautstœrke,Tondauer und Wartezeit: 30 C1,15,180,200 Nat rlich lassen sich die ersten und letzten drei MÓglich- keiten beliebig kombinieren, es ist nur darauf zu achten, da¿ Schwingungsform und H llkurve vor den Zahlenwerten stehen. Wird genau ein Zahlenwert gefunden, so wird er als Wartezeit interpretiert, zwei Werte werden als Tondauer und Wartezeit interpretiert, drei als Lautstœrke, Tondauer und Wartezeit. REPEAT: Normalerweise wird ein Ton nach Ablauf der Tondauer abgeschaltet. Will man jedoch erreichen, da¿ nach dieser Zeit der Ton von neuem begon- nen wird, etwa um einen Balalaika- Effekt zu erzielen, hœngt man einfach ",<" an die Tonanweisung. Der Ton wird dann solange gespielt, bis er abgebrochen wird oder auf dem verwendeten Tonkanal ein neuer Ton gespielt wird. Beispiele: 30 C1,< 30 C1,RECHTECK,180,200,< GLISSANDO: Ein Glissando ( kontinuierliches Verœndern der TonhÓhe ) erzeugt man, indem man hinter einer Tonanweisung eingibt: ,> [Note],[Dauer] Beispiel: 30 C1,>C-2,100 erzeugt einen Ton, dessen HÓhe inner- halb von 100 Jiffies von C1 auf C-2 absinkt. Optional kann noch ein zweiter Wert angef gt werden, der von -127 bis 127 reichen darf und auf komplexe Weise den Verlauf des Glissando angibt. Glissando und Repeat lassen sich auch kombinieren. In diesem Fall mu¿ das Repeat-Zeichen zuerst eingegeben wer- den. Nun zu den anderen Musikanweisungen: - OFF Syntax: OFF [Tonkanal] Beispiel: OFF 1 Schaltet einen Ton auf dem angegebenen Tonkanal ab. - VIB Syntax:VIB [Tonkanal],[Schwingung],[Tiefe],[Vibrato- Periode] oder VIB [Tonkanal],[Schwingung],[H llkurve],[Tiefe], [Vibrato-Periode],[H llkurven-Periode] Beispiele: 10 VIB 1,SINUS,2,10 10 VIB 1,SINUS,PERCUS,2,10,100 Erzeugt ein Vibrato ( Frequenzmodula- tion ). Jede danach auf dem Tonkanal gespielte FREQUENZ wird mit der angegebenen Schwingungsform moduliert. Die Vibratotiefe ( 0-9 ) gibt an, wie stark die Frequenz moduliert werden soll, die Vibrato- Periode ( 2- 1000 ) bezeichnet, wie viele Jiffies ein Durchlauf der frequenzmo- dulierenden Schwingung dauern soll. Wird eine Vibrato-H llkurve verwen- det, so kann diese die durch die Schwingungsform verursachten Fre- quenzœnderungen zeitweise begrenzen. Dies erlaubt beispielsweise ein mit VerzÓgerung einsetzendes, stœrker oder schwœcher werdendes Vibrato. Die H llkurven-Periode gibt an, wie lange ein H llkurvendurchlauf dauern soll. Normal ist 1-3 f r Vibratotiefe und 10-20 f r die Periode. VIB [Tonkanal] OFF schaltet Vibrato auf dem ange- gebenen Tonkanal ab. Beispiel: VIB 1 OFF - INT Syntax: INT [1.Kanal],[2.Kanal],[Differenz] Beispiel: INT 2,1,1.5 Jede Frequenz, die auf dem zweiten angegebenen Kanal gespielt wird, bertrœgt der Interpreter, um die Differenz in Hz erhÓht, auf den Ersten. Dies erzeugt einen Interfe- renzeffekt ( Schwebung ). Voraus- setzung ist, da¿ f r den ersten eingegebenen Tonkanal mit SET Stan- dards definiert worden sind, von denen nur die Schwingungsform bernom- men wird; alle anderen Parameter werden vom zweiten festgesetzten Kanal genommen. Auf diese Weise kann man Interferenzen zwischen verschiedenen Schwingungen erzeugen. Normal sind Diffe- renzwerte von 0 bis 3 Hz. Wenn dieser Effekt verwendet wird, darf auf dem 1, Kanal kein Ton gespielt werden, andernfalls wird INT abgeschaltet. - PHAS Syntax: PHAS [Schwingungsform], [H llkurve], [Periode] Beispiel: PHAS RECHTECK,SOFT,20 Erzeugt einen Phasing-Effekt ( konti- nuierliches Verœndern der Schwingung ). Die Lautstœrke eines auf Kanal drei gespielten Tons verteilt sich auf die gerade verwendete Schwingung von Kanal drei und die unter PHAS angegebene, die auf Kanal vier erzeugt wird. Die angegebene H ll- kurve bestimmt den Verlauf zwischen den beiden Klangfarben. Ist der momentane H llkurven-Wert 15, so wird nur die Schwingungsform von Kanal drei gespielt, bei 0 nur die von Kanal vier. Alle anderen Werte erzeugen Mischformen. Die Periode bezeichnet die Dauer eines H llkurvendurchlaufs in Jiffies. Wenn dieser Effekt ver- wendet wird, kann auf Kanal vier kein Ton gespielt werden. - PHAS OFF schaltet den Phasing-Effekt ab. - SPEED Beispiel: SPEED 2 Bestimmt die Geschwindigkeit, in der das Musikst ck abgespielt wird. Eine Grundfrequenz von 200 Hz wird durch den angegebenen Wert geteilt. Bei SPEED 1 werden also Funktionen wie H llkurvenkontrolle und Vibrato 200 mal pro Sekunde ausgef hrt; ein Jiffie entspricht nur noch 1/200 Sekunde. Die Geschwindigkei wird bei jedem PLAY auf 4 initiali- siert. Bei SPEED 1 kann es vorkommen, da¿ die Musik etwas aus dem Takt gerœt, wenn viele Funktionen gleich- zeitig bearbeitet werden m ssen. - MOD Syntax: MOD [Kennziffer] Moduliert alles, was auf den Kanœlen 3 und 4 gespielt wird, zusammen. Hier die verschiedenen Kennziffern: 0 keine Modulation; Initialisierungs- zustand 1 Ringmodulation ( multiplikative Mischung ) 2 unharmonische ( Noise- ) Modulation 3 sehr unharmonische Modulation - KW Syntax: KW [1.Wartezeit], [2.Wartezeit] Beispiel: KW 2,2 KW steht f r Kanalwechsel, d.h. es werden abwechselnd Kanal 1 und 2 eingeschaltet. Zuerst wird die erste Anzahl von Jiffies gewartet, wœhrend 1 eingeschaltet und 2 abgeschaltet ist. Dann wird wœhrend der zweiten Wartezeit 2 eingeschaltet und 1 abgeschaltet, und so weiter. Es kÓnnen besonders interessante Effekte erzeugt werden, wenn mann KW mit SPEED 1 verwendet. - KW OFF schaltet den Kanalwechsel ab. - ECHO Syntax: ECHO [1.Tonkanal], [2.Tonkanal], [VerzÓgerung] Beispiel: ECHO 2,1,10 Erzeugt einen Echo-Effekt. Jede Tonan- weisung, jeder SET-, VIB-, und INT- Befehl, der auf dem 2. Kanal ausge- f hrt wird, wird nach der angegebe- nen VerzÓgerung auf dem 1. Kanal wiederholt. So ist es mÓglich, eine Melodie mit anderen Parametern wie- derholen zu lassen, wenn die SET- Anweisungen f r die beiden verwende- ten Schwingungsformen vor dem ECHO- Befehl ausgef hrt werden. - TRACK Beispiel: TRACK 1 Definiert den Anfang eines Tracks und weist ihm eine Nummer zu. Tracks d rfen von 1 bis 32 numeriert sein. Es gibt die MÓglichkeit, verschie- dene Tracks zu definieren, Tonsequenzen, die an verschiedenen Stellen im Musikst ck stehen, aber von denen mehrere, wenn sie verschiedene Tonkanœle verwenden, gleichzeitig abgespielt werden kÓnnen. Sie kÓnnen auch beliebig wiederholt, an- und abgeschaltet werden. Das Track-Konzept erlaubt es, ein mehrstimmiges Musikst ck Stimme f r Stimme einzugeben, oder auch eine sich immer wiederholende Begleitung nur einmal einzugeben. - TRON Beispiel: TRON 1 Schaltet den Track mit der angegebenen Nummer an. - TROFF Beispiel: TROFF 1 Schaltet den Track mit der angegebenen Nummer ab. - END Dieser Befehl markiert das Ende eines Tracks. Das Ende eines Tracks wird automatisch angenommen, wenn eine neue TRACK- Anweisung auftritt. Wird END nicht innerhalb eines Tracks ausgef hrt, so wird das Musikst ck beendet, es wird zum Editor zur ckgekehrt. - ; Das Semikolon leitet eine Bemerkung ein. Der Interpreter ignoriert den darauf folgenden Text. - ? Syntax: ? [Dauer in 1/10 Se- kunde]:[Text] Beispiel: 10 ? 20: HALLO Gibt einen Text auf dem Bildschirm aus. wœhrend der Zeit der Textdarstel- lung kann keine Musik gespielt werden. Es stehen 6 Zeilen mit jeweils 20 Zeichen zur Verf gung. Das Zeichen / setzt den darauf folgenden Text an den Anfang einer neuen Zeile. Es kÓnnen nur Gro¿buchstaben ausgege- ben werden. Mit gro¿en/ kleinen und normalen/inversen Buchstaben kÓnnen vier verschiedene Farben erzeugt wer- den. Sollte die Textdarstel- lung zu lange dauern,kann man sie mit jeder Taste abbrechen. Nun zu den restlichen Direkt-Befehlen: - ENTER ( E. ) Syntax: ENTER #Device:Filename.ext Beispiel: ENTER #D:MUSIK.LST Liest vorher mit LIST abgespei- cherte Zeilen ein. Das Musikst ck im Speicher wird nicht gelÓscht. Dieser Befehl dient in erster Linie zum Zusammenf gen von Musikst cken oder Teilen davon. - DIR Beispiele: DIR DIR D2:*.* DIR *.S Gibt das Directory aus. Optional kann die Bezeichnung einer anderen Diskettenstation und/oder ein Suchkri- terium angegeben werden. - NUM Syntax: NUM ([Zeilennummer],[Inkrement]) Beispiele: NUM NUM 100,2 NUM 1000 Gibt automatisch Zeilennummern vor, beginnend mit der angegebenenen Zeilennummer, zu der nach jeder korrekten Eingabe das angegebene Inkrement addiert wird. Die Zei- lennummernvorgabe wird abgebrochen, wenn eine schon bestehende Zeile gelÓscht werden kÓnnte. Als Standard wird f r die erste Zeilennummer die kleinste durch Zehn teilbare Zeilen- nummer nach der hÓchsten bisher ver- wendeten verwendet, f r das Inkre- ment 10. - SIZE Auf diesen Befehl hin wird der noch freie Speicherplatz in Bytes ausge- geben. - REN Syntax: REN ([Zeilennummer],[Inkrement]) Beispiele: REN REN 5 REN 1000,10 Numeriert die Zeilen eines Musik- st cks neu. Als Standard werden f r die erste Zeilennummer und das Inkrement 10 genommen. - TP Syntax: TP [Anzahl HalbtÓne] Beispiele: TP 6 TP 0.7 TP -12 Transponiert das Musikst ck um die angegebene Anzahl von HalbtÓnen. Es kann jede beliebige Dezimalzahl verwendet werden. Deshalb eignet sich dieser Befehl auch zum Stimmen an anderen Musikinstrumenten. Glissandi werden nicht korrekt transponiert. - REP Syntax: REP [SCHWINGUNG],[SCHWINGUNG] oder REP [HLLKURVE],[HLLKURVE] Beispiel: REP SINUS,RECHTECK Ersetzt jedes Auftreten der ersten Schwingung/H llkurve durch die Zweite. Wenn hœufig der REP-Befehl verwendet worden ist, kann es aus Speichar- platzgr nden nÓtig sein, mit dem Befehl PLAY! alle Schwingungsformen und H llkurven neu einladen zu las- sen. PLAY! oder P! kann genau so wie PLAY verwendet werden. Es ist vorgesehen, mehere Editorbe- fehle auf einmal einzugeben, indem man sie durch einen Schrœgstrich "/" trennt. Sie werden dann nacheinander abgearbeitet. Beispiel: LOAD #D:MUSIK.SYN/REP SINUS, RECHT- ECK/TP-6/PLAY Editorbefehle kÓnnen sogar vom Musik- st ck aus ausgef hrt werden. Es mu¿ ihnen nur die Zeilennummer und ein weiterer Schrœgstrich vorangestellt werden. Sobald der Interpreter auf eine solche Zeile trifft, berreicht er die Kontrolle an den Editor und lœ¿t ihn den oder die angegebenen Befehle ausf hren. Diese Funktion erÓffnet zahlreiche MÓglichkeiten, wie zum Beispiel den Aufruf eines Musikst ckes von einem anderen aus, endlose Transponierschleifen oder eine automatische Demonstration, die eine Auswahl von St cken lœdt und vorspielt. Beispiel: 100 /PLAY#D:MUSIK2.SYN 100 /TP-4/PLAY Mit einer speziell geschaffenen Uti- lity ist es auch mÓglich, fertige Musikst cke in selbst geschriebene Basic-Programme ein- zubauen. Und so wird's gemacht: - man ruft vom SOFTSYNTH-Hauptmenue den Programmteil BASIC- EINBAU auf - Nachdem sich das Utility gemeldet hat, gibt man den Namen des gew nsch- ten Musikst cks ein und lœdt es, dazu die benÓtigten Schwingungsformen und H llkurven - Auf der Zieldiskette erzeugt das Utility zwei Dateien: In einer ist das Musikst ck samt Schwingungsfor- men, H llkurven und Interpreter enthalten, in der anderen eine kurze BASIC- Routine in geLISTetem For- mat, die f r Einladen und Ini- tialisierung von Musik und Interpreter sorgt. - Wenn die Dateien geschriebenen sind, initialisiert man das System neu, lœdt das Basicprogramm und gibt ein: ENTER "D:LOADER:LST" Daraufhin wird die Lade- und Initiali- sierungsroutine, die die Zeilen 30000 und 30010 beansprucht, zum Programm hinzugef gt. - An den Anfang des eigenen Pro- gramms stellt man den Befehl GOSUB 30000. Wenn das Programm nun gestar- tet wird, lœdt es Musik und Interpreter in den oberen Spei- cherbereich. Nat rlich mu¿ die Musik- datei auf der Diskette vorhanden sein. Je nach Lœnge des Musikst cks stehen ca. 6 Kb weniger freier Speicher zur Verf gung. - abgespielt wird die Musik mit dem Befehl A=USR(PLAY,n) wobei n f r die Zeilennummer steht, ab der gespielt werden soll. Abge- brochen werden kann die Musik mit den Tasten SELECT, OPTION oder START. Hier noch einige Daten: o Sampling-Frequenz: etwa 11 KHz o Quantisierung: 4 Bit pro Tonkanal (16 Werte) 0.1 Hz Frequenzgenauigkeit o Frequenzbereich: 0 bis ca. 300 KHz, 6 Oktaven o Speicherfœhigkeit: bei ATARI XL/XE 19.5 Kb f r Musik- st ck, Schwingungen und H llkurven, d.h. etwa 3500 TÓne. bei ATARI 400/800 12.Kb, d.h. etwa 2000 TÓne o 4 unabhœngige Tonkanœle o volle Diskettenunterst tzung o Vibrato o Schwebung o Ringmodulation o Glissandi o Phasing o Echo o Track-Gliederung o Jede beliebige Schwingungs- form/H llkurve