2.2 Die Codierung der Noten 61 :all off: new staff (clef \"bass\", key 1b, meter \"3/4\"); :chords on: ,,4 d <,dfa> <fa’d> | :chords off: ,,f <,dfa> <fa’d> | :heads on: ,,c# <,a :heads off: e c#> <a ’c# :heads on: ,e> | Abbildung 2.3: Zum gezielten Ein- und Ausschalten verschiedener Elemente der No-tengraphik, können in der Code-Grammatik zusätzliche Kommandos hinzugefügt werden, welche z.B. diese Eingabe erlaubt. Nur die hier schwarz dargestellten Objekte reagieren auf Mausaktionen. pulierbarkeit des Codes durch externe Programme entgegen. Die schon mehrfach als Beispiel herangezogene Transposition einer Stimme oder der gesamten Partitur würde etwa durch graphikbeeinflussende Parameter erschwert. Zum einen würden sie die graphisch korrekte Darstellung der transponierten Fassung behindern und zum anderen müßte ein externes Programm einen umfangreichen Parser enthalten, der zwischen den verschiedenen Kontexten unterscheiden kann. Aus Gründen der Les- und manuellen Editierbarkeit wird der Code in aller Regel nicht nur aus Ein-zelzeichen bestehende syntaktische Elemente enthalten, sondern wie auch im obi-gen Beispiel auf verschiedene Wörter zurückgreifen. Kommt es nun zur parallelen Verwendung mehrerer ineinandergreifender Kontexte, so wird es für einen Parser schwierig, diese auseinanderzuhalten. Das »d« in einem Kommando wie stem down, welches die Notenhälse der Folgenoten nach unten zwingen könnte, darf natürlich nicht von der Transpositionsfunktion, die nur auf dem analytischen Kontext ar-beitet, als Noteninformation gedeutet und verändert werden. Die Einführung eines neuen, interaktionsbezogenen Kontextes wirft dieses Problem offensichtlich eben-falls auf. Aus diesem Grund sind den in Abbildung 2.3 verwendeten Kommandos zur Interaktionssteuerung Doppelpunkte vor- und nachgestellt. Ein externer Parser kann die Kontexte auf diese Weise leichter auseinanderhalten und so eingeklam-merten Buchstaben gegebenenfalls ignorieren beziehungsweise Änderungen an den interaktionsbezogenen Codebausteinen vornehmen. Die so in den Code integrierbaren Kommandos erlauben dem Notenmodul schon beim Aufbau der internen Notenbildrepräsentation, Informationen bezüglich der Bereitschaft, auf Selektionsaktionen zu reagieren, zu hinterlegen. Der Fangmecha-nismus, welcher versucht, die angeklickten Bildschirmkoordinaten einem Notations-objekt zuzuordnen,31 kann diese berücksichtigen und beispielsweise bei Deaktivie-rung der Akkorde prüfen, ob sich der selektierte Punkt einerseits in der Umgebung einer seiner Notenköpfe befindet und ob er andererseits auf das Mausereignis rea-gieren soll. An diesem Beispiel wird bereits deutlich, daß sich die Sensitivierung bestimmter Notationsobjekte zwangsläufig gegenseitig ausschließen: Entweder sind die einzelnen Köpfe aktiv oder die gesamte Notenkopfgruppe, also der Akkord, 31 Vgl. Abschnitt 3.2.1.