LilyPond — Nouveautés
Ce document recense les modifications et les nouvelles fonctionnalités de LilyPond pour la version 2.22.2 (depuis la 2.20). |
Nouveautés en matière de notation musicale
Améliorations de la représentation des hauteurs
-
Un glyphe d’altération correspondant au code SMuFL U+E2E3 a été ajouté.
Il s’agit d’une accidentelle étendue d’Helmhotz-Ellis qui hausse d’un
quart de ton non décimal.
-
Le nom des notes en quart de ton est désormais disponible dans toutes
les langues de saisie.
\language "català" \relative { do'4 sol' miqb re do1 }
-
Définir
suggestAccidentals
à'cautionary
a pour effet d’appliquer le styleAccidentalSuggestion
uniquement aux altérations accidentelles de précaution. Ceci permet de distinguer les accidentelles facsimile de celles à vocation éditoriale.\relative { \key d \minor d''4 cis8 b? cis2 \set suggestAccidentals = ##t d4 cis8 b? cis2 \set suggestAccidentals = #'cautionary d4 cis8 b? cis2 }
-
Ajout de la commande
\ambitusAfter
, qui permet de positionner l’ambitus à un endroit particulier.\new Staff \with { \consists Ambitus_engraver } \relative { \ambitusAfter key-signature \key d \major es'8 g bes cis d2 }
-
Les crochets d’octaviation (par ex. « 8 » ou « 15 ») s’indiquent
désormais par un simple chiffre et sont imprimés en gras. La nouvelle
propriété
ottavationMarkups
permet d’influer sur ce comportement par défaut, à l’aide d’une liste déterminée de markups :\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 }
Améliorations en matière de rythme
-
Les n-olets peuvent désormais s’indiquer à l’aide d’une liaison en
lieu et place d’un crochet :
\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 }
-
Les ligatures à la française (
\override Stem.french-beaming = ##t
) se comportent à l’identique des ligatures standard (par défaut) dans toutes leurs composantes (position de la ligature et placement des articulations, doigtés, etc.) à ceci près que les hampes intermédiaires ne traversent pas le trait de ligature. -
Le swing et les motifs rythmiques irréguliers peuvent désormais
s’appliquer à des expressions musicales composées de durées régulières
qui peuvent s’utiliser pour rendre une interprétation inégale en MIDI.
\include "swing.ly" << \new Staff \with { instrumentName = "ordinaire" } \repeat unfold 8 c'8 \new Staff \with { instrumentName = "avec swing" } \repeat unfold 4 \tripletFeel 8 { c'8 c' } \new Staff \with { instrumentName = "triolets" } \tuplet 3/2 4 \repeat unfold 12 c'8 >>
-
Plusieurs glyphes, correspondant aux
256e, 512e et 1024e de soupir, ainsi que les crochets respectifs, ont été ajoutés.
-
Le nouveau
Merge_mmrest_numbers_engraver
permet d’éviter la duplication du nombre surplombant les silences multimesures.
Améliorations en matière d’expressivité
-
Ajout de la commande de nuance
\n
pour niente. -
Ajout de deux nouveaux ornements.
{ c''2\slashturn c''\haydnturn }
-
Ajout d’un point d’arrêt ultracourt et de variantes à la Henze pour les
points d’orgue plus ou moins longs.
{ c'1\veryshortfermata c'2\henzeshortfermata c'\henzelongfermata }
-
Point d’orgue et autres articulations peuvent désormais s’ajouter
directement à un silence multimesure. Par conséquent, l’utilisation de
la commande
\fermataMarkup
est désapprouvée.{ R1\fermata R-> R\coda }
Améliorations en matière d’annotations éditoriales
-
Le
New_fingering_engraver
prend désormais en charge la propriétéX-align-on-main-noteheads
de laself-alignment-interface
. Dès lors qu’elle est activée (##t
), tous les doigtés positionnésup
oudown
seront rangés sur une unique colonne alignée sur les têtes de note, du côté adéquat de la hampe :{ \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> }
Améliorations en matière de mise en forme du texte
-
Les fontes par défaut sont désormais celles du jeu URW Core 35 dans sa
version 2.0, en lieu et place des fontes TeX Gyre. Ces fontes disposent
d’une ligature pour
Nr.
– voir Tout savoir sur les fontes pour s’en affranchir temporairement ou de façon globale. -
La commande de markup
\note
prend désormais une durée en tant que premier argument, au lieu d’une chaîne :\markup { \override #'(style . cross) { \note {4..} #UP } \hspace #2 \note {\breve} #0 }
Nouveautés en matière de notation spécialisée
Améliorations pour la musique vocale
-
Un trait d’union peut désormais être redoublé après un saut de ligne,
avant la première syllabe du nouveau système :
\relative { d'8^( e f e f4) \bar "" \break e4 } \addlyrics { \override LyricHyphen.after-line-breaking = ##t A -- men. }
-
Un changement graduel de voyelle (ou une consonne maintenue) peut
s’indiquer en ajoutant un signe de transition entre les syllabes à
l’aide de la commande
\vowelTransition
.{ g'2 g' } \addlyrics { Ah \vowelTransition oh. }
Améliorations pour les cordes frettées ou non
-
Les diagrammes de fret peuvent désormais s’imprimer en version
« gaucher » dès lors que
handedness
(sous-propriété defret-diagram-details
) aura été définie àLEFT
.\markup \center-column { "C" "(gaucher)" \override #`(fret-diagram-details . ((handedness . ,LEFT))) \fret-diagram "6-x;5-3-3;4-2-2;3-o;2-1;1-o;" }
- Quelques diagrammes de fret pour ukulele ont été corrigés, et d’autres ont été ajoutés.
Améliorations pour la notation des accords
-
Les accords peuvent être désormais automatiquement renversés, ou avoir
l’une de leurs composantes sautée.
\chordmode { \dropNote 2 { c2:maj7 d:m7 } \invertChords 1 d1:maj7 }
-
Les fonctions historiques de nommage d’accord
banter-chord-names
etjazz-chord-names
ont été supprimées de la base de code, tout comme les propriétéschordNamesExceptionsFull
etchordNamesExceptionsPartial
. Dans le cadre d’une réécriture, le power chord est désormais inclus dans les exceptions par défaut et sera imprimé correctement (annotation en exposant comme tous les accords) sans avoir besoin de bricolage – la commande prédéfinie\powerChords
devient donc inutile. Les adeptes des fonctions historiques peuvent en trouver une copie (plus ou moins fonctionnelle) dans le morceau choisi ‘chord-names-alternative.ly’.
Améliorations pour la notation contemporaine
-
Un nouvel objet graphique, appelé
DurationLine
, est désormais disponible. Il prolonge un objet rythmique par une ligne jusqu’à l’objet rythmique suivant. Cette ligne peut adopter différents styles :'beam
,'line
,'dashed-line
,'dotted-line
,'zigzag
,'trill
ou'none
. La ligne peut se terminer par un crochet (uniquement pour le style'beam
) ou une flêche.
Nouveautés en matière d’entrée et sortie
Améliorations pour les fichiers sources
-
Comme il avait été annoncé lors de la diffusion de la version 2.17.3,
l’option
'relative-includes
est désormais activée par défaut. Lorsqu’un fichier faisant l’objet d’une inclusion comporte lui-même une instruction\include
, le chemin alors recherché sera relatif à ce fichier, non par rapport au répertoire du fichier principal. Il est possible de contrevenir à ce comportement en affectant#f
à la directive'relative-includes
, que ce soit en ligne de commande ou par l’utilisation d’unly:set-option
dans le fichier source. -
\compressFullBarRests
a été renommé en\compressEmptyMeasures
afin d’éviter toute confusion avec\compressMMRests
. Dans le même esprit,\expandFullBarRests
devient\expandEmptyMeasures
. -
La commande
\partcombine
, ainsi que les commandes, sous-routines et noms de propriété préfixées departCombine
, s’écrivent désormais avec un C majuscule, comme\partCombine
,\partCombineApart
, etc. La commande\autochange
suit le même principe et se libelle désormais\autoChange
. -
Toutes les langues de saisie (instruction
\language
) peuvent se mentionner avec leur propre orthographe UTF-8 – autrement dit y compris avec des caractères spéciaux. Les dénominationscatalà
etportuguês
s’ajoutent désormais aux appellations originellescatalan
etportugues
. - LilyPond pour Windows (MinGW) gère les noms de fichier Unicode à compter de Windows 10-1903.
Améliorations pour les fichiers résultants
-
Les lignes d’horizon (skylines) prennent désormais en compte la
propriété
rotation
des objets de rendu. Faire pivoter un soufflet de crescendo en lui appliquant par exemple\override Hairpin.rotation = #'(15 0 0)
aura une influence sur les lignes d’horizon et donc aidera à améliorer l’espacement. -
Un léger décalage a été ajouté au glyphe de bécarre dont les extrémités
se touchaient à l’occasion d’un changement d’armure.
-
Les lignes d’horizon des boîtes reflètent désormais l’emprise réelle de
la boîte, y compris les bords arrondis et la rotation.
#(ly:set-option 'debug-skylines #t) { b'1^\markup \scale #'(2 . 1) \rotate #30 \override #'(corner-radius . 3) \rounded-box \center-column { box skyline } }
-
Les couleurs style CSS peuvent désormais s’utiliser directement sous
forme de chaîne textuelle, soit par leur nom de couleur prédifini comme
avec la fonction existante
css-color
, soit par leur code hexadécimal préfixé d’un#
. Tous les stencils disposant de la propriétécolor
acceptent maintenant une liste ou une chaîne. Dans le cas d’une chaîne, celle-ci sera directement utilisée pour une sortie SVG, ce qui autorisera le recours à la transparence alpha (saisie "#RRGGBBAA" ou "#RGBA").\override NoteHead.color = "lightsalmon" \override Flag.color = "#E30074" \override Beam.color = "#5e45ad" \override Rest.color = "#3058" g'8 \huge r4 a'16 f'
-
Les marque-pages sont désormais pris en charge, ce qui permet aux
entrées
\tocItem
d’apparaître dans le panneau latéral des visionneuses de PDF qui disposent de cette fonctionnalité. -
\table-of-contents
accepte désormais une structure hiérarchique. Les entrées\tocItem
acceptent en option un symbole, comme\label
, ou une liste de symboles séparés par un point, afin d’indiquer leur position dans la partition. Cette fonctionnalité a pour effet qu’il n’est plus possible de donner une simple chaîne en argument à\tocItem
; il faut utiliser une commande\markup
.\tocItem \markup "Entrée de tête" \tocItem symbol "Nom de l'entrée de tête" \tocItem symbol.list "Entrée de niveau inférieur (enfant)"
- Grâce aux nouvelles options ‘-dpng-width’ et ‘-dpng-height’, il est désormais possible de spécifier la taille, en pixels, des images PNG générées.
- La sortie SVG est désormais disponible avec l’option en ligne de commande ‘--svg’ – ou l’option canonique ‘--format=svg’ abrégée en ‘-fsvg’. En raison des spécificités du moteur de rendu, cette option est à ce jour incompatible avec les autres formats de sortie ; pour obtenir, en plus du SVG, un fichier PDF, PNG ou EPS, sera requis un traitement supplémentaire par LilyPond.
Pour des annonces plus anciennes, rendez-vouz aux pages https://lilypond.org/doc/v2.20/Documentation/changes/, https://lilypond.org/doc/v2.18/Documentation/changes/, ou remontez à l’index de la documentation.