LilyPond Changes: LilyPond – Neuerungen

# LilyPond – Neuerungen

Dieses Dokument listet die Änderungen und neuen Funktionen in LilyPond für die Version 2.22.2 seit 2.20.

### Neuerungen in der musikalischen Notation

#### Verbesserungen bei der Anzeige von Tonhöhen

- Ein Versetzungszeichen entsprechend des SMuFL-Codes U+E2E3 wurde hinzugefügt (Extended Helmholtz-Ellis Versetzungszeichen: Erhöhung um eine undezimale Quarte).

- Notennamen der Vierteltöne sind jetzt in allen Eingabesprachen verfügbar.

  >     \language "català"
  >     \relative { do'4 sol' miqb re do1 }

- Das Setzen von `suggestAccidentals` auf `'cautionary` wandelt nur warnende Versetzungszeichen in `AccidentalSuggestion` um. Dies kann zur Unterscheidung zwischen originalen und redaktionellen Versetzungszeichen benutzt werden.

  >     \relative {
  >       \key d \minor
  >       d''4 cis8 b? cis2
  >       \set suggestAccidentals = ##t
  >       d4 cis8 b? cis2
  >       \set suggestAccidentals = #'cautionary
  >       d4 cis8 b? cis2
  >     }

- Der Befehl `\ambitusAfter` wurde hinzugefügt, um den Ambitus an eine andere Position zu verschieben.

  >     \new Staff \with {
  >       \consists Ambitus_engraver
  >     } \relative {
  >       \ambitusAfter key-signature
  >       \key d \major
  >       es'8 g bes cis d2
  >     }

- Oktavierungszeichen werden jetzt standardmäßig mit einer einzelnen Nummer versehen (beispielsweise ‚8‘ oder ‚15‘) und fett gedruckt. Eine neue Eigenschaft `ottavationMarkups` wurde eingeführt, um dieses Verhalten zu verändern, wofür mehrere vordefinierte Werte verfügbar sind:

  >     \relative c'' {
  >       \ottava #1
  >       a'2 b
  >       \ottava #2
  >       a'2 b
  >       \bar "||"
  >       \set Staff.ottavationMarkups = #ottavation-ordinals
  >       \ottava #1
  >       a,2 b
  >       \ottava #2
  >       a'2 b
  >       \bar "||"
  >       \set Staff.ottavationMarkups = #ottavation-simple-ordinals
  >       \ottava #1
  >       a,2 b
  >       \ottava #2
  >       a'2 b
  >     }

#### Verbesserungen bei Rhythmen

- N-tolen können jetzt mit Bögen statt Klammern gedruckt werden:

  >     \relative {
  >       \tuplet 3/2 4 {
  >         \override TupletBracket.tuplet-slur = ##t
  >         c'4 e8 d4 f8
  >         \override TupletBracket.bracket-visibility = ##t
  >         e f g f e d
  >       } c1
  >     }

- Französische Bebalkung (`\override Stem.french-beaming = ##t`) verhält sich jetzt in allen Belangen genauso wie Standardbebalkung (Positionierung der Balken und Platzierung der Artikulationen, Fingersätze, etc.). Der einzige verbleibende Unterschied ist, dass innere Hälse nicht durch die Balken gehen.

- Swing und unregelmäßige rhythmische Muster können jetzt auf Musikausdrücke aus regulären Dauern angewandt werden, wodurch ungleiche rhythmische Interpretationen in MIDI erzeugt werden können.

  >     \include "swing.ly"
  >     <<
  >       \new Staff \with {
  >         instrumentName = "ordinary"
  >       } \repeat unfold 8 c'8
  >       \new Staff \with {
  >         instrumentName = "with swing"
  >       } \repeat unfold 4 \tripletFeel 8 { c'8 c' }
  >       \new Staff \with {
  >         instrumentName = "triplets"
  >       } \tuplet 3/2 4 \repeat unfold 12 c'8
  >     >>

- Schriftzeichen für 256-, 512- und 1024-Fahnen und -Pausen wurden hinzugefügt.

- Der neue `Merge_mmrest_numbers_engraver` versteckt doppelte Nummern auf mehrtaktigen Pausen.

#### Verbesserungen bei Ausdrucksbezeichnungen

- Ein Dynamikbefehl `\n` für niente wurde hinzugefügt.

- Zwei neue Ornamente wurden hinzugefügt.

  >     {
  >       c''2\slashturn c''\haydnturn
  >     }

- Eine sehr kurze Fermate und Henze-Variationen der langen und kurzen Fermaten wurden hinzugefügt.

  >     {
  >       c'1\veryshortfermata
  >       c'2\henzeshortfermata c'\henzelongfermata
  >     }

- Fermaten und andere Artikulationen können jetzt direkt bei mehrtaktigen Pausen hinzugefügt werden. Der Befehl `\fermataMarkup` ist daher veraltet.

  >     {
  >       R1\fermata
  >       R->
  >       R\coda
  >     }

#### Verbesserungen bei Anmerkungen

