[Top][Contents] |
LilyPond — Nouveautés
Ce document recense les modifications et les nouvelles fonctionnalités de LilyPond pour la version 2.25.22 (depuis la 2.24). |
Note : Chaque nouvelle version de LilyPond peut comporter des
changements de syntaxe, ce qui peut exiger de modifier les fichiers que
vous avez écrits avec des versions précédentes, de telle sorte qu’ils
restent fonctionnels avec les nouvelles versions. Afin de mettre à jour
vos fichiers, il est fortement conseillé d’utiliser
l’utilitaire convert-ly
distribué avec LilyPond et qui est
abordé dans Mise à jour avec convert-ly. convert-ly
est capable de réaliser la plupart des modifications de syntaxe
automatiquement. Les utilisateurs de Frescobaldi peuvent lancer
convert-ly
directement à partir du menu de Frescobaldi en
faisant « Outils > Mettre à jour avec convert-ly… ». D’autres
environnements prenant en charge LilyPond sont susceptibles de fournir
un moyen graphique de lancer convert-ly
.
Modifications majeures de LilyPond | ||
Nouveautés en matière de notation musicale | ||
Nouveautés en matière de notation spécialisée | ||
Autres améliorations diverses |
[ << Top ] | [Top][Contents] | [ Nouveautés en matière de notation musicale >> ] |
[ < Top ] | [ Up : Top ] | [ Notes à propos de la compilation des sources et à l’attention des empaqueteurs > ] |
Modifications majeures de LilyPond
- Le marges sont désormais plus larges, suivant ainsi les mises en pages
de nombreux éditeurs, et conformément aux recommandations d’Elaine
Gould.
Pour retrouver les mêmes réglages que précédemment, notamment dans le but de conserver la mise en page après mise à jour d’une partition à la version 2.25.22, il suffit d’ajouter le code suivant :
\paper { top-margin = 5\mm bottom-margin = 6\mm top-system-spacing.basic-distance = 1 top-markup-spacing.basic-distance = 0 left-margin = 10\mm right-margin = 10\mm inner-margin = 10\mm outer-margin = 20\mm binding-offset = 0\mm }
- Au lieu de générer des sorties PostScript ou SVG par lui-même, LilyPond
peut désormais utiliser la bibliothèque Cairo pour produire ses
résultats. Il est ici fait référence au « moteur Cairo » qui peut être
activé par l’option
-dbackend-cairo
en ligne de commande. Cette fonctionnalité est opérationnelle pour tous les formats de sortie (PDF, SVG, PNG, PostScript) et apporte vitesse et amélioration du rendu SVG en particulier. Néanmoins, les fonctionnalités des moteurs par défaut ne sont pas encore toutes implémentées. Sont entre autre absents le plan des PDF, l’option-dembed-source-code
pour le PDF et la propriétéoutput-attributes
pour le SVG. - Les distances entre la clef et la métrique ainsi qu’entre la clef et
l’armure sont désormais calculées différemment. Par voie de conséquence,
on obtient un meilleur espacement pour des clefs imposantes, comme
\clef "GG"
, ou très fines comme\clef "petrucci-c3"
.L’image suivante illustre les modifications apportées aux positionnements. Le pourcentage indique la différence d’espacement entre la clef et la métrique, et entre la clef et l’armure.
Notez bien que, comme précédemment, c’est la clef la plus large d’un regroupement de portées qui détermine le positionnement horizontal de toutes les clefs d’un système. Ceci signifie, par exemple, qu’une partiition pour piano comprtant une clef de sol et une clef d’alto ne sera en rien modifiée.
Pour retrouver les valeurs par défaut antérieures, quelle qu’en soit la raison, il suffit d’ajouter
\override Staff.Clef.space-alist.time-signature = #'(minimum-space . 3.5) \override Staff.Clef.space-alist.key-cancellation = #'(minimum-space . 3.5) \override Staff.Clef.space-alist.key-signature = #'(minimum-space . 4.2)
à la partition.
- Le mode majeur LilyPond de l’éditeur de texte GNU Emacs fourni au
travers du paquetage Emacs Lisp
lilypond-mode.el
a été renommé deLilyPond-mode
enlilypond-mode
. Le préfixe d’espace de noms est désormais tout en minuscules, passant deLilyPond-
àlilypond-
et, par conséquent, toutes les fonctions, variables, etc. ont toutes leur préfixe en minuscules. Ce changement est apporté pour se conformer aux conventions de nommage d’Emacs et, plus particilièrement, afin que le nom du mode corresponde au paquetage qui le fournit. Il en sera ainsi plus facile aux nouveaux utilisateurs d’utiliser LilyPond au sein d’Emacs.Ceci pourrait perturber certaines configurations d’Emacs existantes sans une simple adaptation du fichier d’initialisation d’Emacs. Voisci comment, par exemple, spécifier l’utilissation du
lilypond-mode
à l’aide de la macrouse-package
d’Emacs :(use-package lilypond-mode :ensure nil :mode "\\.\\(ly\\|ily\\)$")
Notes à propos de la compilation des sources et à l’attention des empaqueteurs
Cette section est destinée aux enthousiastes qui compilent LilyPond à partir des sources et aux empaqueteurs qui préparent LilyPond pour les différentes distributions. Si vous ne faites partie d’aucun de ces groupes, vous pouvez aisément passer ce qui suit.
- LilyPond requiert désormais Guile 3.0.7. Comme précédemment, il est
fortement recommandé de générer le bytecode des fichiers
.scm lors de la compilation en lançant
make install-bytecode
avantmake install
.
Nouveautés en matière de notation musicale
Améliorations de la représentation des hauteurs
Améliorations en matière de rythme
-
\slashedGrace
imprime désormais des ligatures barrées.{ \slashedGrace { d'16 e' d' } c'1 \slashedGrace { d16 e'' d' } c'1 }
L’utilisation de
beam::slashed-stencil
permet de barrer des ligatures de façon arbitraire. Définirdetails.slash-side
àRIGHT
placera la barre sur la droite de la ligature.{ \override Beam.stencil = #beam::slashed-stencil \cadenzaOn c'16^[ a' c''] c''^[ a' c'] c'_[ a' c''] c''_[ a' c'] \override Beam.details.slash-side = #RIGHT c'16^[ a' c''] c''^[ a' c'] c'_[ a' c''] c''_[ a' c'] }
L’apparence de la barre peut se personnaliser par dérogations aux sous-propriétés
details
over-beam-height
,slash-slope
,slash-side
,slash-stem-fraction
,slash-thickness
etslash-X-positions
. - Il est désormais possible d’aligner par la droite différents types de
barre de mesure.
\new StaffGroup << \new Staff { \textMark "default" b1 } \new Staff { b1 \section } >> \new StaffGroup << \new Staff { \textMark "right-aligned" b1 } \new Staff { b1 \override StaffGroup.BarLine.right-justified = ##t \section } >>
- Désormais, les contrôles de mesure (
|
) créent implicitement des contextes. Les développeurs considèrent que cela n’aura aucun impact sur les partitions courantes. N’hésitez pas à signaler tout problème qui ne trouverait pas de solution de contournement évidente. - La nouvelle option
span-all-note-heads
permet aux crochets de n-olets d’embrasser toutes les têtes de notes (pas seulement les hampes) comme recommandé par Gould et Ross. - La subdivision des ligatures automatiques a été retravaillée. Jusqu’à
présent, on pouvait constater de nombreuses imperfections dans la
manière de subdiviser automatiquement des motifs de ligature complexes
en raison de surestimations de la valeur de
beatBase
. LilyPond est désormais capable de subdiviser correctement la plupart des motifs de ligature sans utiliser la valeur debeatBase
pour limiter la subdivision d’une ligature. La simple activation desubdivideBeams
divise automatiquement tous les intervalles par défaut. Trois nouvelles propriétés ont été introduites pour permettre d’affiner la subdivision automatique des ligatures :minimumBeamSubdivisionInterval
,maximumBeamSubdivisionInterval
etrespectIncompleteBeams
.minimumBeamSubdivisionInterval
limite les intervalles de subdivision de manière identique à ce quebeatBase
faisait auparavant (réduction de la fréquence des subdivisions de ligatures).maximumBeamSubdivisionInterval
limite globalement le nombre de tronçons supprimés aux emplacements de subdivision.respectIncompleteBeams
limite le nombre de moignons lorsque le temps restant ne complèterait pas la métrique de la subdivision. RéglerminimumBeamSubdivisionInterval
à la valeur debeatBase
dans tous les cas, y compris lorsquebeatBase
varie implicitement, préserve le comportement antérieur. - Sont désormais disponibles des glyphes de crochets « empilés ». Tous les
éléments d’un glyphe de crochet ont la même largeur, mais sont
verticalement plus compacts.
Ces glyphes sont accessibles à l’aide de
\flagStyleStacked
; un\flagStyleDefault
permet de retrouver le style de crochet standard. - Le style de
TimeSignature
'single-digit
a été renommé en'single-number
.
Améliorations en matière d’expressivité
- Les soufflets de style Ferneyhough acceptent désormais un cercle
al niente.
{ \override Hairpin.circled-tip = ##t \override Hairpin.stencil = #flared-hairpin b1\< b\> b\> b2 b\< b2 b\! }
- Sont désormais disponibles deux variantes du signe de respiration :
laltcomma
etraltcomma
. Ces glyphes représentent respectivement les anciens galbes de « lcomma » et « rcomma » avant leur changement pour un galbe plus courant.{ \override BreathingSign.text = \markup { \musicglyph "scripts.raltcomma" } f'2 \breathe f' | }
- L’ondulation d’un objet
TrillSpanner
requiert désormais moins d’espace vertical.
Améliorations en matière de reprises
- Les fins alternatives d’un
\repeat volta
ne créent plus de barre de mesure invisible. Ceci peut affecter le saut de ligne, l’espacement horizontal et l’extension d’unVoltaBracket
lorsqu’une alternative débute ou se termine en l’absence de barre de mesure. Dans le cas d’un changement non désiré, il est possible d’ajouter un\bar ""
ou toute autre commande créant un objetBarLine
précisément à ce point. - Grâce à la propriété
printInitialRepeatBar
, il est désormais possible d’afficher automatiquement une barre de reprise même lorsqu’elle intervient en début de pièce. - Le positionnement du numéro de volta relativement au crochet de
reprise peut désormais s’ajuster à l’aide de la propriété
volta-number-offset
duVoltaBracket
.
Améliorations en matière d’annotations éditoriales
- Le
FingerGlideSpanner
permet maintenant de connecter des objetsStringNumber
etStrokeFinger
.{ \set strokeFingerOrientations = #'(down) b2 \glide -\rightHandFinger #1 \glide -2 \glide \5 e'-\rightHandFinger #1 -2 \5 }
- Les objets graphiques
NoteName
sont désormais centrés horizontalement par défaut.
Améliorations en matière de fontes et de mise en forme du texte
- La nouvelle commande de markup
\bar-line
permet d’imprimer une barre de mesure dans du texte.\markup { \override #'(word-space . 2) \line { Examples \fontsize #-5 \translate-scaled #'(0 . 2) { \bar-line ":|." \bar-line ".|:" \bar-line ";!S!;" \bar-line "]{|}[" } } }
- La syntaxe permettant de modifier les fontes musicales et textuelles a
changé. Au lieu de
\paper { #(define fonts (set-global-fonts #:music "Nom de la fonte musicale" #:brace "Nom de la fonte musicale d'accolades" #:roman "Nom de la fonte à empattements" #:sans "Nom de la fonte sans empattements" #:typewriter "Nom de la fonte monospace")) }
ou
\paper { #(define fonts (make-pango-font-tree "Nom de la fonte à empattements" "Nom de la fonte sans empattements" "Nom de la fonte monospace" factor)) }
la syntaxe consacrée est dorénavant
\paper { property-defaults.fonts.music = "Nom de la fonte musicale" property-defaults.fonts.serif = "Nom de la fonte à empattements" property-defaults.fonts.sans = "Nom de la fonte sans empattement" property-defaults.fonts.typewriter = "Nom de la fonte monospace" }
Contrairement aux anciennes pratiques, la nouvelle syntaxe n’interfère en rien dans la taille des fontes, qui doit se gérer séparément à l’aide de
set-global-staff-size
oulayout-set-staff-size
.La liste associative ne comporte pas de clé
brace
; les glyphes d’accolade sont désormais toujours pris dans la fonte musicale. Il est néanmoins possible d’y déroger en utilisant une famille de fontes supplémentaire, comme dans l’exemple suivant (la fonte LilyJAZZ doit alors être disponible) :\layout { \context { \Score \override SystemStartBrace.font.music = "lilyjazz" } } \new PianoStaff << \new Staff { c' } \new Staff { c' } >> \markup \override #'(fonts . ((music . "lilyjazz"))) \left-brace #20
Dans la mesure où
fonts
est une simple propriété, il est possible de lui apporter dérogation sur la base d’un objet graphique, comme par exemple\layout { \override Score.SectionLabel.fonts.roman = "Custom font" }
Ceci s’avère préférable à l’utilisation de la propriété
font-name
, cette dernière rendant ineffectives les commandes telles que\bold
et requérant d’inclure « Bold » dans la chaîne defont-name
. L’utilisation defonts
ne provoque pas de tels effets. - La commande de markup
\lookup
n’est désormais disponible que pour les accolades ; pour les autres glyphes, c’est la commande\musicglyph
qu’il faut utiliser. Au lieu de\lookup
, il vaut d’ailleurs mieux lui préférer\left-brace
. - Lorsqu’une fonte musicale est utilisée dans un markup –
typiquement pour une indication de nuance – et qu’un glyphe en était
absent, celui-ci était rendu dans une fonte textuelle normale. Ceci
n’est plus le cas, et un avertissement est alors émis quant au glyphe
manquant. Afin d’utiliser une fonte textuelle, il faut utiliser l’une
des commande de markup
\serif
,\sans
ou\typewriter
, comme ici par exemple.dolceP = #(make-dynamic-script #{ \markup { \serif \normal-weight dolce p } #}) { c'\dolceP }
- Les petites capitales s’obtiennent désormais en réglant
font-variant
sursmall-caps
, plutôt qu’en fixantfont-shape
àcaps
. Dans la mesure où la raison d’être defont-shape
est de pouvoir accéder à l’italique, ce changement rend possible l’utilisation conjointe de petites capitales et de l’italique. - La propriété
font-series
est désormais plus flexible et accepte des valeurs telles quesemibold
etlight
en plus des seulesnormal
etbold
.La valeur
medium
est désormais une valeur intermédiaire entrenormal
etbold
plutôt qu’un équivalent denormal
. Par conséquent, la commande de markup\medium
a été renommée en\normal-weight
. - La nouvelle propriété
font-stretch
permet de sélectionner une fonte resserrée ou expansée. - Le texte d’un objet
VoltaBracket
tel que défini par un\override Score.VoltaBracket.text = …
ou\set Score.repeatCommands = …
n’est plus automatiquement rendu dans une fonte musicale ; il faut pour cela utiliser la commande de markup\volta-number
sur les parties qui le nécessitent. Il faudra donc, par exemple, convertir\set Score.repeatCommands = #'((volta "2, 5"))
en
\set Score.repeatCommands = #`((volta ,#{ \markup { \concat { \volta-number 2 , } \volta-number 5 } #}))
- Dans un markup, les doigtés (
\markup \finger
) et chiffrages d’accord (\markup \figured-bass
) sont désormais adaptés à la taille du texte normal en présence d’un\fontsize
.myText = \markup { The fingering \finger { 5-4 } for a \figured-bass { 7 "6\\" } … } \myText \markup\fontsize #6 \myText
Le comportement antérieur peut être retrouvé en activant les variables globales
legacy-figured-bass-markup-fontsize
etlegacy-finger-markup-fontsize
, soit :#(set! legacy-figured-bass-markup-fontsize #t) #(set! legacy-finger-markup-fontsize #t) myText = \markup { The fingering \finger { 4-5 } for a \figured-bass { 5+ 6 } … } \myText \markup\fontsize #6 \myText
- Pour plus de clarté, la commande de markup
\roman
a été renommée en\serif
. Aussi, pour modifier une propriétéfont-family
réglée àsans
outypewriter
, il faut faut la définir àserif
, non plus àroman
. - La commande de markup
\text
a été supprimée. Doivent être utilisées en remplacement les commandes\serif
,\sans
ou\typewriter
. Si ces commandes permettaient de définir le style de fonte uniquement lorsqu’une fonte textuelle était utilisée (non une fonte musicale comme pour les nuances), elles déterminent désormais à la fois le style de fonte et l’utilisation d’une fonte textuelle. - La taille de la police utilisée par la commande de markup
\volta-number
a été réduite afin de mieux s’harmoniser avec le texte environnant. Par la même occasion, la taille du crochet de reprise (qui utilise\volta-number
pour son formatage par défaut) a été augmentée en proportion inverse afin de compenser dans les cas habituels. - Certains glyphes, tels que « one » ou « accidentals.hufnagelM1 », de la fonte Emmentaler avaient une boîte englobante trop larhe en raison d’un bogue dans la chaîne de production des fontes. Ceci est désormais corrigé, mais certaines différences pourraient apparaître dans la typographie puisque des boîtes englobantes plus étroites peuvent entraîner une typographie plus resserrée.
- De nouvelles commandes pour imprimer une reprrésentation textuelle des
altérations ont été ajoutées :
\text-doubleflat
,\text-flat
,\text-natural
,\text-sharp
,\text-doublesharp
ainsi que de manière plus générale\text-accidental
.\markuplist \override #'(padding . 1) \table #'(-1 -1 -1 -1 -1 -1) { "Accidentals for text:" \text-doubleflat \text-flat \text-natural \text-sharp \text-doublesharp "Accidentals for music:" \doubleflat \flat \natural \sharp \doublesharp }
Nouveautés en matière de notation spécialisée
Améliorations pour les notations anciennes
- Pour plus de cohérence avec les clefs anciennes, cinq nouvelles clefs
mensurales sont disponibles :
"mensural-f2"
,"mensural-f3"
,"mensural-f4"
(identique à"mensural-f"
),"mensural-f5"
,"mensural-g1"
et"mensural-g2"
(identique à"mensural-g"
). - La métrique et le style d’altération à l’armure d’un contexte
PetrucciStaff
sont désormais identiques à ceux d’unMensuralStaff
. - Les ligatures mensurales blanches prennent désormais en charge quelques
cas rares (semi-brève isolée ou non), et autorisent des affinages
permettant d’indiquer quelque hampe non nécessaire.
\score { \relative { \set Score.timing = ##f \set Score.measureBarType = #'() \override NoteHead.style = #'petrucci \override Staff.TimeSignature.style = #'mensural \clef "petrucci-c4" \[ a1 g f e \] \[ a1 g\longa \] \[ \once \override NoteHead.left-down-stem = ##t a\breve b \once \override NoteHead.right-down-stem = ##t g\longa \] \[ \once \override NoteHead.right-down-stem = ##t b\maxima \once \override NoteHead.right-up-stem = ##t g\longa \] } \layout { \context { \Voice \remove Ligature_bracket_engraver \consists Mensural_ligature_engraver } } }
- L’utilisation de gregorian.ly est désuète. Bien que toujours
fonctionnelle pour raison de compatibilté ascendante, elle devrait être
remplacée par l’utilisation d’un contexte
VaticanaScore
, avec si besoin des adaptations manuelles dans le bloc\layout
. Un code tel que\include "gregorian.ly" \score { \new VaticanaStaff { ... } }
devrait devenir
\new VaticanaScore { \new VaticanaStaff { ... } } \layout { indent = 0 ragged-last = ##t }
- La langue de saisie ‘arabic’ est dépréciée. Bien que toujours fonctionnelle pour des raisons de rétrocompatiblité – si l’on charge hel-arabic –, il est recommandé d’utiliser « english », « italiano » ou votre langue de saisie préférée.
- Les réglages par défaut des étiquettes de diagramme de fret ont changé.
- La valeur par défaut de
fret-label-vertical-offset
est fixée à -0.5, ce qui a pour effet de centrer l’étiquette dans l’espace du fret. - Le format numérique par défaut est désormais
'custom
, avec un format de chaîne"~dfr"
(résultant en ‘3fr’ par exemple), au lieu de'roman-lower
.
- La valeur par défaut de
- La commande
\autoBeamOff
interrompt désormais immédiatement la ligature automatique. Auparavant, ses effets étaient différés lorsque le graveur de ligature automatique était actif. - Il n’est désormais plus nécessaire de désactiver les ligatures
automatiques dans le cadre d’un
\crossStaff
. - Les indications
\upbow
et\downbow
sont désormais correctement inversées lorsque placées sous la portée. En consésquence, les glyphesscripts.upbow
etscripts.downbow
ont été respectivement renommés enscript.uupbow
etscripts.udownbow
, et les glyphes inversés nommésscripts.dupbow
etscripts.ddownbow
.\relative c' { f4^\downbow f^\upbow f_\downbow f_\upbow }
[ << Nouveautés en matière de notation spécialisée ] | [Top][Contents] | [ >> ] |
[ < Améliorations pour les notations anciennes ] | [ Up : Top ] | [ > ] |
Autres améliorations diverses
- La propriété de contexte
baseMoment
est abandonnée au profit debeatBase
. L’utilisation debaseMoment
accède de manière transparente àbeatBase
et génère un message d’avertissement. - La valeur de la propriété de contexte
timeSignatureSettings
utilise désormais le symbolebeatBase
en remplacemeent debaseMoment
.convert-ly
n’est pas en mesure de traiter ce changement. - L’inclusion d’images PNG est désormais possible à l’aide de la commande
de markup
\image
. Ceci vient en supplement de la commande\epsfile
pour les images EPS.La commande
\image
traîte aussi bien les images PNG que EPS, à ceci près que la commande\image
insère un fond blanc, contrairement à\epsfile
. - La nouvelle commande de markup
\qr-code
permet d’insérer un QR-code de la taille spécifiée pour l’URL correspondante. Ceci peut servir à fournir un lien vers le site du compositeur ou de l’éditeur, ou bien vers les sources LilyPond ou des enregistrements, etc.\markup \qr-code #10 "https://lilypond.org"
- Des parenthèses pour texte de markup ont été ajoutés aux fontes Emmentaler, pour s’harmoniser avec les nombres (contrairement à celles déjà disponibles pour les altérations).
- Ont été ajoutés à la fonte Emmentaler les glyphes figure-dash (U+2012) et en-dash (U+2013) (quart de catradin).
- Une espace pour nombres (U+2007), une espace fine (U+2009) et une espace ultrafine (U+200A) ont été ajoutées à la fonte Emmentaler.
- L’option
-dinclude-settings
peut désormais apparaître à plusieurs reprises, afin de pouvoir inclure différentes feuilles de style. - Dans l’utilisation conjointe de LaTeX et
lilypond-book
, les images au fil du texte sont désormais décalées verticalement. Ce décalage peut se contrôler en ligne de commande à l’aide de l’option --inline-vshift et, localement, en ajoutantinline
en argument aux options de l’extrait. - Deux nouvelles options en ligne de commande font leur apparition :
-dfirst and -dlast. Elles sont équivalents aux
réglages respectifs de
showFirstLength
etshowLastLength
dans un fichier LilyPond. Par exemple, taperlilypond -dlast=R1*5 ...
aura pour résultat que LilyPond génèrera seulement les cinq dernières mesure (partant du principe d’une métrique à 4/4).
- Est désormais disponible un nouveau manuel constituant un index de tous les objets graphiques (grobs) de LilyPond. Il est basé sur le travail de Joram Berger pour LilyPond 2.19.
- L’impression des arpeggios a été améliorée de par l’utilisation de
nouvelles valeurs par défaut différentes pour la propriété
Arpeggio.positions
. Les ajustements à cette propriété sont susceptibles d’évoluer. - LilyPond prend en charge les annotations au fil du texte, autrement dit des sortes de notes de bas de page entre les systèmes. Bien que ce ne soit pas nouveau, puisque disponible depuis la version 2.15.17 publiée en 2011, cette possibilité n’était pas si stable et manquait de documentation jusqu’à présent.
- Le script
lilysong
a été supprimé. En dehors du fait qu’il ne disposait d’aucune documentation, il n’était plus maintenu depuis fort longtemps. De plus, il reposait sur un programme externe de synthèse vocale –festival
– laissé à l’abandon. - Deux nouveaux styles sont disponibles pour la propriété d’objet
graphique
space-alist
:shrink-space
etsemi-shrink-space
. Ils contractent les espaces au lieu de les étendre. Ils sont aussi directement utilisés par LilyPond afin d’améliorer le formatage des portées resserrées. - Le binaire
lilypond
dispose d’une nouvelle option en ligne de commande, -dstaff-size, pour régler la taille globale des portées. Elle est équivalente à la présence d’unset-global-staff-size
dans un fichier LilyPond. - En remplacement des fonctions
\bookOutputName
et\bookOutputSuffix
, nous recommandons dorénavant l’utilisation des variables de papieroutput-filename
etoutput-suffix
. Bien que les premières restent pleinement fonctionnelles, ces dernières sont plus cohérentes et facilement compréhensibles, notamment si elles sont combinées avec des variables de papier prédéfinies. - La propriété
Stem.details.lengths
accepte maintenant des paires en tant qu’éléments de liste. Ceci permet de définir séparément les longueurs de hampe ascendante ou descendante. - La fonction
ly:self-alignment-interface::aligned-on-x-parent
– utilisée par de nombreux objets graphiques pour calculer leur x-offset – écoute désormais la nouvelle propriétéX-alignment-extent
dePaperColumn
. Activée par défaut, elle fournit une largeur de secours au grobPaperColumn
dans le cas où il ne contiendrait pas de tête de note. Ceci permet d’aider à l’alignement des scripts de nuance attachés à des silences invisibles, entre autres.music = \new Staff << { f'2 g'2 } { s4\f s\f s\f s\f } >> \score { \music } \score { \music \layout { \context { \Score \override PaperColumn.X-alignment-extent = ##f } } }
- Les objets
BassFigureContinuation
prennent désormais en charge lahorizontal-line-spanner-interface
. La propriétépadding
a été remplacée par des sous-propriétés correspondantes dansbound-details
. - La commande de markup
\align-on-other
accepte désormais la valeur#f
pour l’alignement, indiquant le point de référence d’un markup. - Une nouvelle fonction
\withRelativeDir
est désormais disponible pour les commandes de markup qui incluent des fichiers lorsque ces fichiers devraient se trouver relativement au fichier source. Par exemple :\markup { \image #X #3 \withRelativeDir "test.png" }
- Le positionnement des crochets horizontaux d’analyse a été amélioré.
En particulier, l’objet
HorizontalBracket
a désormais une valeur deoutside-staff-priority
fixée à 800. Par conséquent, il se pourrait que des crochets imbriqués voient leur positionement modifié. Ceci peut se corriger en ajustant les valeurs deoutside-staff-priority
par un\tweak
, tout en sachant que le crochet externe doit garder une valeur de priorité supérieure. - La nouvelle fonction Scheme
to-staff-space
permet de convertir des dimensions absolues (exprimées en diverses unités) en unités d’espace de portée. Par exemple :top-markup-spacing.basic-distance = #(to-staff-space 2 'cm) % l'unité par défaut est le point (pt) \markup \override #`(baseline-skip . ,(to-staff-space 20)) \column { foo bar }
- Les deux nouvelles fonctions de markup
\abs-hspace
et\abs-vspace
permettent de déterminer des dimensions absolues qui subsistent quelle que soit la taille de portée en cours. - Les donnes émises par l’option en ligne de commande -dshow-available-fonts sont désormais envoyées sur la sortie standard.
- La fonction
ly:font-config-display-fonts
accepte désormais un argument optionnel pour sélectionner le port de sortie. - La gestion des options Scheme en ligne de commande gagne en
robustesse. Quelques changements mineurs ont été rendus nécessaires par
cette nouvelle implémentation.
- Sur la ligne de commande, l’argument à l’option -dpaper-size ne
nécéssite plus d’être mis entre guillemets. En d’autres termes,
mentionner
-dpaper-size=a3
est tout à fait valide. - L’option pixmap-format requiert désormais une valeur sous forme
de chaîne, non plus un symbole. Rien ne change pour la ligne de
commande, mais un appel tel que
#(ly:set-option 'pixmap-format 'pngalpha)
devra être changé en
#(ly:set-option 'pixmap-format "pngalpha")
Il en va de même pour les options separate-page-formats et tall-page-formats. Notez que
convert-ly
se charge d’effectuer la modification automatiquement.
- Sur la ligne de commande, l’argument à l’option -dpaper-size ne
nécéssite plus d’être mis entre guillemets. En d’autres termes,
mentionner
- La
side-position-interface
dispose de deux nouvelles propriétés,X-padding
etminimum-X-space
, aux fins de contrôler le décalage horizontal et la distance minimale d’un grob avec son objet parent, indépendamment du décalage vertical et de la distance minimale. Ceci se révèle utile pour des objets tels queFingering
qui peuvent avoir un attachement à une tête de note tant dans la verticalité que l’horizontalité, et dont le décalage dans chacun des axes peut requérir des valeurs différentes. -
\pushContextProperty
et\popContextProperty
sont deux nouvelles commandes permettant de manipuler les propriétés de contexte. La première insère la valeur courante dans une pile et définit une nouvelle valeur, alors que la seconde suprime cette valeur de la pile et restaure la valeur initale.{ c' \pushContextProperty Staff.fontSize 3 c' \pushContextProperty Staff.fontSize 6 c' \popContextProperty Staff.fontSize c' \popContextProperty Staff.fontSize c' }
Pour des annonces plus anciennes, rendez-vouz aux pages https://lilypond.org/doc/v2.22/Documentation/changes/, ou remontez à l’index de la documentation.