3.1 Übersicht über den Programmaufbau 71 Wie Abbildung 3.4 zu entnehmen ist, lassen sich die Positionsberechnungen im wesentlichen in zwei Bereiche aufteilen: Berechnungen, die vor Zeilenumbruch und Randausgleich erfolgen müssen, weil sie entscheidend zu den relativen horizonta-len Abständen beitragen, sowie Berechnungen, die erst im Anschluß daran sinnvoll sind. Deshalb besitzt jede Klasse, die ein Notationsobjekt repräsentiert, eine prear-range- und eine postarrange-Methode, in denen die durchzuführenden Berechnun-gen entsprechend ihrer Abhängigkeiten aufgerufen werden. Entscheidend ist, daß diesen Berechnungen relative Koordinaten zugrundegelegt werden, um nicht erneut Gefahr zu laufen, auf noch nicht feststehende Werte zugreifen zu müssen. Beispiels-weise können sämtliche Positionsangaben von Akkorden relativ auf die Position des zugehörigen Notensystems bezogen werden; die endgültige, absolute Position spielt bei den Positionsberechnungen keine Rolle, denn diese erhält erst bei der Graphik-ausgabe tatsächliche Relevanz. Natürlich bietet sich zur vertikalen Positionsangabe eine auf die Notenlinien bezogene Skala an. Alle übrigen Positions- und Längen-werte, wie z.B. der Abstand zwischen zwei Akkorden, können in Pixeleinheiten relativ zum übergeordneten Objekt abgelegt werden. Da jedes Objekt seine relati-ve Position kennt und diese solange im Speicher verbleibt wie das Notenbild vom umschließenden Anwendungsprogramm kontrolliert wird, stellt dies gleichzeitig die Grundlage für Interaktionen mit der Maus oder anderen visuellen Eingabegeräten dar. 3.1.4 Die betriebssystemspezifische Umsetzung Alle bisher beschriebenen Teile des Notengenerators lassen sich relativ unabhängig vom verwendeten Betriebssystem realisieren. Spätestens bei der Graphikausgabe muß allerdings auf eine systemspezifische Graphikschnittstelle zugegriffen werden, welche die benötigten Ausgabefunktionen zur Verfügung stellt. Diese Schnittstelle wird im Falle des experimentellen GIN von der Klasse Plate gekapselt, die eine virtuelle Druckplatte darstellt. Sie offeriert letztlich die Methoden zum Zeichnen elementarer geometrischer Objekte, wie Linien, Polygone sowie Kreise und ermög-licht die Textausgabe. Letztere wird nicht nur für die Darstellung von Liedtext – ein Notationsaspekt, der im Rahmen dieser Arbeit nicht berücksichtigt wird –, sondern grundsätzlich zur Generierung der Notengraphik benötigt, denn in Anleh-nung an den klassischen Notenstich gibt es auch beim computergestützten Noten-satz prinzipiell zwei Verfahren, um musikalische Symbole auf die Platte zu bannen: Das »Stempeln« und das »Stechen«. Beim Stempeln werden vorgefertigte statische Zeichen, z.B. Notenschlüssel oder Notenköpfe, in die Platte geschlagen, welches bei der Computersimulation durch die Ausgabe fixer Zeichen eines Musikzeichensat-zes ersetzt wird. In der Form variierende Elemente, wie Balken und Bögen werden hingegen gestochen, im Falle des Computers also über die Graphikschnittstelle gezeichnet. Der Prozeß der Graphikanzeige wurde ebenfalls dem Handwerk nach-empfunden. So wie ein Notenstecher seine Partituren nicht unmittelbar auf das Papier zeichnet, so zeichnen die Funktionen der standardmäßig verwendeten Plate- Klasse nicht direkt auf den Bildschirm, sondern statt dessen in ein Speicher-Bitmap, welches anschließend beliebig oft auf den Bildschirm kopiert, quasi vervielfältigt werden kann. Diese Funktionalität ist zum einen im Rahmen fensterorientierter