Wie die meisten Benutzer eines 8-Bit-Atari wissen, hat ein einfallsreicher Hardware-Ingenieur namens Jay Miner vor rund zehn Jahren einige revolutionäre Chips zu einem aufsehenerregenden Konzept vereinigt, das seit Ende der siebziger Jahre eine wichtige Rolle in der Heimcomputerwelt spielt. Einer dieser Spezial-Chips, die Bestandteil der kleinen Ataris sind, nennt sich POKEY. Er ist unter anderem für die Sound-Erzeugung auf vier voneinander unabhängig programmierbaren Kanälen zuständig.
Jedem, der die klanglichen Möglichkeiten des POKEY-Chips im Atari voll ausschöpfen will, bietet sich nun die Möglichkeit, Musik mit Hilfe einer spezialisierten Programmiersprache zu gestalten. Sie trägt den Namen MASIC, der eigentlich irreführend ist. Mit dem, was man von Basic gewohnt ist (Zeilennummern, dahinter liegender Interpreter, Spaghetticode) hat die Arbeit mit MASIC nämlich nicht viel zu tun. Es handelt sich hier vielmehr um eine strukturiert anzuwendende Compiler-Sprache, die von der Syntax her ein bißchen an Pascal erinnert.
Zur Veranschaulichung soll hier ein kurzer Ausschnitt aus einem MASIC-Programm folgen:
marke 8
jsr5 jsrS jsrS jsr5
jsr6 jsr6 jsrö jsrö
jsr5 jsrS jsrS jsr5
jsr7 jsr6 jsrS jsr5
rts
start
relt8 10 ;grundtempo definieren
; grundklang (löO=reiner Ton) einstellen
klg0160 klgl160 klg2160 klg3160
;kanal 0 und 1 einschalten
stat OOl stat l11
Zum Lieferumfang von MASIC gehört ein unabhängig arbeitender, sehr komfortabler Programmtexteditor, der natürlich in erster Linie für die Erstellung von MASIC-Programmtexten gedacht ist. Da die deutschen Umlaute sowie ß gänzlich implementiert sind, ASCII-Zeichen auch per Dezimaleingabe angesprochen werden können und ansonsten der Full-Screen-Editor des Atari-Systems in vollem Umfang zur Verfügung steht, eignet sich das MASIC-Editorprogramm auch zur allgemeinen Textverarbeitung. Per Horizontalscrolling wird eine Zeilenlänge von 250 Spalten erreicht; die Ausgabe der erstellten Texte auf den Drucker bereitet keinerlei Probleme.
Die Ausarbeitung eines MA-SlC-Programms erfolgt nun grundsätzlich in zwei Abschnitten. Zunächst schreibt man den Hüllkurventeil. Hier-wird die Gestaltung der Klangtypen festgelegt, die später im eigentlichen Musikstück Verwendung finden sollen. Der Verlauf der Klänge läßt sich in Schritten von 1/50 Sekunde Länge bestimmen.
Sind alle benötigten Hüllkurven definiert, geht man zum Notenteil über, dem eigentlichen Verlaufsplan des programmierten Musikstücks. Hier können Noten, Tonlängen, Pausen, Kanalbefehle, Verzerrungswerte und Ablaufkommandos eingegeben werden. MASIC verarbeitet "normale" Töne in vier und Baßnoten in drei Oktaven. Das bedeutet einen beachtlichen Tonumfang, der den entstehenden Musikstücken eine große klangliche Bandbreite verleiht.
Als Spezialeffekte stehen unter anderem Hall, Glissando (Gleitfrequenzen), Hochpaßfilter, Frequenzmodulation (frei definierbare Tonkurven) sowie ein quasi selbständig programmierbarer, im Hintergrund (Interrupt) laufender Mini-Sequenzer zur Verfügung. Neben den vier hardwaremäßig vorhandenen Sound-Kanälen kann MASIC noch vier virtuelle ansprechen. Diese sind zur Zwischenspeicherung von Notenwerten oder zur vorübergehenden Stummschaltung einzelner Stimmen nützlich. Rekursive Programmierung (komfortable Unterprogrammtechnik) ist möglich. So macht es keine Schwierigkeiten, sich wiederholende Phrasen zu gestalten. Ein Sonderbefehl erlaubt es, Melodien um beliebig viele Halbtonschritte in der Höhe zu verschieben (transponieren). Das erleichtert die Programmierung mehrstimmiger Sätze wie auch die Ausarbeitung von Musikstücken nach dem Muster "Thema mit Variationen" sehr.
Alle Funktionen und Möglichkeiten von MASIC aufzuführen, würde den Rahmen dieses Artikels sprengen und kann auch nicht Aufgabe eines Software-Tests sein. Ein Gesichtspunkt sollte allerdings noch in Betracht gezogen werden: Das zunächst etwas exotisch anmutende Konzept, ein Komponiersystem als Programmsprache zu gestalten, bietet die Möglichkeit, sehr viel Mathematik in die Ausarbeitung eines Musikstücks einzubringen, sowohl was die Länge von Tönen, das Tempo, die Verzweigungen innerhalb des Ablaufs als auch die Höhe und den Charakter des einzelnen gespielten Tons oder Effekts betrifft.
Hier liegt der Vorteil des Konzepts "Programmsprache" im Vergleich zu einem grafisch orientierten Editor. Ein weiterer Pluspunkt, wenn man einmal von der willkommenen Zugabe eines vielfältig verwendbaren Programmtexteditors absieht, ist der vergleichsweise geringe Speicheraufwand. Es bleibt erfreulich viel Platz für die eigentlichen Musikdaten.
Dieses Konzept hat aber auch seine Nachteile. Ein MASIC-Programm ist nicht so übersichtlich und leicht zu interpretieren wie das Notenbild eines guten grafischen Editors (etwa der bekannten "Soundmachine"). Außerdem muß es, da der Programmtexteditor eben wirklich nur Text erstellt, nach der Eingabe erst einmal mit Hilfe des MASIC-Compilers in ein lauffähiges Maschinenprogramm umgewandelt werden, damit man es hören kann.
Der Regelkreis Eingabe-Hören-Korrektureingabe-Hören gestaltet sich dadurch etwas umständlich, denn man muß vom Editor aus immer zunächst den Compiler aufrufen. Auch ist das Austesten eines einzelnen Teilprogramms auf diese Weise nur möglich, wenn ein entsprechender Sprung vorher in den Sourcecode eingetragen wurde. Action!- oder Assembler-Programmierer sind mit solchen Schwierigkeiten bestens vertraut.
Ein compiliertes MASIC-Programm ist nichts weiter als ein Musikstück in reinster Maschinensprache, das sich von DOS oder Basic aus starten läßt und im Interrupt läuft. Es stört also z.B. den Ablauf eines parallel dazu im Speicher befindlichen eigenen Basic-Programms nicht. Mit Hilfe einer im MASIC-Lieferumfang enthaltenen Basic-Hilfsroutine gelingt es auch dem weniger Geübten, professionelle Titel- oder Begleitmusik für seine selbstgeschriebenen Programme zu erstellen.
MASIC läuft auf allen Atari-Heimcomputern, also auch auf den alten 400/800-Geräten. Für 49 DM erhält der Käufer eine beidseitig bespielte, kopiergeschützte Diskette und ein ausführliches deutsches Handbuch, das u.a. auch ein komplettes MASIC-Programm zum Abtippen, Analysieren und Ausprobieren bietet. Auf der ersten Seite der Diskette befinden sich der Programmtexteditor, der MASIC-Compiler mit Runtime-Paket (Dienstroutinen, die der Compiler benutzt, um das lauf fähige Maschinenprogramm auf Diskette zu erzeugen) und das Basic-Hilfs-programm. Die zweite Diskettenseite enthält drei MASIC-generierte Sound-Demos.
Der Preis ist zwar nicht gerade niedrig, MASIC bietet aber viel Substanz fürs Geld. Nach Auskunft des' Autors stehen fast 10 Monate harter Arbeit dahinter. Gerade derjenige, der strukturiertes Programmieren mag, findet hier ein gutes Handwerkszeug für die Sound-Erstellung.
Bezugsquelle:
Verlag Rätz-Eberle GdbR, Abt. MASIC Postfach 1640 7518 Breiten