[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

5.2 Die Referenz der Programminterna erklärt

@translationof Explaining the Internals Reference


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

5.2.1 Zurechtfinden in der Programmreferenz

@translationof Navigating the program reference

Arbeit mit der Referenz der Interna soll hier an einigen Beispiel illustriert werden. Die Referenz der Interna existiert nur auf Englisch, darum sind auch die Beispiele dieses Abschnittes nicht übersetzt.

Folgende Aufgabe wird bearbeitet: Der Fingersatz aus dem Beispiel unten soll verändert werden:

 
c-2
\stemUp
f

[image of music]

In der Dokumentation über Fingersatz (in Fingersatzanweisungen) gibt es folgenden Abschnitt:

Siehe auch:

Referenz der Interna: (internals)Fingering in Abschnitt ‘Fingering’ in Referenz der Interna.

Gehen Sie über diesen Link zum Abschnitt (internals)Fingering in Abschnitt ‘Fingering’ in Referenz der Interna. Oben auf der Seite findet sich:

Fingering objects are created by: (internals)Fingering_engraver in Abschnitt ‘Fingering_engraver’ in Referenz der Interna and (internals)New_fingering_engraver in Abschnitt ‘New_fingering_engraver’ in Referenz der Interna.

Indem Sie die Links in der Referenz der Interna folgen, können Sie verfolgen, wie LilyPond intern arbeitet:

Fingersatz-Objekte werden also durch den Fingering_engraver erstellt, welcher folgende Musikereignistypen akzeptiert: fingering-event. Ein Musikereignis vom Typ fingering-event ist ein musikalischer Ausdruck mit der Bezeichnung (internals)FingeringEvent in Abschnitt ‘FingeringEvent’ in Referenz der Interna.

Dieser Pfad geht genau die entgegengesetzte Richtung von LilyPonds Wirkungsweise: er beginnt bei der graphischen Ausgabe und arbeitet sich voran zur Eingabe. Man könnte auch mit einem Eingabe-Ereignis starten und dann die Links zurückverfolgen, bis man zum Ausgabe-Objekt gelangt.

Die Referenz der Interna kann auch wie ein normales Dokument durchsucht werden. Sie enthält Kapitel über (internals)Music definitions in Abschnitt ‘Music definitions’ in Referenz der Interna, über (internals)Translation in Abschnitt ‘Translation’ in Referenz der Interna und (internals)Backend in Abschnitt ‘Backend’ in Referenz der Interna. Jedes Kapitel listet alle die Definitionen und Eigenschaften auf, die benutzt und verändert werden können.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

5.2.2 Layout-Schnittstellen

@translationof Layout interfaces

Die HTML-Seite, die im vorigen Abschnitt betrachtet wurde, beschreibt ein Layoutobjekt mit der Bezeichnung Fingering. Ein derartiges Objekt ist ein Symbol in der Partitur. Es hat Eigenschaften, die bestimmte Zahlen speichern (wie etwa Dicke und Richtung), aber auch Weiser auf verwandte Objekte. Ein Layoutobjekt wird auch als „Grob“ bezeichnet, die Abkürzung für Graphisches Objekt. Mehr Information zu Grobs findet sich in (internals)grob-interface in Abschnitt ‘grob-interface’ in Referenz der Interna.

Die Seite zu Fingering enthält Definitionen für das Fingering-Objekt. Auf der Seite steht etwa:

padding (dimension, in staff space):

0.5

was bedeutet, dass der Abstand zu anderen Objekten mindestens 0.5 Notenlinienabstände beträgt.

Jedes Layoutobjekt kann mehrere Funktionen sowohl als typographisches als auch als Notationselement einnehmen. Das Fingersatzobjekt beispielsweise hat folgende Aspekte:

Jeder dieser Aspekte findet sich in sogenannten Schnittstellen (engl. interface), die auf der (internals)Fingering in Abschnitt ‘Fingering’ in Referenz der Interna-Seite unten aufgelistet sind:

This object supports the following interfaces: (internals)item-interface in Abschnitt ‘item-interface’ in Referenz der Interna, (internals)self-alignment-interface in Abschnitt ‘self-alignment-interface’ in Referenz der Interna, (internals)side-position-interface in Abschnitt ‘side-position-interface’ in Referenz der Interna, (internals)text-interface in Abschnitt ‘text-interface’ in Referenz der Interna, (internals)text-script-interface in Abschnitt ‘text-script-interface’ in Referenz der Interna, (internals)font-interface in Abschnitt ‘font-interface’ in Referenz der Interna, (internals)finger-interface in Abschnitt ‘finger-interface’ in Referenz der Interna, and (internals)grob-interface in Abschnitt ‘grob-interface’ in Referenz der Interna.

Ein Klick auf einen der Links öffnet die Seite der entsprechenden Schnittstelle. Jede Schnittstelle hat eine Anzahl von Eigenschaften. Einige sind nicht vom Benutzer zu beeinflussen („interne Eigenschaften“), andere aber können verändert werden.

Es wurde immer von einem Fingering-Objekt gesprochen, aber eigentlich handelt es sich nicht um sehr viel. Die Initialisierungsdatei ‘scm/define-grobs.scm’ zeigt den Inhalt dieses „Objekts“ (zu Information, wo diese Dateien sich finden siehe (learning)Mehr Information in Abschnitt ‘Mehr Information’ in Handbuch zum Lernen):

 
(Fingering
  . ((padding . 0.5)
     (avoid-slur . around)
     (slur-padding . 0.2)
     (staff-padding . 0.5)
     (self-alignment-X . 0)
     (self-alignment-Y . 0)
     (script-priority . 100)
     (stencil . ,ly:text-interface::print)
     (direction . ,ly:script-interface::calc-direction)
     (font-encoding . fetaText)
     (font-size . -5) 		; don't overlap when next to heads.
     (meta . ((class . Item)
     (interfaces . (finger-interface
                    font-interface
                    text-script-interface
                    text-interface
                    side-position-interface
                    self-alignment-interface
                    item-interface))))))

Wie man sehen kann, ist das Fingersatzobjekt nichts anderes als eine Ansammlung von Variablen, und die Internetseite der Referenz der Interna ist direkt aus diesen Anweisungen generiert.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

5.2.3 Die Grob-Eigenschaften

@translationof Determining the grob property

Die Position der 2 aus dem Beispiel unten soll also geändert werden:

 
c-2
\stemUp
f

[image of music]

Weil die 2 vertikal an der zugehörigen Note ausgerichtet ist, müssen wir uns mit der Schnittstelle auseinander setzen, die diese Positionierung veranlasst. Das ist hier side-position-interface. Auf der Seite für diese Schnittstelle heißt es:

side-position-interface

Position a victim object (this one) next to other objects (the support). The property direction signifies where to put the victim object relative to the support (left or right, up or down?)

Darunter wird die Variable padding (Verschiebung) beschrieben:

padding

(dimension, in staff space)

Add this much extra space between objects that are next to each other.

Indem man den Wert von padding erhöht, kann die Fingersatzanweisung weiter weg von der Note gesetzt werden. Dieser Befehl beispielsweise fügt drei Notenlinienzwischenräume zwischen die Zahl und den Notenkopf:

 
\once \override Voice.Fingering.padding = #3

Wenn dieser Befehl in den Quelltext eingefügt wird, bevor der Fingersatz notiert ist, erhält man folgendes:

 
\once \override Voice.Fingering.padding = #3
c-2
\stemUp
f

[image of music]

In diesem Fall muss die Veränderung speziell für den Voice-Kontext definiert werden. Das kann auch aus der Referenz der Interna entnommen werden, da die Seite des (internals)Fingering_engraver in Abschnitt ‘Fingering_engraver’ in Referenz der Interna schreibt:

Fingering_engraver is part of contexts: … (internals)Voice in Abschnitt ‘Voice’ in Referenz der Interna


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

5.2.4 Benennungskonventionen

@translationof Naming conventions

Die Bezeichnungen für Funktionen, Variablen, Engraver und Objekte folgen bestimmten Regeln:


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]

Dieses Dokument wurde erzeugt von gub am 13. Juli 2020 durch texi2html 1.82.

Andere Sprachen: English, català, español, français, italiano, 日本語.
Über die automatische Sprachauswahl.