← Computer Kontakt 08 / 1987

MASIC - Eine klangvolle Sprache

Atari

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