3.2 Die Realisation notengraphischer Interaktionen 81 Parser interne Eingabecode Notenbild Repr¨asentation Codegenerator Transformationen Editierfunktionen Abbildung 3.10: Um die Transformierbarkeit der vom Anwender modifizierten Noten-graphiken zu gewährleisten, muß ein Notenmodul, dessen Editierfunktionen direkt auf die interne Repräsentation des Notenbildes einwirken, einen Codegenerator bereitstellen, der aus der internen Repräsentation den entsprechenden Code erzeugt. Dieser wird durch Funktionen, welche direkt auf die interne Repräsentation ein-wirken und den Code damit umgehen, unterwandert, denn auf das resultierende Notenbild können die eventuell im Lernprogramm implementierten code-bezogenen Transformationsroutinen nicht angewandt werden. Zwangsläufig müßte das No-tenmodul zur Umgehung dieses Problems einen Codegenerator bereitstellen, der die aus einem Eingabecode erzeugte interne Repräsentation in den Eingabecode zurückübersetzt (Abb. 3.10), wodurch die zusätzlich vorgenommenen graphischen Veränderungen herausgefiltert würden, da der Code die in diesen Kontext fallenden Parameter, wie in Abschnitt 2.2.1 dieser Arbeit beschrieben, sinnvollerweise nicht unterstützt. Die in Abschnitt 2.2.3 aufgestellte Forderung nach Austauschbarkeit der Codesyntax bedeutete also konsequenterweise den Austausch des Codegenera-tors, der sich im Vergleich zum Wechsel der Codesyntax und des Parsers deutlich aufwendiger gestaltet. Der direkte Zugriff auf die interne Struktur des resultierenden Notenbildes birgt aber noch weitere Probleme. Durch Einfügen oder Löschen von Notationselemen-ten, ja selbst die Veränderung einer Tonhöhe kann die Modifikation der gesamten Graphik erfordern, da die Art und Weise, wie Bestandteile der Notenschrift posi-tioniert werden, maßgeblich von ihrem Umfeld und ihrer Syntax abhängen. Ändert sich also die Richtung eines Notenhalses, weil eine Note die Mittellinie überquert hat, sind unter Umständen Bogenverläufe und Systemabstände neu zu berechnen. Im Extremfall kann die Änderung der Halsrichtung eines Akkordes sogar die Neu-berechnung der gesamten Taktverteilung auf unterschiedliche Akkoladen bedeuten. Folglich müßte die interne Repräsentation neu aufgebaut werden – die Modifika-tion weniger lokaler Parameter ist im allgemeinen nicht ausreichend. Notensatz-programme, die dennoch darauf vertrauen, produzieren äußerst bescheidene Zwi-schenergebnisse, welche erst durch erzwungene globale Reformatierungen qualitativ aufgewertet werden. Das Editieren der vom Notenmodul erzeugten Graphikausgabe sollte sich aus den genannten Gründen auf die Veränderungen beschränken, deren Resultate sich durch den Eingabecode beschreiben lassen. Darüber hinaus sollten sie idealerweise statt unmittelbar auf die interne Repräsentation, indirekt auf den beschreibenden Code wirken, um auf einfacheWeise eine semantische Änderung in die passende syn-taktische Form zu übersetzen. Dazu muß der Autor der Lernanwendung natürlich wissen, an welcher Stelle sich im Eingabecode das textuelle Pendant zum graphisch