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

5.1 Interpretationskontexte

@translationof Interpretation contexts

Dieser Abschnitt erklärt, was Kontexte sind und wie man sie verändern kann.

Siehe auch

Handbuch zum Lernen: (learning)Kontexte und Engraver in Abschnitt ‘Kontexte und Engraver’ in Handbuch zum Lernen.

Installierte Dateien: ‘ly/engraver-init.ly’, ‘ly/performer-init.ly’.

Schnipsel: (snippets)Contexts and engravers in Abschnitt ‘Contexts and engravers’ in Schnipsel.

Referenz der Interna: (internals)Contexts in Abschnitt ‘Contexts’ in Referenz der Interna, (internals)Engravers and Performers in Abschnitt ‘Engravers and Performers’ in Referenz der Interna.


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

5.1.1 Was sind Kontexte?

@translationof Contexts explained

Kontexte sind hierarchisch geordnet:


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

Score – der Vater aller Kontexte

@translationof Score - the master of all contexts

Score (Partitur) ist der höchste Notationskontext. Kein anderer Kontext kann einen Score-Kontext enthalten. Im Normalfall kümmert sich der Score-Kontext um die Verwaltung der Taktarten und sorgt dafür, dass Elemente wie Schlüssel und Taktart- oder Tonartbezeichnungen über die Systeme hinweg aneinander ausgerichtet sind.

Ein Score-Kontext wird eingerichtet, wenn eine \score {…} oder \layout {…}-Umgebung interpretiert wird.


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

Oberste Kontexte – Container für Systeme

@translationof Top-level contexts - staff containers

Diese Kontexte fassen Systeme zu Gruppen zusammen und werden darum hier als Systemgruppen bezeichnet (engl. staffgroup).

StaffGroup

Gruppiert Systeme und fügt eine eckige Klammer auf der linken Seite hinzu. Die Taktstriche der enthaltenen Systeme werden vertikal miteinander verbunden. StaffGroup besteht nur aus einer Ansammlung von Systemen mit einer eckigen Klammer zu Beginn der Zeile und durchgezogenen Taktstriche.

ChoirStaff

Entspricht StaffGroup, außer dass die Taktstriche der enthaltenen Systeme nicht vertikal miteinander verbunden sind.

GrandStaff

Gruppiert Systeme mit einer geschweiften Klammer zur Linken. Die Taktlinien der enthaltenen Systeme werden vertikal verbunden.

PianoStaff

Entspricht GrandStaff, hat aber zusätzlich Unterstützung für Instrumentenbezeichnungen zu Beginn jeder Systemgruppe.


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

Mittlere Kontexte – Systeme

@translationof Intermediate-level contexts - staves

Diese Kontexte stellen verschiedene Arten einzelner Notationssysteme (engl. staff) dar.

Staff

Kümmert sich um Schlüssel, Taktstriche, Tonarten und Versetzungszeichen. Er kann Voice-Kontexte enthalten.

RhythmicStaff

Entspricht Staff, aber dient zur Notation von Rhythmen: Tonhöhen werden ignoriert und die Noten auf einer einzigen Linie ausgegeben.

TabStaff

Ein Kontext um Tabulaturen zu erstellen. Die Standardeinstellung ist eine Gitarrentabulatur mit sechs Notenlinien.

DrumStaff

Ein Kontext zur Notation von Perkussion. Er kann DrumVoice-Kontexte enthalten.

VaticanaStaff

Entspricht Staff, aber eignet sich besonders zum Notensatz des Gregorianischen Chorals.

MensuralStaff

Entspricht Staff, aber eignet sich zum Notensatz von Noten in der Mensuralnotation.


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

Unterste Kontexte – Stimmen

@translationof Bottom-level contexts - voices

