3.3 Die Verbindung von Notengraphik und MIDI-Ausgabe 89 entfernt PagePlayer erzeugt liefert gin open player gin close player MusicHandle gin pulse player GraphicHandle liefert erzeugt liefert erzeugt Midi-Events Positionsangaben gin open page interne Repr¨asentation Abbildung 3.13: Der Mechanismus zur Generierung von MIDI-Events aus dem Einga-becode setzt auf die bereits erzeugte Notenbildrepräsentation auf. Das ihr zugeordnete GraphicHandle dient dabei als Schnittstelle, über welche das »auditive« mit dem »visu-ellen « Modul gekoppelt wird. Die MIDI-Wiedergabe stellt aber nur eine Seite des hier beschriebenen Page- Players dar. Zusätzlich wurde eingangs die Möglichkeit zur optischen Verfolgung der gerade erklingenden Noten gefordert. Um dem Anwender des Notenmoduls diesbezüglich möglichst viele Freiheiten, z.B. bei Farbe und Form des Cursors zu lassen, wurde auf eine graphische Integration dieses Zusatzes in das Notenmodul gänzlich verzichtet. Der Autor einer Lernanwendung kann aber Angaben zu Po-sition und Ausdehnung der aktuellen Akkordgruppe anfordern, daraus leicht eine entsprechende Markierung erzeugen und diese schließlich mittels Graphikbefehlen direkt auf das Notenbild zeichnen. Durch die synchrone Kopplung von Bild und Ton ergeben sich aus methodisch-didaktischer Sicht viele Anwendungsmöglichkei-ten, die in Form einer fest implementierten optisch unterstützte MIDI-Wiedergabe kaum umgesetzt werden könnten. Beispielsweise wäre es denkbar, daß nicht ein vom Computer gesteuerter Timer den Metronompuls erzeugt, sondern der Anwen-der das Wiedergabetempo über repetierte Tastenanschläge beeinflußt, um so etwa die Bedeutung des Pulsschlags begreifen zu lernen. Soll der Programmautor dies realisieren können, muß eine geeignete Schnittstelle bereitgestellt werden. Die hier vorgeschlagene Methode besteht in dem DLL-Export einer Funktion, welche einen Impuls an den PagePlayer sendet. Dabei erhöht sie die aktuelle Einsatzzeit, pro-duziert gegebenenfalls die MIDI-Events und liefert als Ergebnis Angaben über die aktuelle Position im Notentext zurück. Dem Autor wird auf dieseWeise ermöglicht, eine beliebige Pulsquelle mit dem Notenmodul zu koppeln Zusammenfassend ergibt sich aus diesen Überlegungen die in Abbildung 3.13 dargestellte Umsetzung des Wiedergabemechanismus’ samt zugehöriger Funktio-nen. Analog zum Graphikgenerator muß vor der eigentlichen Ausgabe eine entspre-chende Datenstruktur im Speicher aufgebaut werden, welches durch einen Aufruf der Funktion gin_open_player eingeleitet wird. Statt eines Skripts wird ihr ein gültiges Handle auf die wiederzugebende Notengraphik übergeben. Besteht die in-terne Notenbildrepräsentation aus Objekten vom Typ Plate, Engraver und Page