72 Konzepte und Strukturen eines interaktiven Notenmoduls Betriebssysteme vorteilhaft, um ein passives, teilweise oder vollständig verdecktes Notenfenster bei erneuter Aktivierung schnell restaurieren zu können, und zum an-deren bietet der Puffermechanismus gegenüber einem direkten Zeichenzugriff auf den Bildschirm deutliche Geschwindigkeitsvorteile, die sich zur Erzeugung visueller Effekte, wie Blinken oder Animationen vorteilhaft auswirken. Durch Austauschen der Standard-Plate-Klasse können darüber hinaus leicht andere reale oder virtuelle Ausgabegeräte, wie Drucker oder Graphikdateien angesprochen werden. Die Graphikfunktionen der Plate-Klasse erwarten bildschirmorientierte Para-meter, wie absolute kartesische Koordinaten oder Strichstärken in Pixeleinheiten. Um die Ausgabefunktionen ein wenig notationsorientierter zu gestalten, existiert zusätzlich die Klasse Engraver. Dem Konstruktor5 des »Notenstechers« wird ei-ne »Druckplatte« übergeben, auf die er mit ihren elementaren Zeichenfunktionen zugreifen kann, nachdem er die notensystembezogenen Koordinaten in absolute Pixel umgerechnet hat. Der Engraver wiederum wird von den bereits beschriebe-nen Notationselementklassen angesprochen, um einerseits die Abmessungen der zu »stempelnden« Symbole in Erfahrung zu bringen – dies ist z.B. für die Abstandsbe-stimmung der Akkorde unerläßlich – und andererseits natürlich um ihre Darstellung zu ermöglichen. Zusammenfassend wird zur Generierung der Graphik somit eine Troika beste-hend aus Instanzen der Klassen Page, Engraver und Plate benötigt. Damit der Benutzer des Notenmoduls diese nicht »von Hand« erzeugen und miteinander ver-binden muß, existiert die Klasse GinGraphic, welche diese Aufgabe übernimmt. Der Anwender kommt aber auch mit ihr nur indirekt in Form eines Handles, das zur Re-ferenzierung der Notengraphiken bei verschiedenen Funktionsaufrufen angegeben werden muß, in Berührung. Ein Großteil multimedialer Anwendungen wird heute nicht mehr mit Hilfe von allgemeinen Programmiersprachen wie Basic, C++ oder Pascal entwickelt, sondern es kommen speziell für diesen Bereich zugeschnittene Autorensysteme6 zum Ein-satz, welche Grundfunktionen, wie Seitenverwaltung, Graphik- und Pfadanima-tion, Video- und Soundwiedergabe bereitstellen. Da die meisten dieser Systeme eine Möglichkeit bieten, von Drittanbietern entwickele Funktionen, via DLL in die eigene Programmiersprache zu integrieren, wurde auch das Notenmodul GIN als Windows-DLL7 konzipiert. Der Autor der Lernanwendung muß somit ledig-lich die bereitgestellten Notenmodulfunktionen, nicht aber notwendigerweise die Sprache C++, mit der sie realisiert wurden, kennen. Die Kommunikation zwischen Notenmodul und Anwendungsprogramm wird, wie schon angedeutet, durch eindeutige Identifikationsnummern ermöglicht, wel-che den vom Modul exportierten Funktionen übergeben werden müssen. Über die 5 Bei einem Konstruktor handelt es sich um eine spezielle Klassenfunktion, auch Methode ge-nannt, die zum Erzeugen eines entsprechenden Objekts aufgerufen wird und beispielsweise die Objektvariablen initialisiert. 6 Dazu gehören beispielsweise Toolbook, Director oder auch das an der Universität Osnabrück entwickelte CAMI-Talk. Zu letzterem siehe u.a. Enders (1995), S. 234–239. 7 Eine DLL (Dynamic Link Library) ist eine eine spezielle Datei, die von mehreren Programmen genutzte Funktionen enthält. Statt eine häufig verwendete Funktion in jedes Programm erneut zu integrieren, kann sie einmal in einer DLL abgelegt und anschließend von verschiedenen Anwendungen aufgerufen werden.