von Kemal Ezcan Nachdem nun (hoffentlich) jeder mit Hilfe des Programmes der letzten Ausga- be einige Erfahrungen zum Thema "Hüll- kurve" gesammelt hat, können wir uns endlich an das erste Musikstück wagen. Hierzu laden wir mit Turbobasic von der Diskette das File ... MUSIK1.TB und starten es. Wie wir hören, handelt es sich um eine kleine Melodie der ein- fachsten Art. Das Programm liest mit Hilfe einer FOR-NEXT-Schleife Tonhöhen- daten, spielt den Ton und macht für je- den Ton eine kurze Pause. Hierbei ist ein längerer Ton als zwei oder mehrere gleiche Daten anzugeben, woraus auch gleich die erste wichtige Regel beim Musikprogrammieren folgt: WAEHLE IMMER DEN KLEINSTEN, IM MUSIK- STÜCK VORKOMMENDEN NOTENWERT ! Im Klartext heisst das: Ist der kürzes- te Ton im Musikstück eine Sechzehntel- note, wird das gesamte Musikstück in Sechzehntelnoten aufgeteilt ! Längere Töne werden auf verschidene Weisen be- handelt, wie (in unserem ersten Bei- spiel) durch Spielen von zwei gleichen Notenwerten. Das Problem, daß sich hierbei ergibt, ist: Was passiert, wenn zwei gleiche Töne hintereinander ge- spielt werden sollen ? In diesem Bei- spiel geht das nämlich nicht, da diese wie ein einziger, längerer Ton klingen würden ! Als nächstes laden wir einfach das File MUSIK2.TB ein und starten es. In diesem Fall ist nun eine Hüllkurve hinzugekommen. Diese wird einfach dadurch erzeugt, daß an- statt einer Warteschleife eine Hüll- kurvenschleife durchlaufen wird, die die Lautstärke des gespielten Tones beeinflusst. Wie wir sogleich merken werden, taucht nun wieder ein kleines Problem auf: Wenn ein längerer Ton als zwei gleiche Notenwerte gespielt wird, hören wir (bedingt durch die Hüllkurve) auch zwei Töne hintereinander. Dieses Problem läßt sich lösen, wenn wir ganz einfach die Hüllkurvenwerte (also den Lautstär- kenverlauf) in einem String ablegen, der dann gespielt wird. Allerdings benötigt das Programm nun noch einen Hüllkurvenzähler (der anzeigt, an wel- cher Stelle der Hüllkurve sich das Pro- gramm befindet), sowie eine kleine Ab- frage, die ermittelt, ob der aktuelle Ton ein neuer oder ein gehaltener Ton ist. Hierzu nehmen wir für einen ge- haltenen Ton den Tonhöhenwert 255, der sonst nicht benötigt wird. Damit wir auch gleich noch Pausen mit einbinden können, lassen wir den Hüllkurvenzähler beim Spielen der Hüllkurve nur bis zum vorletzten Wert zählen und spielen für eine Pause den letzten Wert der Hüll- kurve (der dann natürlich null sein muß). Diese Erweiterungen sind im Pro- gramm MUSIK3.TB zu finden. So, das war's erstmal für heute. Viel Spass noch beim Experimentieren. Anm. d. Red.: Von Kemal stammt übrigens auch die Titelmusik des USER-MAG. Sie wurde der AMPD62 entnommen und dann von uns von Turbo-Basic in Assembler umgesetzt.