Stimmen-(Voice-Kontexte initialisieren bestimmte Eigenschaften und laden bestimmte Engraver. Weil es sich bei Stimmen um die untersten Kontexte handelt, können sie keine weiteren Kontexte enthalten.

Voice

Entspricht einer Stimme auf einem Notensystem. Der Kontext kümmert sich um die Umsetzung von Noten, Dynamikzeichen, Hälsen, Balken, diversen Texten, Bögen und Pausen. Wenn mehr als eine Stimme pro System benötigt wird, muss dieser Kontext explizit initialisiert werden.

VaticanaVoice

Entspricht Voice, aber eignet sich besonders zum Notensatz des Gregorianischen Chorals.

MensuralVoice

Entspricht Voice, aber mit Änderungen, um Mensuralnotation setzen zu können.

Lyrics

Entspricht einer Stimme mit Gesangstext. Kümmert sich um den Satz des Gesangstextes auf einer Zeile.

DrumVoice

Der Stimmenkontext in einem Perkussionssystem.

FiguredBass

Der Kontext, in dem Generalbassziffern (BassFigure-Objekte) gesetzt werden, die in der \figuremode-Umgebung notiert werden.

TabVoice

Dieser Stimmenkontext wird in einer Tabulatur (TabStaff-Kontext) benutzt. Er wird normalerweise implizit erstellt.

CueVoice

Ein Stimmenkontext, der Noten in reduzierter Größe ausgibt und vor allem dazu da ist, Stichnoten zu setzen. Siehe auch Stichnoten formatieren. Wird normalerweise implizit erstellt, wenn Stichnoten gesetzt werden.

ChordNames

Ausgabe von Akkordsymbolen.


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

5.1.2 Kontexte erstellen und referenzieren

@translationof Creating and referencing contexts

In Partituren mit einer Stimme und einem System werden die Kontexte normalerweise automatisch erstellt. In komplizierteren Partituren muss man sie aber direkt erstellen. Es gibt drei Möglichkeiten, Kontexte zu erstellen:


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

5.1.3 Kontexte am Leben halten

@translationof Keeping contexts alive

Kontexte werden normalerweise am ersten musikalischen Moment beendet, an dem sie nichts mehr zu tun haben. Ein Voice-Kontext stirbt also sofort, wenn keine Ereignisse mehr auftreten, Staff-Kontexte sobald alle in ihnen enthaltenen Voice-Kontexte keine Ereignisse mehr aufweisen usw. Das kann Schwierigkeiten ergeben, wenn auf frühere Kontexte verwiesen werden soll, die in der Zwischenzeit schon gestorben sind, beispielsweise wenn man Systemwechsel mit \change-Befehlen vornimmt, wenn Gesangstext einer Stimme mit dem \lyricsto-Befehl zugewiesen wird oder wenn weitere musikalische Ereignisse zu einem früheren Kontext hinzugefügt werden sollen.

Es gibt eine Ausnahme dieser Regel: genau ein Voice-Kontext innerhalb eines Staff-Kontextes oder in einer <<...>>-Konstruktion bleibt immer erhalten bis zum Ende des Staff-Kontextes oder der <<...>>-Konstruktion, der ihn einschließt, auch wenn es Abschnitte gibt, in der er nichts zu tun hat. Der Kontext, der erhalten bleibt ist immer der erste, der in der ersten enthaltenden {...}-Konstruktion angetroffen wird, wobei <<...>>-Konstruktionen ignoriert werden.

Jeder Kontext kann am Leben gehalten werden, indem man sicherstellt dass er zu jedem musikalischen Moment etwas zu tun hat. Staff-Kontexte werden am Leben gehalten, indem man sicherstellt, dass eine der enthaltenen Stimmen am Leben bleibt. Eine Möglichkeit, das zu erreichen, ist es, unsichtbare Pause zu jeder Stimme hinzuzufügen, die am Leben gehalten werden soll. Wenn mehrere Stimmen sporadisch benutzt werden sollen, ist es am sichersten, sie alle am Leben zu halten und sich nicht auf die Ausnahmeregel zu verlassen, die im vorigen Abschnitt dargestellt wurde.

Im folgenden Beispiel werden sowohl Stimme A als auch B auf diese Weise für die gesamte Dauer des Stückes am Leben gehalten.

 
musicA = \relative { d''4 d d d }
musicB = \relative { g'4 g g g }
keepVoicesAlive = {
  <<
    \new Voice = "A" { s1*5 }  % Keep Voice "A" alive for 5 bars
    \new Voice = "B" { s1*5 }  % Keep Voice "B" alive for 5 bars
  >>
}

music = {
  \context Voice = "A" {
    \voiceOneStyle
    \musicA
  }
  \context Voice = "B" {
    \voiceTwoStyle
    \musicB
  }
  \context Voice = "A" { \musicA }
  \context Voice = "B" { \musicB }
  \context Voice = "A" { \musicA }
}

\score {
  \new Staff <<
    \keepVoicesAlive
    \music
  >>
}

[image of music]

Das nächste Beispiel zeigt eine Melodie, die zeitweise unterbrochen wird und wie man den entsprechenden Gesangstext mit ihr verknüpfen kann, indem man die Stimme am Leben hält. In wirklichen Situationen würden Begleitung und Melodie natürlich aus mehreren Abschnitten bestehen.

 
melody = \relative { a'4 a a a }
accompaniment = \relative { d'4 d d d }
words = \lyricmode { These words fol -- low the mel -- o -- dy }
\score {
  <<
    \new Staff = "music" {
      <<
        \new Voice = "melody" {
          \voiceOne
          s1*4  % Keep Voice "melody" alive for 4 bars
        }
        {
          \new Voice = "accompaniment" {
            \voiceTwo
            \accompaniment
          }
          <<
            \context Voice = "melody" { \melody }
            \context Voice = "accompaniment" { \accompaniment }
          >>
          \context Voice = "accompaniment" { \accompaniment }
          <<
            \context Voice = "melody" { \melody }
            \context Voice = "accompaniment" { \accompaniment }
          >>
        }
      >>
    }
    \new Lyrics \with { alignAboveContext = "music" }
    \lyricsto "melody" { \words }
  >>
}

[image of music]

Eine Alternative, die in manchen Umständen besser geeignet sein kann, ist es, einfach unsichtbare Pausen einzufügen, um die Melodie mit der Begleitung passend auszurichten:

 
melody = \relative {
  s1  % skip a bar
  a'4 a a a
  s1  % skip a bar
  a4 a a a
}
accompaniment = \relative {
  d'4 d d d
  d4 d d d
  d4 d d d
  d4 d d d
}
words = \lyricmode { These words fol -- low the mel -- o -- dy }

\score {
  <<
    \new Staff = "music" {
      <<
        \new Voice = "melody" {
          \voiceOne
          \melody
        }
        \new Voice = "accompaniment" {
          \voiceTwo
          \accompaniment
        }
      >>
    }
    \new Lyrics \with { alignAboveContext = "music" }
    \lyricsto "melody" { \words }
  >>
}

[image of music]


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

5.1.4 Umgebungs-Plugins verändern

@translationof Modifying context plug-ins

Notationskontexte (wie Score oder Staff) speichern nicht nur Eigenschaften, sie enthalten auch Plugins („engraver“ genannt), die die einzelnen Notationselemente erstellen. Ein Voice-Kontext enthält beispielsweise einen Note_heads_engraver, der die Notenköpfe erstellt, und ein Staff-Kontext einen Key_engraver, der die Vorzeichen erstellt.

Eine vollständige Erklärung jedes Plugins findet sich in (internals)Engravers and Performers in Abschnitt ‘Engravers and Performers’ in Referenz der Interna. Alle Kontexte sind erklärt in (internals)Contexts in Abschnitt ‘Contexts’ in Referenz der Interna, wobei die in diesem Kontext vorkommenden Engraver aufgelistet sind.

Es kann teilweise nötig sein, diese Engraver umzupositionieren. Das geschieht, indem man einen neuen Kontext mit \new oder \context beginnt und ihn dann verändert:

 
\new context \with {
  \consists …
  \consists …
  \remove …
  \remove …
  etc.
}
{
  ..Noten..
}

… steht hier für die Bezeichnung des Engravers. \consists fügt einen Engraver hinzu und \remove entfernt ihn. Es folgt ein einfaches Beispiel, in dem der Time_signature_engraver (Engraver für den Takt) und der Clef_engraver (Engraver für den Schlüssel) aus dem Staff-Kontext entfernt werden:

 
<<
  \new Staff \relative {
    f'2 g
  }
  \new Staff \with {
     \remove "Time_signature_engraver"
     \remove "Clef_engraver"
  } \relative {
    f'2 g2
  }
>>

[image of music]

Das zweite Notensystem enthält keine Taktangabe und keinen Notenschlüssel. Das ist eine recht brutale Methode, Objekte zu verstecken, weil es sich auf das gesamte System auswirkt. Diese Methode beeinflusst auch die Platzaufteilung, was erwünscht sein kann. Vielfältigere Methoden, mit denen Objekte unsichtbar gemacht werden können, finden sich in (learning)Sichtbarkeit und Farbe von Objekten in Abschnitt ‘Sichtbarkeit und Farbe von Objekten’ in Handbuch zum Lernen.

Das nächste Beispiel zeigt eine Anwendung in der Praxis. Taktstriche und Taktart werden normalerweise in einer Partitur synchronisiert. Das geschieht durch Timing_translator und Default_bar_line_engraver. Diese Plugins sorgen sich um die Verwaltung der Taktzeiten und die Stelle innerhalb des Taktes, zu dem eine Note erscheint usw. Indem man diese Engraver aus dem Score-Kontext in den Staff-Kontext verschiebt, kann eine Partitur erstellt werden, in welcher jedes System eine unterschiedliche Taktart hat:

 
\score {
  <<
    \new Staff \with {
      \consists "Timing_translator"
      \consists "Default_bar_line_engraver"
    } {
        \time 3/4
        c4 c c c c c
    }
  \new Staff \with {
    \consists "Timing_translator"
    \consists "Default_bar_line_engraver"
  } {
      \time 2/4
      c4 c c c c c
  }
>>
\layout {
  \context {
    \Score
    \remove "Timing_translator"
    \remove "Default_bar_line_engraver"
    }
  }
}

[image of music]

Bekannte Probleme und Warnungen

Die Reihenfolge, in der die Engraver definiert werden, ist die Reihenfolge, in welcher sie aufgerufen werden, um ihre Verarbeitung vorzunehmen. Normalerweise spielt die Reihenfolge, in welcher die Engraver angegeben werden, keine Rolle, aber in einigen Spezialfällen ist die Reihenfolge sehr wichtig. Das kann beispielsweise vorkommen, wenn ein Engraver eine Eigenschaft erstellt und ein anderer von ihr liest, oder ein Engraver erstellt ein Grob und ein anderer wertet es aus.

Folgende Reihenfolgen müssen beachtet werden:

Siehe auch

Installlierte Dateien: ‘ly/engraver-init.ly’.


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

5.1.5 Die Standardeinstellungen von Kontexten ändern

@translationof Changing context default settings

Kontext- und Grob-Eigenschaften können mit den Befehlen \set und \override verändert werden, wie beschrieben in Eigenschaften verändern. Diese Befehle erstellen musikalische Ereignisse, damit die Veränderungen zum Zeitpunkt der Verarbeitung in den Noten erscheinen.

Dieser Abschnitt hingegen erklärt, wie man die Standardwerte von Kontext- und Grob-Eigenschaften zum Zeitpunkt, an dem der Kontext erstellt wird, verändert. Es gibt hierzu zwei Möglichkeiten. Die eine verändert die Standardeinstellungen aller Kontexte eines bestimmten Typs, die andere verändert die Standardwerte nur eines bestimmten Kontextes.


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

Alle Kontexte des gleichen Typs verändern

@translationof Changing all contexts of the same type

Die Kontexteinstellungen, die standardmäßig in Score, Staff, Voice und anderen Kontexten eingesetzt werden, können in einer \context-Umgebung innerhalb einer beliebigen \layout-Umgebung spezifiziert werden. Die \layout-Umgebung sollte innerhalb der \score (Partitur) stehen, auf die sie sich bezieht, nach den Noten.

 
\layout {
  \context {
    \Voice
    [Kontexteinstellungen für alle Voice-Kontexte]
  }
  \context {
    \Staff
    [Kontexteinstellungen für alle Staff-Kontexte]
  }
}

Folgende Einstellungstypen können angegeben werden:

Befehle, die die Eigenschaften verändern, können in einer \layout-Umgebung platziert werden, ohne von einer \context-Umgebung eingeschlossen zu werden. Derartige Einstellungen verhalten sich äquivalet wie Eigenschaftsveränderungen, die zu jedem Beginn eines bestimmten Kontextes angegeben werden. Wenn kein Kontext angegeben wird, wird jeder Kontext auf der untersten Ebene beeinflusst, siehe auch Unterste Kontexte – Stimmen. Die Syntax eines Befehls zu Einstellung von Eigenschaftseinstellungen in einer \layout-Umgebung ist die gleiche wie für den Befehl direkt zwischen den Noten geschrieben.

 
\score {
  \new Staff {
    \relative {
      a'4^"Smaller font" a a a
      a4 a a a
    }
  }
  \layout {
    \accidentalStyle dodecaphonic
    \set fontSize = #-4
    \override Voice.Stem.thickness = #4.0
  }
}

[image of music]


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

Nur einen bestimmten Kontext verändern

@translationof Changing just one specific context

Die Kontexteigenschaften nur eines bestimmten Kontextes können mit einer \with-Umgebung geändert werden. Alle anderen Vorkommen des gleichen Kontexts behalten ihre Standardeinstellungen, möglicherweise durch Einstellungn in \layout-Umgebungen verändert. Die \with-Umgebung muss direkt nach dem Befehl \new Kontext-Typ gesetzt werden:

 
\new Staff
\with {
  [enthält Einstellungen nur für diesen spezifischen Kontext]
} {
...
}

Folgende Arten von Einstellungen können angegeben werden:


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

Rangfolge von Kontextwerten

@translationof Order of precedence

Der Wert einer Eigenschaft, die zu einer bestimmten Zeit aktiv ist, wird wie folgend bestimmt:

Siehe auch

Handbuch zum Lernen: (learning)Kontexteigenschaften verändern in Abschnitt ‘Kontexteigenschaften verändern’ in Handbuch zum Lernen.

Notationsreferenz: Was sind Kontexte?, Unterste Kontexte – Stimmen, Der \set-Befehl, Der \\override-Befehl, Die \layout-Umgebung.


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

5.1.6 Neue Kontexte definieren

@translationof Defining new contexts

Bestimme Kontexte, wie Staff oder Voice, werden erstellt, indem man sie mit einer Musikumgebung aufruft. Es ist aber auch möglich, eigene neue Kontexte zu definieren, in denen dann unterschiedliche Engraver benutzt werden.

Das folgende Beispiel zeigt, wie man etwa Voice-Kontexte von Grund auf neu bauen kann. Ein derartiger Kontext ähnelt Voice, es werden aber nur zentrierte Schrägstriche als Notenköpfe ausgegeben. Das kann benutzt werden, um Improvisation in Jazzmusik anzuzeigen.

[image of music]

Diese Einstellungen werden innerhalb der \context-Umgebung innerhalb der \layout-Umgebung definiert:

 
\layout {
  \context {
    …
  }
}

Der Beispielcode des folgenden Abschnittest muss anstelle der Punkte im vorigen Beispiel eingesetzt werden.

Zuerst ist es nötig eine Bezeichnung für den neuen Kontext zu definieren:

 
\name ImproVoice

Weil dieser neue Kontext ähnlich wie Voice ist, sollen die Befehle, die in Voice-Kontexten funktionieren, auch in dem neuen Kontext funktionieren. Das wird erreicht, indem der Kontext als Alias Voice erhält:

 
\alias Voice

Der Kontext gibt Noten und Text aus, darum müssen wir die Engraver hinzufügen, die für diese Aktionen zuständig sind:

 
\consists "Note_heads_engraver"
\consists "Text_engraver"

aber die Noten sollen nur auf der mittleren Linie ausgegeben werden:

 
\consists "Pitch_squash_engraver"
squashedPosition = #0

Der Pitch_squash_engraver verändert Notenköpfe (die vom Note_heads_engraver erstellt werden) und setzt ihre vertikale Position auf den Wert von squashedPosition, in diesem Fall ist das die Mittellinie.

Die Noten sehen wie ein Querstrich aus und haben keine Hälse:

 
\override NoteHead.style = #'slash
\hide Stem

Alle diese Engraver müssen zusammenarbeiten, und das wird erreicht mit einem zusätzlichen Plugin, das mit dem Befehl \type gekennzeichnet werden muss. Dieser Typ solle immer Engraver_group lauten:

 
\type "Engraver_group"

Alles zusammen haben wir folgende Einstellungen:

 
\context {
  \name ImproVoice
  \type "Engraver_group"
  \consists "Note_heads_engraver"
  \consists "Text_engraver"
  \consists "Pitch_squash_engraver"
  squashedPosition = #0
  \override NoteHead.style = #'slash
  \hide Stem
  \alias Voice
}

Kontexte sind hierarchisch. Wie wollen, dass ImproVoice sich als Unterkontext von Staff erkennt, wie eine normale Stimme. Darum wird die Definition von Staff mit dem \accepts-Befehl verändert:

 
\context {
  \Staff
  \accepts ImproVoice
}

Das Gegenteil von \accepts ist \denies (verbietet), was manchmal gebraucht werden kann, wenn schon existierende Kontext-Definitionen wieder benutzt werden sollen.

Beide Definitionen müssen in die \layout-Umgebung geschrieben werden:

 
\layout {
  \context {
    \name ImproVoice
    …
  }
  \context {
    \Staff
    \accepts "ImproVoice"
  }
}

Jetzt kann die Notation zu Beginn des Abschnitts folgendermaßen notiert werden:

 
\relative {
  a'4 d8 bes8
  \new ImproVoice {
    c4^"ad lib" c
    c4 c^"ausziehen"
    c c_"während des Spielens :)"
  }
  a1
}

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

5.1.7 Reihenfolge des Kontextlayouts

@translationof Context layout order

Kontexte werden in einer Systemgruppe normalerweise von oben nach unten positioniert in der Reihenfolge, wie sie in der Quelldatei auftreten. Wenn Kontext verschachtelt ewrden, enthält der äußere Kontexte geschachtelte innere Kontexte, wie in der Quelldatei angegeben, vorausgesetzt, die inneren Kontexte befinden sich auch in der „accepts“-Liste. Geschachtelte Kontexte, die nicht in dieser „accepts“-Liste enthalten sind, werden unterhalb des äußeren Kontextes neu positioniert, anstatt innerhalb von ihm gesetzt zu werden.

Die „accepts“-Liste eines Kontextes kann mit dem Befehlen \accepts und \denies verändert werden. \accepts fügt einen Kontext zur „accepts“-Liste, und \denies entfernt einen Kontext aus der Liste. Akkordbezeichnungen sollen beispielsweise normalerweise nicht innerhalb eines Staff-Kontextes geschachtelt werden, sodass der ChordNames-Kontext nicht automatisch in der „accepts“-Liste des Staff-Kontextes geführt ist. Wenn er aber benötigt wird, kann er hinzugefügt werden:

 
\score {
  \new Staff {
    c' d' e' f'
    \chords { d1:m7 b1:min7.5- }
  }
}

[image of music]

 
\score {
  \new Staff {
    c' d' e' f'
    \chords { d1:m7 b1:min7.5- }
  }
  \layout {
    \context {
      \Staff
      \accepts "ChordNames"
    }
  }
}

[image of music]

\denies wird vorrangig eingesetzt, wenn ein neuer Kontext basierend auf einem existierenden erstellt wird, aber sein Schachtelungsverhalten sich unterscheidet. Der VaticanaStaff-Kontext beispielsweise basiert auf dem Staff-Kontext, hat aber den VaticanaVoice-Kontext anstellt des Voice-Kontexts in seiner „accepts“-Liste.

Zur Erinnerung: ein Kontext wird automatisch erstellt, wenn ein Befehl auftritt, der in den aktuellen Kontexten nicht enthalten sein kann. Dass kann zu unerwarteten neuen Systemgruppen oder Partituren führen.

Manchmal soll ein Kontext nur für einen kurzen Moment existieren, ein gutes Beispiel etwa ein System für ein Ossia. Das wird normalerweise erreicht, indem man die Kontextdefinition an der richtigen Stelle parallel mit dem existierenden Abschnitt der Hauptnoten anlegt. Standardmäßig wird der neue Kontext unter den existierenden Kontexten angelegt. Um ihn aber über dem Kontext mit der Bezeichnung „Hauptstimme“ zu positionieren, sollte er folgenderweise erstellt werden:

 
\new Staff \with { alignAboveContext = "Hauptstimme" }

Eine ähnliche Situation entsteht, wenn man einen zeitweiligen Gesangstext in einem Layout mit mehreren Notensystemen anlegen und positionieren will, etwa wenn eine zweite Strophe zu einem wiederholten Abschnitt in einem ChoirStaff hinzugefügt wird. Standardmäßig wird der neue Text unter dem untersten System angelegt. Wenn der Gesangstext mit der Eigenschaft alignBelowContext definiert wird, kann er korrekt unter dem (bezeichneten) Gesangstext positioniert werden, der die erste Strophe enthält.

Beispiele, die diese Neuordnung von temporären Kontexten zeigen, finden sich an anderen Stellen; siehe (learning)Musikalische Ausdrücke ineinander verschachteln in Abschnitt ‘Musikalische Ausdrücke ineinander verschachteln’ in Handbuch zum Lernen, Einzelne Systeme verändern und Techniken für die Gesangstextnotation.

Siehe auch

Handbuch zum Lernen: (learning)Musikalische Ausdrücke ineinander verschachteln in Abschnitt ‘Musikalische Ausdrücke ineinander verschachteln’ in Handbuch zum Lernen.

Notationsreferenz: Einzelne Systeme verändern, Techniken für die Gesangstextnotation.

Handbuch zur Benutzung: (usage)Ein zusätzliches System erscheint in Abschnitt ‘Ein zusätzliches System erscheint’ in Anwendungsbenutzung.

Installierte Dateien: ‘ly/engraver-init.ly’.


[ < ] [ > ]   [ << ] [ 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.