- Der `New_fingering_engraver` berücksichtigt jetzt die Eigenschaft `X-align-on-main-noteheads` des `self-alignment-interface`. Falls gesetzt (`##t`) werden alle Fingersätze mit Orientierung `up` oder `down` in einer Spalte angeordnet und an den Notenköpfen auf der richtigen Seite der Hälse ausgerichtet:

  >     {
  >       \set fingeringOrientations = #'(up)
  >       <e'-1 d''-4 e''-5>4 <a'-1 b'-2 fis''-5>
  >       \set fingeringOrientations = #'(down)
  >       <e'-1 d''-4 e''-5> <eis'-1 e''-4 fis''-5>
  >       \bar "."
  >       \override Fingering.X-align-on-main-noteheads = ##t
  >       \set fingeringOrientations = #'(up)
  >       <e'-1 d''-4 e''-5> <a'-1 b'-2 fis''-5>
  >       \set fingeringOrientations = #'(down)
  >       <e'-1 d''-4 e''-5> <eis'-1 e''-4 fis''-5>
  >     }

#### Verbesserungen bei der Textformattierung

- Die Standardschriftarten sind jetzt jene aus der Sammlung URW Core 35, Version 2.0, statt der TeX Gyre Schriftarten. Es ist zu beachten, dass die neuen Schriftarten eine Ligatur für ‚Nr.‘ enthalten; die englische Dokumentation enthält im Abschnitt ‚Fonts explained‘ Lösungen, um die Ersetzung lokal und global zu vermeiden.
- Der Befehl `\note` erwartet jetzt als erstes Argument eine Dauer statt einer Zeichenkette:

  >     \markup {
  >       \override #'(style . cross) {
  >         \note {4..} #UP
  >       }
  >       \hspace #2
  >       \note {\breve} #0
  >     }

### Neuerungen für spezielle Notation

#### Verbesserungen für die Notation von Gesang

- Ein Bindestrich kann jetzt am Anfang eines Systems wiederholt werden, das mit einer neuen Silbe beginnt:

- Ein sanfter Wechsel von Vokalen (oder anhaltender Konsonanten) kann durch einen Vokalübergang zwischen Silben durch den Befehl `\vowelTransition` angezeigt werden:

  >     { g'2 g' }
  >     \addlyrics { Ah \vowelTransition oh. }

#### Verbesserungen für Saitenunstrument mit und ohne Bünden

- Bund-Diagramme können jetzt linkshändig dargestellt werden, indem die Einstellung `handedness` auf den Wert `LEFT` gesetzt wird (als Untereigenschaft von `fret-diagram-details`).

  >     \markup
  >       \center-column {
  >         "C"
  >         "(left-handed)"
  >          \override #`(fret-diagram-details . ((handedness . ,LEFT)))
  >          \fret-diagram "6-x;5-3-3;4-2-2;3-o;2-1;1-o;"
  >       }

- Einige Bund-Diagramme für Ukulelen wurden korrigiert und neue Diagramme hinzugefügt.

#### Verbesserungen für die Notation von Akkorden

- Akkorde können jetzt automatisch invertiert oder Noten ausgelassen werden.

  >     \chordmode {
  >       \dropNote 2 {
  >         c2:maj7 d:m7
  >       }
  >       \invertChords 1 d1:maj7
  >     }

- Die alten Funktionen `banter-chord-names` und `jazz-chord-names` für die Benennung von Akkorden wurden aus dem Hauptcode entfernt, ebenso wie die Eigenschaften `chordNamesExceptionsFull` und `chordNamesExceptionsPartial`. Im Zuge dieser Überarbeitung sind Powerakkorde jetzt Teil der normalen Ausnahmen und werden ohne Anpassungen richtig dargestellt (mit hochgestellten Zeichen wie alle anderen Akkorde), ohne den Befehl `\powerChords`. Bei Interesse an den ehemaligen Funktionen wird auf deren (teilweise funktionierende) Kopie in dem Schnipsel ‘`chord-names-alternative.ly`’ verwiesen.

#### Verbesserungen für zeitgenössische Musik

- Ein neues Grob `DurationLine` ist jetzt verfügbar. Es setzt ein rhythmisches Grob mit einer Linie fort, die am nächsten rhythmischen Grob endet. Mögliche Aussehen sind `'beam`, `'line`, `'dashed-line`, `'dotted-line`, `'zigzag`, `'trill` und `'none`. Die Haltelinie kann mit einem Haken (nur in der Art eines Balkens) oder einem Pfeil abgeschlossen werden.

### Neuerungen in der Ein- und Ausgabe

#### Verbesserungen bei der Eingabedatei

- Wie bei der Version 2.17.3 vor nahezu acht Jahren angekündigt ist die Option `'relative-includes` jetzt standardmäßig aktiviert: Eingebundene Dateien, die selbst einen `\include` Befehl enthalten, müssen von ihrem eigenen Pfad ausgehen statt vom Verzeichnis der Hauptdatei. Dieses Verhalten kann durch Setzen der Einstellung `'relative-includes` auf `#f` ausgeschaltet werden, entweder als Option von die Kommandozeile oder durch Benutzung von `ly:set-option` in der Quelldatei.
- `\compressFullBarRests` wurde in `\compressEmptyMeasures` umbenannt, um mögliche Verwirrung mit `\compressMMRests` zu vermeiden. Gleichfalls heißt `\expandFullBarRests` ab dieser Version `\expandEmptyMeasures`.
- Der Befehl `\partcombine` ebenso wie alle Befehle, Unterroutinen und Eigenschaften mit dem Präfix `partCombine` werden jetzt mit einem großen C geschrieben, also `\partCombine`, `\partCombineApart` etc. Der Befehl `\autochange` wurde zu `\autoChange`.
- Alle Eingabesprachen des Befehls `\language` können jetzt mit ihrer richtigen UTF-8-Schreibweise mit Sonderzeichen eingegeben werden. Die fehlenden Namen `català` und `português` sind zusätzlich auch mit den ursprünglichen Namen `catalan` `portugues` verfügbar.
- LilyPond für Windows (MinGW) kann jetzt Dateinamen mit Unicode-Zeichen ab Windows 10 1903 behandeln.

#### Verbesserungen bei der Ausgabe

- Skylines berücksichtigen jetzt die Eigenschaft `rotation` von Layout-Objekten. Das Drehen einer Crescendo-Klammer über das Setzen von `\override Hairpin.rotation = #'(15 0 0)` hat jetzt beispielsweise einen Einfluss auf die Skylines und hilft so beim Verbessern der Abstände.

- Es wurden geringe Abstände zwischen Auflösungszeichen hinzugefügt, die sich bei Aufhebung der Tonart nur an den Ecken berühren.

  >     {
  >       \omit Staff.TimeSignature
  >       \key ces \major s1 \key c \major s
  >     }

- Skylines von Boxen berücksichten jetzt den echten Umriss mit abgerundeten Ecken und Drehungen.

  >     #(ly:set-option 'debug-skylines #t)
  >     {
  >       b'1^\markup \scale #'(2 . 1)
  >                   \rotate #30
  >                   \override #'(corner-radius . 3)
  >                   \rounded-box \center-column { box skyline }
  >     }

- CSS-Farben können jetzt direkt verwendet werden, entweder mit ihren vordefinierten Namen (wie bei der bereits verfügbaren Funktion `css-color`) oder mit ihren hexadezimalen Farbcodes nach Angabe des Präfix `#`. Alle Zeichenroutinen, die die Eigenschaft `color` unterstützen, akzeptieren jetzt entweder eine Liste oder eine Zeichenkette; im letzteren Fall wird diese Zeichenkette direkt in der SVG-Ausgabe genutzt. Das ermöglicht die Verwendung von alpha-Transparenz in SVG (eingegeben als "#RRGGBBAA" oder "#RGBA").

  >     \override NoteHead.color = "lightsalmon"
  >     \override Flag.color = "#E30074"
  >     \override Beam.color = "#5e45ad"
  >     \override Rest.color = "#3058"
  >     g'8 \huge r4 a'16 f'

- PDF-Lesezeichen werden jetzt unterstützt und ermöglichen es, dass Einträge mit `\tocItem` im ‚Inhaltsverzeichnis‘ eines PDF-Betrachters erscheinen, der dies unterstützt.
- `\table-of-contents` akzeptiert jetzt hierarchische Strukturen; ein Eintrag mit `\tocItem` kann zusätzlich ein Symbol (wie `\label`) oder eine durch Punkte getrennte Liste von Symbolen annehmen, die die Position in der Partiturstruktur anzeigt. Ein Nebeneffekt dieser Änderung ist, dass `\tocItem` nicht länger eine einfache Zeichenkette annimmt, sondern der Befehl `\markup` genutzt werden muss.

  >     \tocItem \markup "Top-level entry"
  >     \tocItem symbol "Named top-level entry"
  >     \tocItem symbol.list "Second-level (child) entry"

- Mit den neuen Optionen ‘`-dpng-width`’ und ‘`-dpng-height`’ ist es jetzt möglich, die Größe der PNG-Ausgabe in Pixeln anzugeben.
- Die Ausgabe als SVG kann jetzt durch die Option ‘`--svg`’ aktiviert werden (oder durch die kanonische Form ‘`--format=svg`’, kurz auch als ‘`-fsvg`’). Wegen der Festlegung des Backends ist diese Option noch nicht mit anderen Ausgabeformaten kompatibel; um eine Datei sowohl in SVG und PDF, PNG oder EPS zu übersetzen, ist ein zweiter Aufruf von LilyPond nötig.

For older news, go to https://lilypond.org/doc/v2.20/Documentation/changes/, https://lilypond.org/doc/v2.18/Documentation/changes/, or go back to the Documentation index.

#### LilyPond – Neuerungen v2.22.2 (stabiler Zweig).