\input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-

@ignore
    Translation of GIT committish: 18cf09c1f24d22eeb0cdc187dec0af734d60cfc8

    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
    Guide, node Updating translation committishes..
@end ignore

@c Translators: Jean-Charles Malahieude
@c Translation checkers:

@settitle LilyPond Changes

@c no dircategory nor direntry in  French
@c since info is not translated. -JCM
@c deux lignes vides entre les items

@include fr/macros.itexi

@documentencoding UTF-8
@documentlanguage fr
@afourpaper

@macro manualIntro
Ce document recense les modifications et les nouvelles fonctionnalités
de LilyPond pour la version @version{} (depuis la 2.24).
@end macro

@lilyTitlePage{Nouveautés}

@iftex
@allowcodebreaks false
@end iftex

@ignore

HINTS

* only show verbatim input for syntax/input changes

* try to be as brief possible in those cases

* don't try to provide real-world examples, they often get too big,
which scares away people.

* Write complete sentences.

* only show user-visible changes.

@end ignore


@warning{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 @strong{fortement conseillé} d'utiliser
l'utilitaire @command{convert-ly} distribué avec LilyPond et qui est
abordé dans @rprogramnamed{Updating files with convert-ly, Mise à jour
avec convert-ly}. @command{convert-ly} est capable de réaliser la
plupart des modifications de syntaxe automatiquement. Les utilisateurs
de Frescobaldi peuvent lancer @command{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
@command{convert-ly}.}


@c Don't remove this top-level menu; it is needed to suppress automatic
@c generation of a `@detailmenu` block by `texi2any` up to version 7.2.
@menu
* Major changes in LilyPond::   Modifications majeures de LilyPond
* New for musical notation::    Nouveautés en matière de notation musicale
* New for specialist notation:: Nouveautés en matière de notation spécialisée
* Miscellaneous improvements::  Autres améliorations diverses
@end menu


@contents


@node Major changes in LilyPond
@unnumbered Modifications majeures de LilyPond

@itemize

@item
Les 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 @version{}, il suffit d'ajouter le code suivant :

@example
\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
@}
@end example


@item
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 @code{-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 @code{-dembed-source-code} pour le PDF et la propriété
@code{output-attributes} pour le SVG.

@item
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
@code{\clef "GG"}, ou très fines comme @code{\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.

@lilypond[quote]
diff =
#(define-music-function (percent) (string?)
  #{
     \once \override Score.TextMark.break-align-symbols = #'(clef)
     \textMark \markup {
                 \smaller \smaller { #percent \hspace #-0.5 "%" } }
  #})

musicA = {
  \override Score.Clef.space-alist.time-signature =
              #'(minimum-space . 4.2)
  \time 2/2 c'2
}
musicB = {
  \time 2/2 c'2
}

musicC = {
  \omit Staff.TimeSignature
  \override Staff.Clef.space-alist.key-cancellation =
              #'(minimum-space . 3.5)
  \override Staff.Clef.space-alist.key-signature =
              #'(minimum-space . 3.5)
  \key c \minor c'2
}
musicD = {
  \omit Staff.TimeSignature
  \key c \minor c'2
}

\markup \line {
  \override #'(baseline-skip . 10) \column {
    "clef + métrique"
    \vspace #-2.5
    "ancien"
    \vspace #-1
    \score { { \clef "treble" \musicA } }
    \score { { \clef "alto" \musicA } }
    \score { { \clef "bass" \musicA } }
    \score { { \clef "GG" \musicA } }
    \score { { \clef "varC" \musicA } }
    \score { \new PetrucciStaff {
               \clef "petrucci-c3" \musicA } }
  }

  \hspace #3

  \override #'(baseline-skip . 10) \column {
    "clef + métrique"
    \vspace #-2.5
    "nouveau"
    \vspace #-1
    \score { { \clef "treble" \diff "-1.6" \musicB } }
    \score { { \clef "alto" \diff "+0.5" \musicB } }
    \score { { \clef "bass" \diff "0" \musicB } }
    \score { { \clef "GG" \diff "+17.9" \musicB } }
    \score { { \clef "varC" \diff "-5.6" \musicB } }
    \score { \new PetrucciStaff {
               \clef "petrucci-c3" \diff "-21.8" \musicB } }
  }

  \hspace #4

  \override #'(baseline-skip . 10) \column {
    "clef + métrique"
    \vspace #-2.5
    "ancien"
    \vspace #-1
    \score { { \clef "treble" \musicC } }
    \score { { \clef "alto" \musicC } }
    \score { { \clef "bass" \musicC } }
    \score { { \clef "GG" \musicC } }
    \score { { \clef "varC" \musicC } }
    \score { \new PetrucciStaff {
               \clef "petrucci-c3" \musicC } }
  }

  \hspace #4

  \override #'(baseline-skip . 10) \column {
    "clef + métrique"
    \vspace #-2.5
    "nouveau"
    \vspace #-1
    \score { { \clef "treble" \diff "-1.5" \musicD } }
    \score { { \clef "alto" \diff "+0.5" \musicD } }
    \score { { \clef "bass" \diff "0" \musicD } }
    \score { { \clef "GG" \diff "+9.3" \musicD } }
    \score { { \clef "varC" \diff "-5.2" \musicD } }
    \score { \new PetrucciStaff {
               \clef "petrucci-c3" \diff "-23.5" \musicD } }
  }
}

\paper {
  indent = 0
}
@end lilypond

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
partition pour piano comportant une clef de sol et une clef de fa 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

@example
\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)
@end example

@noindent
à la partition.

@item
Le mode majeur LilyPond de l'éditeur de texte GNU Emacs fourni au
travers du paquetage Emacs Lisp @code{lilypond-mode.el} a été renommé de
@code{LilyPond-mode} en @code{lilypond-mode}. Le préfixe d'espace de
noms est désormais tout en minuscules, passant de @code{LilyPond-} à
@code{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
particuliè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. Voici
comment, par exemple, spécifier l'utilisation du @code{lilypond-mode} à
l'aide de la macro @code{use-package} d'Emacs :

@example
(use-package lilypond-mode
  :ensure nil
  :mode "\\.\\(ly\\|ily\\)$")
@end example

@end itemize


@node Notes for source compilation and packagers
@unnumberedsec 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.

@itemize
@item
LilyPond requiert désormais Guile 3.0.7 ou supérieur. Le @emph{bytecode}
des fichiers @file{.scm} est par défaut généré. Si tel n'est pas votre
désir, qu'elle qu'en soit la raison, ajoutez l'option @code{BYTECODE=no}
à la commande @command{make}.

@end itemize


@need 1500
@node New for musical notation
@unnumbered Nouveautés en matière de notation musicale


@node Pitches improvements
@unnumberedsec Améliorations de la représentation des hauteurs

@itemize

@item
La nouvelle commande @code{\approximatePitch} permet de créer des notes
de hauteur approximative.

@lilypond[quote,verbatim]
\relative c'' {
  e4 f g \approximatePitch c
}
@end lilypond

@item
Certains faux changements de clef ont été réglés.

@lilypond[quote,verbatim]
{
  R1
  \clef treble
  R1
}
@end lilypond

@end itemize


@node Rhythm improvements
@unnumberedsec Améliorations en matière de rythme

@itemize

@item
La commande @code{\time} prend désormais en charge les métriques
complexes qui auparavant nécessitaient @code{\compoundMeter}, même si la
syntaxe est quelque peu différente. La commande @code{\compoundMeter} a
été renommée en @code{\timeAbbrev}.

@lilypond[quote,verbatim]
{
  \time #'((2 2 2 3) . 8)
  \repeat unfold 9 c'8
}
@end lilypond

@item
La nouvelle commande @code{\submeasureBarsOn} permet d'afficher
automatiquement des barres de mesure entre les composants d'une métrique
alternative stricte (non montré ici), ou lorsque spécifié par les
réglages de la nouvelle propriété de contexte @code{submeasureStructure}
ou par les pulsations de l'argument optionnel de la commande
@code{\time}.

@lilypond[quote,verbatim]
{
  \submeasureBarsOn
  \time #'((3 4) (3 4) (4 3 4)) 25/16
  \repeat unfold 25 c'16
}
@end lilypond

@item
La nouvelle commande @code{\polymetric} simplifie la notation d'une
polymétrie dont la longueur des mesures est alignée lorsque sont réglées
les propriétés d'échelonnement de la métrique dans des contextes
différents de @code{Timing}.

@lilypond[quote,verbatim]
<<
  \new Staff {
    \scaleDurations 4/6 {
      \context Staff \polymetric \time 6,6,6 18/16
      \repeat unfold 18 c'16
    }
  }
  \new Staff {
    \time 3/4
    c'4 4 4
  }
>>
@end lilypond

@item
Les ligatures automatiques pour une métrique à 2/8 ont été modifiées de
sorte à autoriser une ligature sur l'entièreté de la mesure.

@lilypond
<<
  \time 2/8
  \new Staff \with { subdivideBeams = ##f } {
    <>^"subdivideBeams = ##f"
    \repeat unfold 2 e'8
    \repeat unfold 4 e'16
    \repeat unfold 8 e'32
  }
  \new Staff \with { subdivideBeams = ##t } {
    <>^"subdivideBeams = ##t"
    \repeat unfold 2 e'8
    \repeat unfold 4 e'16
    \repeat unfold 8 e'32
  }
>>
@end lilypond

@item
@code{\enablePolymeter} a été renommé en @code{\enablePerStaffTiming}
afin d'éviter toute confusion puisqu'elle n'est recommandée que dans
certains cas particuliers de polymétrie.

@item
La propriété @code{TimeSignature@/.time-signature} remplace l'ancienne
propriété @code{fraction}. Cette nouvelle propriété est plus généraliste
et autorise des dérogations, ce qui permet certaines adaptations sans
devoir toucher la propriété @code{stencil}.

@lilypond[quote,verbatim]
{
  \once \override Timing.TimeSignature.time-signature = #'(-1 . 12)
  R1
}
@end lilypond

@item
La commande @code{\time} accepte désormais un nombre rationnel au
numérateur. L'objet graphique @code{TimeSignature} et la fonction
@emph{markup} @code{\compound-@/meter} disposent de nouvelles propriétés
permettant de contrôler le style de la partie fractionnelle.

@lilypond[quote]
{
  \override Timing.TimeSignature.nested-fraction-mixed = ##t
  \override Timing.TimeSignature.nested-fraction-relative-font-size = -5.5
  \override Timing.TimeSignature.nested-fraction-orientation = #'vertical
  \time #'(5/2 . 4)
  r2 r8

  \override Timing.TimeSignature.nested-fraction-mixed = ##t
  \override Timing.TimeSignature.nested-fraction-relative-font-size = -5.5
  \override Timing.TimeSignature.nested-fraction-orientation = #'horizontal
  \time #'(5/2 . 4)
  r2 r8

  \override Timing.TimeSignature.nested-fraction-mixed = ##f
  \override Timing.TimeSignature.nested-fraction-relative-font-size = 0
  \override Timing.TimeSignature.nested-fraction-orientation = #'horizontal
  \time #'(5/2 . 4)
  r2 r8
}
@end lilypond

@item
La commande @code{\time} accepte désormais un nombre rationnel en
dénominateur afin de prendre en charge des métriques dont le temps est
supérieur à la ronde.

@lilypond[quote,verbatim]
{
  \override Timing.TimeSignature.denominator-style = #'note
  \time #'(4 . 1/2)
  e'\breve f' g' a'
}
@end lilypond

@item
L'objet graphique @code{TimeSignature} et la fonction @emph{markup}
@code{\compound-@/meter} acceptent désormais des métriques de style
nombre sur note à l'aide de @code{denominator-@/style} et propriétés
relatives.

@lilypond[quote,verbatim]
{
  \override Timing.TimeSignature.style = #'numbered
  \override Timing.TimeSignature.denominator-style = #'note
  \once \override Timing.TimeSignature.time-signature = #'(2 . 8/3)
  \time 6/8
  r4. g'8 8 8
}
@end lilypond

@item
@code{\slashedGrace} imprime désormais des ligatures barrées.

@lilypond[quote,verbatim]
{
  \slashedGrace { d'16 e' d' } c'1
  \slashedGrace { d16 e'' d' } c'1
}
@end lilypond

L'utilisation de @code{beam::slashed-stencil} permet de barrer des
ligatures de façon arbitraire. Définir @code{details.slash-side} à
@code{RIGHT} placera la barre sur la droite de la ligature.

@lilypond[quote,verbatim]
{
  \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']
}
@end lilypond

L'apparence de la barre peut se personnaliser par dérogations aux
sous-propriétés @code{details} @code{over-beam-height},
@code{slash-slope}, @code{slash-side}, @code{slash-stem-fraction},
@code{slash-thickness} et @code{slash-X-positions}.

@item
La commande @code{\autoBeamOff} interrompt désormais immédiatement la
ligature automatique. Auparavant, ses effets étaient différés lorsque le
graveur de ligature automatique était actif.

@item
Il est désormais possible d'aligner par la droite différents types de
barre de mesure.

@lilypond[quote,verbatim]
\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 }
  >>
@end lilypond

@item
Désormais, les contrôles de mesure (@code{|}) 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.

@item
La nouvelle option @code{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.

@lilypond[quote]
{
  \time 3/4
  \override TupletBracket.span-all-note-heads = ##t
  \tuplet 3/2
    {
      \tuplet 3/2
        {
          fis'8
          (
          e'8
          d'8
        }
      g'4
      f'4
      )
    }
  \tuplet 3/2
    {
      <c' d'>8
      a'8
      r8
    }
}
@end lilypond

@item
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 @code{beatBase}. LilyPond
est désormais capable de subdiviser correctement la plupart des motifs
de ligature sans utiliser la valeur de @code{beatBase} pour limiter la
subdivision d'une ligature. La simple activation de
@code{subdivideBeams} 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 :
@code{beamMinimumSubdivision}, @code{beamMaximumSubdivision} et
@code{respectIncompleteBeams}. @code{beamMinimumSubdivision} limite les
intervalles de subdivision de manière identique à ce que @code{beatBase}
faisait auparavant (réduction de la fréquence des subdivisions de
ligatures). @code{beamMaximumSubdivision} limite globalement le nombre
de tronçons supprimés aux emplacements de subdivision.
@code{respectIncompleteBeams} limite le nombre de moignons lorsque le
temps restant ne compléterait pas la métrique de la subdivision. Régler
@code{beamMinimumSubdivision} à la valeur de @code{beatBase} dans tous
les cas, y compris lorsque @code{beatBase} varie implicitement, préserve
le comportement antérieur.

@item
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 @code{\flagStyleStacked} ; un
@code{\flagStyleDefault} permet de retrouver le style de crochet
standard.

@lilypond[quote,indent=0\cm,ragged-right,staffsize=26]
Music = {
  d'8*1/128 d'16*1/64 d'32*1/32 d'64*1/16
    d'128*1/8 d'256*1/4 d'512*1/2 d'1024 s1024
  g''8*1/128 g''16*1/64 g''32*1/32 g''64*1/16
    g''128*1/8 g''256*1/4 g''512*1/2 g''1024 }

{
  \omit Staff.BarNumber
  \omit Staff.Clef
  \omit Staff.TimeSignature
  \autoBeamOff

  <>^"stacked" \flagStyleStacked \Music \break
  <>^"default" \flagStyleDefault \Music
}
@end lilypond

@item
Le style de @code{TimeSignature} @code{'single-digit} a été renommé en
@code{'single-number}.

@end itemize


@node Expressive mark improvements
@unnumberedsec Améliorations en matière d'expressivité

@itemize

@item
Les nouvelles commandes @code{\chordSlur} et @code{\nonArpeggiato}
permettent de créer des liaisons verticales et des crochets sans
détourner l'utilisation de la commande @code{\arpeggio}.

@lilypond[quote,verbatim]
{ <c' g'>\nonArpeggiato <c' f''>\chordSlur }
@end lilypond

@item
Un nouvel ornement, @code{bachschleifer}, est désormais disponible.

@lilypond[quote,verbatim]
{ b' g''\bachschleifer }
@end lilypond

@item
Il est désormais possible de positionner un @code{Script} sur la gauche
ou sur la droite d'un @code{NoteHead}.

@lilypond[quote,verbatim]
{ <c' g' c''\atRight \mordent e''>2 }
@end lilypond

@item
Les soufflets de style Ferneyhough acceptent désormais un cercle
@dfn{al niente}.

@lilypond[quote,verbatim]
{
  \override Hairpin.circled-tip = ##t
  \override Hairpin.stencil = #flared-hairpin
  b1\< b\> b\> b2 b\< b2 b\!
}
@end lilypond

@item
Sont désormais disponibles deux variantes du signe de respiration :
@code{laltcomma} et @code{raltcomma}. Ces glyphes représentent
respectivement les anciens galbes de « lcomma » et « rcomma » avant leur
changement pour un galbe plus courant.

@lilypond[quote,verbatim]
{
  \override BreathingSign.text =
    \markup { \musicglyph "scripts.raltcomma" }
  f'2 \breathe f' |
}
@end lilypond

@item
L'ondulation d'un objet @code{TrillSpanner} requiert désormais moins
d'espace vertical.

@end itemize


@node Repeat improvements
@unnumberedsec Améliorations en matière de reprises

@itemize
@item
Les nouvelles fonctions musicales @code{\%} et @code{\*} servent de
raccourci à @code{\repeat percent} et @code{\repeat unfolded}.

@lilypond[quote,verbatim]
\%3 \*4 cis''4
@end lilypond

@item
Les fins alternatives d'un @code{\repeat volta} ne créent plus de barre
de mesure invisible. Ceci peut affecter le saut de ligne, l'espacement
horizontal et la longueur d'un @code{VoltaBracket} 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
@code{\bar ""} ou toute autre commande créant un objet @code{BarLine}
précisément à ce point.

@item
Grâce à la propriété @code{printInitialRepeatBar}, il est désormais
possible d'afficher automatiquement une barre de reprise même
lorsqu'elle intervient en début de pièce.

@lilypond[quote]
\fixed c'' {
  \set Score.printInitialRepeatBar = ##t
  \repeat volta 2 { c2 f }
}
@end lilypond

@item
Le positionnement du numéro de @emph{volta} relativement au crochet de
reprise peut désormais s'ajuster à l'aide de la propriété
@code{volta-number-offset} du @code{VoltaBracket}.

@end itemize


@node Editorial annotation improvements
@unnumberedsec Améliorations en matière d'annotations éditoriales

@itemize

@item
Les @emph{incipits} peuvent désormais adopter différents types de
contexte. Ils acceptent aussi un argument optionnel destiné à les
décaler sur la gauche

@lilypond[verbatim,quote]
\score {
  <<
    \new Staff \with { instrumentName = "MensuralStaff" }
      {
        \incipit { c'4 d' }
        c'4 d' e' f' g'1
      }

    \new Staff \with { instrumentName = "KievanStaff" }
      {
        \incipit #2 \new KievanStaff { c'4 d' }
        c'4 d' e' f' g'1
      }
    \new Staff
      \with { instrumentName = "TabStaff" }
      {
        \incipit
          \new TabStaff
            \with { \magnifyStaff 0.5
                    \override InstrumentName.font-size = 6 }
            { c'4 d' }
        c'4 d' e' f' g'1
      }
  >>
  \layout {
    indent = 5\cm
    incipit-width = 2\cm
  }
}
@end lilypond

@item
Du matériau optionnel peut être indiqué par des crochets englobant la
portée à l'aide de @code{\startOptionalMaterial} et
@code{\stopOptionalMaterial}.

@lilypond[quote]
{
  \startOptionalMaterial
  c'1
  \stopOptionalMaterial
}
@end lilypond

@item
Le @code{FingerGlideSpanner} permet maintenant de connecter des objets
@code{StringNumber} et @code{StrokeFinger}.

@lilypond[verbatim,quote]
{
  \set strokeFingerOrientations = #'(down)
  b2 \glide -\rightHandFinger #1 \glide -2 \glide \5
  e'-\rightHandFinger #1 -2 \5
}
@end lilypond

@item
Un nouveau graveur, le @code{Toe_heel_engraver} (activé par défaut),
écoute la variable de contexte @code{toeHeelStyle} pour fournir les
options stylistiques des commandes @code{\rtoe}, @code{\ltoe},
@code{\rheel} et @code{\lheel}.

@lilypond[verbatim,quote]
music = { f'4\rtoe f'4\rheel f'4\ltoe f'4\lheel \bar "||" }

{
  \music            % #'default
  \set toeHeelStyle = #'standard    \music
  \set toeHeelStyle = #'reversed    \music
  \set toeHeelStyle = #'below       \music
  \set toeHeelStyle = #'circleheels \music
}
@end lilypond

Lorsque le graveur est activé, ces commandes ne se comportent plus comme
les objets @code{Script} habituels puisqu'ils ne tiennent pas compte des
changements de positionnement, autrement dit les @samp{^}, @samp{_} et
@code{\tweak direction} sont ignorés. En cas de nécessité de positionner
individuellement une indication de pédalier, les nouvelles commandes
standard d'articulation @code{\toe}, @code{\vartoe}, @code{\heel},
@code{\varheel} et @code{\heelcircle} (qui accède au nouveau glyphe
@code{scripts@/.pedalheelcircle}) peuvent s'utiliser.

@lilypond[verbatim,quote]
{
  f'2\toe f'2\vartoe |
  f'2\heel f'2\varheel |
  f'1\heelcircle
}
@end lilypond

Désactiver le graveur fait adopter à @code{\rtoe} et ses semblables le
comportement qu'ils avaient dans les versions précédentes de LilyPond.

@item
En liaison directe avec le point précédent, quatre nouvelles commandes
de type articulation @code{\ltoeheel}, @code{\rtoeheel},
@code{\lheeltoe} et @code{\rheeltoe}, permettent d'indiquer des
substitutions pointe-talon ou talon-pointe. Elles sont influencées par
le @code{Toe_heel_engraver} de la même manière qu'un @code{\rtoe} et ses
semblables. Les glyphes de talon et de pointe ont été harmonisés quant à
leur taille de façon à obtenir un meilleur rendu pour les substitutions.

@lilypond[verbatim,quote]
music = { f'4\rtoeheel f'4\rheeltoe
          f'4\ltoeheel f'4\lheeltoe \bar "||" }

{
  \music            % #'default
  \set toeHeelStyle = #'standard    \music
  \set toeHeelStyle = #'reversed    \music
  \set toeHeelStyle = #'below       \music
  \set toeHeelStyle = #'circleheels \music
}
@end lilypond

@item
Les objets graphiques @code{NoteName} sont désormais centrés
horizontalement par défaut.

@end itemize


@node Text and font improvements
@unnumberedsec Améliorations en matière de fontes et de mise en forme du texte

@itemize
@item
Des têtes de note de forme triangulaire ont été ajoutées à la fonte
Emmentaler. Elles sont utilisables en réglant @code{NoteHead@/.style} à
@code{arrow}.

@lilypond
\fixed c' {
  \omit Staff.Clef
  \omit Staff.TimeSignature
  \override NoteHead.style = #'arrow
  g4 2. | a4 2. | c'4 2. | d'4 2.
}
@end lilypond

@item
La nouvelle commande de @emph{markup} @code{\bar-line} permet d'imprimer
une barre de mesure dans du texte.

@lilypond[verbatim,quote]
\markup {
  \override #'(word-space . 2)
    \line {
      Exemples
      \fontsize #-5 \translate-scaled #'(0 . 2) {
        \bar-line ":|."
        \bar-line ".|:"
        \bar-line ";!S!;"
        \bar-line "]{|}["
      }
    }
}
@end lilypond

@item
La syntaxe permettant de modifier les fontes musicales et textuelles a
changé. Au lieu de

@quotation
@verbatim
\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"))
}
@end verbatim
@end quotation

@noindent
ou

@quotation
@verbatim
\paper {
  #(define fonts
     (make-pango-font-tree
       "Nom de la fonte à empattements"
       "Nom de la fonte sans empattements"
       "Nom de la fonte monospace"
       factor))
}
@end verbatim
@end quotation

@noindent
la syntaxe consacrée est dorénavant

@quotation
@verbatim
\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"
}
@end verbatim
@end quotation

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 @code{set-global-staff-size} ou @code{layout-set-staff-size}.

La liste associative ne comporte pas de clé @code{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) :

@quotation
@verbatim
\layout {
  \context {
    \Score
    \override SystemStartBrace.font.music = "lilyjazz"
  }
}

\new PianoStaff <<
  \new Staff { c' }
  \new Staff { c' }
>>

\markup \override #'(fonts . ((music . "lilyjazz"))) \left-brace #20
@end verbatim
@end quotation

Dans la mesure où @code{fonts} est une simple propriété, il est possible
de lui porter dérogation sur la base d'un objet graphique, comme par
exemple

@quotation
@verbatim
\layout {
  \override Score.SectionLabel.fonts.roman = "Custom font"
}
@end verbatim
@end quotation

Ceci s'avère préférable à l'utilisation de la propriété
@code{font-name}, cette dernière rendant ineffectives les commandes
telles que @code{\bold} et requérant d'inclure « Bold » dans la chaîne
de @code{font-name}. L'utilisation de @code{fonts} ne provoque pas de
tels effets.


@item
La commande de @emph{markup} @code{\lookup} n'est désormais disponible
que pour les accolades ; pour les autres glyphes, c'est la commande
@code{\musicglyph} qu'il faut utiliser. Au lieu de @code{\lookup}, il
vaut d'ailleurs mieux lui préférer @code{\left-brace}.


@item
Lorsqu'une fonte musicale est utilisée dans un @emph{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 @emph{markup} @code{\serif}, @code{\sans} ou
@code{\typewriter}, comme ici par exemple.

@lilypond[verbatim,quote]
dolceP =
#(make-dynamic-script
  #{
    \markup {
      \serif \normal-weight dolce
      p
    }
  #})

{ c'\dolceP }
@end lilypond


@item
Les petites capitales s'obtiennent désormais en réglant
@code{font-variant} sur @code{small-caps}, plutôt qu'en fixant
@code{font-shape} à @code{caps}. Dans la mesure où la raison d'être de
@code{font-shape} est de pouvoir accéder à l'italique, ce changement
rend possible l'utilisation conjointe de petites capitales et de
l'italique.


@item
La propriété @code{font-series} est désormais plus flexible et accepte
des valeurs telles que @code{semibold} et @code{light} en plus des seules
@code{normal} et @code{bold}.

La valeur @code{medium} est désormais une valeur intermédiaire entre
@code{normal} et @code{bold} plutôt qu'un équivalent de @code{normal}.
Par conséquent, la commande de @emph{markup} @code{\medium} a été
renommée en @code{\normal-weight}.


@item
La nouvelle propriété @code{font-stretch} permet de sélectionner une
fonte resserrée ou expansée.


@item
Le texte d'un objet @code{VoltaBracket} tel que défini par un
@code{\override Score.VoltaBracket.text = @dots{}} ou @code{\set
Score.repeatCommands = @dots{}} n'est plus automatiquement rendu dans
une fonte musicale ; il faut pour cela utiliser la commande de
@emph{markup} @code{\volta-number} sur les parties qui le nécessitent.
Il faudra donc, par exemple, convertir

@quotation
@verbatim
\set Score.repeatCommands = #'((volta "2, 5"))
@end verbatim
@end quotation

@noindent
en

@quotation
@verbatim
\set Score.repeatCommands =
  #`((volta ,#{ \markup {
                  \concat { \volta-number 2 , }
                  \volta-number 5 }
            #}))
@end verbatim
@end quotation


@item
Dans un @emph{markup}, les doigtés (@code{\markup \finger}) et
chiffrages d'accord (@code{\markup \figured-bass}) sont désormais
adaptés à la taille du texte normal en présence d'un @code{\fontsize}.

@lilypond[quote,verbatim]
myText = \markup {
  The fingering \finger { 5-4 } for a \figured-bass { 7 "6\\" } …
}

\myText
\markup\fontsize #6 \myText
@end lilypond

Le comportement antérieur peut être retrouvé en activant les variables
globales @code{legacy-figured-bass-markup-fontsize} et
@code{legacy-finger-markup-fontsize}, soit :

@lilypond[quote,verbatim]
#(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
@end lilypond


@item
Pour plus de clarté, la commande de @emph{markup} @code{\roman} a été
renommée en @code{\serif}. Aussi, pour modifier une propriété
@code{font-family} réglée à @code{sans} ou @code{typewriter}, il faut
la définir à @code{serif}, non plus à @code{roman}.


@item
La commande de @emph{markup} @code{\text} a été supprimée. Doivent être
utilisées en remplacement les commandes @code{\serif}, @code{\sans} ou
@code{\typewriter}. Si ces commandes permettaient de définir le style de
fonte @emph{uniquement lorsqu'une fonte textuelle était utilisée} (non
une fonte musicale comme pour les nuances), elles déterminent désormais
@emph{à la fois} le style de fonte et l'utilisation d'une fonte
textuelle.

@item
La taille de la police utilisée par la commande de @emph{markup}
@code{\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 @code{\volta-number} pour son formatage par défaut) a été
augmentée en proportion inverse afin de compenser dans les cas habituels.

@item
Certains glyphes, tels que « one » ou « accidentals.hufnagelM1 », de la
fonte Emmentaler avaient une boîte englobante excessivement large 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.

@item
De nouvelles commandes pour imprimer une représentation textuelle des
altérations ont été ajoutées : @code{\text-doubleflat},
@code{\text-flat}, @code{\text-natural}, @code{\text-sharp},
@code{\text-doublesharp} ainsi que de manière plus générale
@code{\text-accidental}.

@lilypond[quote,verbatim]
\markuplist \override #'(padding . 1) \table #'(-1 -1 -1 -1 -1 -1) {
  "Altérations pour du texte :"
   \text-doubleflat \text-flat \text-natural \text-sharp
   \text-doublesharp
  "Altérations dans la musique :"
  \doubleflat \flat \natural \sharp \doublesharp
}
@end lilypond

@item
La commande de @emph{markup} @code{\circle} accepte désormais une
propriété @code{bbox}. Lorsque cette propriété est activée, la boîte
englobant ses argument est utilisée pour définir le diamètre du cercle.

@lilypond[verbatim,quote]
\markup {
  \circle {
    \center-column { "court" "court" "très très long" }
  }
  \override #'(bbox . #t) \circle {
    \center-column { "court" "court" "très très long" }
  }
}
@end lilypond


@item
La commande @code{\tag} est désormais fonctionnelle dans les
environnements @code{\markup}. De nouvelles commandes de @emph{markup}
sont ajoutées pour filtrer (@code{\keep-with-tag} et
@code{\remove-with-tag}) et insérer des @emph{makups} dans un contexte
de @emph{markup} (@code{\push-to-tag}, @code{\append-to-tag} et
@code{\replace-with-tag}) ou dans un contexte musical
(@code{\pushToTagMarkup}, @code{\appendToTagMarkup} et
@code{\replaceWithMarkup}).

@lilypond[quote,verbatim]
test = \markup {
  \tag #'a a
  \tag #'b b
  c
}

music = \relative {
  c'^\test c c c
}

\keepWithTag #'a \music
\removeWithTag #'a \music
\pushToTagMarkup #'a push \music
\appendToTagMarkup #'a append \music
\replaceWithTagMarkup #'a replacement \music

\markup { \keep-with-tag #'a \test }
\markup { \remove-with-tag #'a \test }
\markup { \push-to-tag #'a push \test }
\markup { \append-to-tag #'a append \test }
\markup { \replace-with-tag #'a replacement \test }
\markup { \keep-with-tag #'a \score { \music } }
@end lilypond

@item
Les deux nouvelles commandes @code{\pad-x-left} et @code{\pad-x-right}
se comportent comme @code{\pad-x}, à ceci près qu'elles appliquent un
décalage horizontal sur un seul des côtés du @emph{markup}.

@end itemize


@node New for specialist notation
@unnumbered Nouveautés en matière de notation spécialisée

@node Vocal music improvements
@unnumberedsec Améliorations pour la musique vocale

@itemize
@item
Lorsque des paroles s'alignent sur une mélodie, des lignes d'extension
peuvent s'ajouter automatiquement à la syllabe se terminant sur un
mélisme.

@lilypond[quote,verbatim]
\relative {
  d'4 e f4 g8( f
  e4 d c2)
}
\addlyrics {
  \set autoExtenders = ##t
  A me -- lis -- ma.
}
@end lilypond

@end itemize

@node Keyboard and multi-staff music improvements
@unnumberedsec Améliorations pour instruments à portées multiples

@itemize
@item
Il n'est désormais plus nécessaire de désactiver les ligatures
automatiques dans le cadre d'un @code{\crossStaff}.

@end itemize


@node Unfretted string instrument improvements
@unnumberedsec Améliorations pour les cordes non frettées

@itemize
@item
Les indications @code{\upbow} et @code{\downbow} sont désormais
correctement inversées lorsque placées sous la portée. En conséquence,
les glyphes @code{scripts.upbow} et @code{scripts.downbow} ont été
respectivement renommés en @code{script.uupbow} et
@code{scripts.udownbow}, et les glyphes inversés nommés
@code{scripts.dupbow} et @code{scripts.ddownbow}.

@lilypond[quote,verbatim]
\relative c' {
  f4^\downbow f^\upbow f_\downbow f_\upbow
}
@end lilypond

@end itemize


@node Fretted string instrument improvements
@unnumberedsec Améliorations pour les cordes frettées

@itemize
@item
Les réglages par défaut des étiquettes de diagramme de fret ont changé.

@itemize @minus{}
@item
La valeur par défaut de @code{fret-label-vertical-offset} est fixée
à @w{-0.5}, ce qui a pour effet de centrer l'étiquette dans l'espace du
fret.

@item
Le format numérique par défaut est désormais @code{'custom}, avec un
format de chaîne @code{"~dfr"} (résultant en @q{3fr} par exemple), au
lieu de @code{'roman-lower}.
@end itemize

@item
Deux nouvelles options sont disponibles pour les
@code{fret-diagram-details} :

@itemize @minus{}
@item
@code{string-overhang} permet de définir l'extension des lignes de
corde au-delà de la ligne de dernier fret, en  multiples de
@code{fret-distance}. La valeur par défaut est de 1.

@item
@code{barre-thickness} définit l'épaisseur de la ligne du barré, en
multiples de @code{dot-radius}. Elle n'est définit que pour
@code{barre-type=straight}, avec une valeur par défaut de 1.

@end itemize

@end itemize

@ignore
@node Percussion improvements
@unnumberedsec Améliorations pour la notation des percussions


@node Wind instrument improvements
@unnumberedsec Améliorations pour la notation des instruments à vent
@end ignore

@node Chord notation improvements
@unnumberedsec Améliorations pour la notation des accords

@itemize
@item
Désormais, les noms d'accord sont par défaut toujours affichés en
anglais et ne dépendent plus de @code{\language}. De la même manière,
les commandes telles que @code{\germanChords} ne dépendent plus de
@code{\language}.

Ceci pourrait causer des différences dans l'affichage des noms d'accord.

@item
La nouvelle commande @code{\englishChords} permet de revenir aux noms
d'accord en anglais.

@item
Certaines fonctions Scheme en lien avec les noms d'accord ont été
renommées.

@indentedblock
@multitable @columnfractions .5 .5
@headitem ancien @tab nouveau
@item @code{note-name->string}
  @tab @code{pitch->name}
@item @code{alteration->text-accidental-markup}
  @tab @code{accidental->text-markup}
@item @code{note-name->markup}
  @tab @code{chord-name:markup}
@item @code{chord-name->german-markup}
  @tab @code{chord-name:german-markup}
@item @code{note-name->german-markup}
  @tab @code{chord-name:german-lowercase-name-markup}
@item @code{chord-name->italian-markup}
  @tab @code{chord-name:italian-markup}
@end multitable
@end indentedblock

@command{convert-ly} gère ceci automatiquement.

@item
Two new Scheme functions related to chord names are now available:
@code{pitch->alteration} returns the accidental for a given pitch
and language; @code{chord-name:name-markup} returns note name
markup for a given pitch and language.

@item
LilyPond suit désormais plus rigoureusement la nomenclature de
nommage des accords par Ignatzek. Ceci annule des modifications
intervenues fin 2011 avec la version 2.15.21, et que l'on pourrait
maintenant qualifier incorrects ou ambigus.

@lilypond[quote, verbatim]
oldException = { <c e g b fis'>-\markup \super "lyd" }
chExceptions = #(append (sequential-music-to-chord-exceptions
                         oldException #t)
                        ignatzekExceptions)

music = { <c e g d'>1 | <c es g f'> | <c e g b fis'> }

\new StaffGroup \with { instrumentName = "old:" }
<<
  \new ChordNames \with {
    chordNameExceptions = #chExceptions
    additionalPitchPrefix = ""
  } \music
  \new Voice \transpose c c' \music
>>

\new StaffGroup \with { instrumentName = "new:" }
<<
  \new ChordNames \music
  \new Voice \transpose c c' \music
>>

\layout {
  indent = 1\cm
  line-width = 9\cm
  ragged-right = ##f
}
@end lilypond

@end itemize


@node Ancient notation improvements
@unnumberedsec Améliorations pour les notations anciennes

@itemize
@item
Pour plus de cohérence avec les clefs anciennes, cinq nouvelles clefs
mensurales sont disponibles : @code{"mensural-f2"},
@code{"mensural-f3"}, @code{"mensural-f4"} (identique à
@code{"mensural-f"}), @code{"mensural-f5"}, @code{"mensural-g1"} et
@code{"mensural-g2"} (identique à @code{"mensural-g"}).


@item
La métrique et le style d'altération à l'armure d'un contexte
@code{PetrucciStaff} sont désormais identiques à ceux d'un
@code{MensuralStaff}.


@item
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.

@lilypond[quote,ragged-right,verbatim]
\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 \]
    \[ \tweak left-down-stem ##t a\breve b
       \tweak right-down-stem ##t g\longa \]
    \[ \tweak right-down-stem ##t b\maxima
       \tweak right-up-stem ##t g\longa \]
  }
  \layout {
    \context {
      \Voice
      \remove Ligature_bracket_engraver
      \consists Mensural_ligature_engraver
    }
  }
}
@end lilypond


@item
L'utilisation du fichier @file{gregorian.ly} est désuète. Bien que
toujours distribué pour raison de compatibilité ascendante, son
inclusion devrait être remplacée par l'utilisation d'un contexte
@code{VaticanaScore}, avec si besoin des adaptations manuelles dans le
bloc @code{\layout}. Un code tel que

@quotation
@verbatim
\include "gregorian.ly"

\score {
  \new VaticanaStaff { ... }
}
@end verbatim
@end quotation

@noindent
devrait devenir

@quotation
@verbatim
\new VaticanaScore {
  \new VaticanaStaff { ... }
}

\layout {
  indent = 0
  ragged-last = ##t
}
@end verbatim
@end quotation

@end itemize

@node World music improvements
@unnumberedsec Améliorations pour les musiques du monde

@itemize
@item
La langue de saisie « arabic » est dépréciée. Bien que toujours
fonctionnelle pour des raisons de rétrocompatibilité -- si l'on charge
@file{hel-arabic} --, il est recommandé d'utiliser « english »,
« italiano » ou votre langue de saisie préférée.

@end itemize


@node Miscellaneous improvements
@unnumbered Autres améliorations diverses

@itemize

@item
La commande @code{\tempo} accepte désormais des valeurs rationnelles
exactes. Le formateur par défaut arrondi au quart le plus proche ; la
propriété de contexte @code{tempoCountPrecision} permet de le contrôler.

@lilypond[quote, verbatim]
\fixed c' {
  \once \set Timing.tempoCountPrecision = #1/1000000
  \tempo 4 = #200/3
  g4 e2 f4
}
@end lilypond

@item
La nouvelle fonction Scheme @code{ly:parser-define-once!} définit une
variable qui ne l'aurait pas déjà été.

@item
La propriété de contexte @code{timeSignatureFraction} est déclarée
obsolète, au profit de @code{timeSignature}. La nouvelle propriété
accepte des métriques subdivisées ou alternatives, en plus des simples
fractions jusqu'à présent prises en charge. Accéder à l'ancienne
propriété résultera pour la nouvelle en une simple fraction et
déclenchera un avertissement.

@item
@code{(make-music 'Music)} et @code{(make-music 'Event)} créent
désormais des expressions musicales dont la propriété @code{void} est
définie par défaut à @code{#t}. La fonction @code{empty-music} a été
supprimée au profit de @code{(make-music 'Music)}. Le nouveau prédicat
@code{unspecified-music?} reconnaît toute expression musicale affublée
d'un @code{void}.

@item
La nouvelle fonction Scheme @code{ly:number->duration} convertit une
durée exprimée en unité relative de ronde en @code{ly:duration}. Le log,
le nombre de points et le facteur d'échelonnement sont déterminés
automatiquement.

@item
Les commandes de @emph{markup} @code{\hspace} et @code{\vspace}
permettent d'insérer de l'espace, qui peut être négatif. Les autres
objets sont déplacées en conséquence. Ce déplacement peut s'indiquer par
une flèche qui s'imprimera à l'aide de la nouvelle commande
@code{annotate-moving}. Il est à noter que ces flèches ne reflètent pas
l'étendue réelle des objets créés par @code{\vspace} et @code{\hspace} ;
on pourrait utiliser @code{\box} à cette fin.

@lilypond[verbatim,quote]
\markup {
  left \annotate-moving \hspace #4 right
  \column { top \annotate-moving \vspace #-4/3 bottom }
}
@end lilypond

@item
La nouvelle commande @code{\contextPropertyCheck} vérifie qu'une
propriété est définie à une valeur attendue ou n'est pas définie
dans un contexte spécifique.

@item
Un certain nombre de propriétés de contexte qui jusqu'à présent
reposaient sur @code{ly:moment} prennent dorénavant des nombres
rationnels. Afin de faciliter cette transition, chaque propriété
numérique est appairée avec une propriété de secours @code{ly:moment}.
L'utilisation d'une propriété de secours accède de manière transparente
à la propriété numérique et déclenche un avertissement.

@indentedblock
@multitable @columnfractions 0.5 0.5
@item
@b{Propriété de contexte obsolète}
@tab
@b{Nouvelle propriété de contexte}
@c rows are sorted by deprecated property name
@item
@code{baseMoment}
@tab
@code{beatBase}
@item
@code{completionUnitAsMoment}
@tab
@code{completionUnit}
@item
@code{gridIntervalAsMoment}
@tab
@code{gridInterval}
@item
@code{measureLengthAsMoment}
@tab
@code{measureLength}
@item
@code{minimumPageTurnLength}
@tab
@code{pageTurnMinimumRestLength}
@item
@code{minimumRepeatLengthForPageTurn}
@tab
@code{pageTurnMinimumRepeatLength}
@item
@code{proportionalNotationDurationAsMoment}
@tab
@code{proportionalNotationDuration}
@item
@code{tempoWholesPerMinuteAsMoment}
@tab
@code{tempoWholesPerMinute}
@item
@code{tupletSpannerDurationAsMoment}
@tab
@code{tupletSpannerDuration}
@item
@code{voltaSpannerDurationAsMoment}
@tab
@code{voltaSpannerDuration}
@end multitable
@end indentedblock

@item
@code{\tempo @var{dur} = @var{min} - @var{max}} déterminait la propriété
de contexte @code{tempoWholesPerMinute} après arrondi à l'entier le plus
proche. Ceci n'est plus le cas. Par voie de conséquence, le tempo MIDI
peut être modifié dans certains cas.

@item
Les fonctions Scheme @code{duration-length} et @code{ly:duration-length}
ont été respectivement renommées en @code{ly:duration->number} et
@code{ly:duration->moment}.

@item
La nouvelle fonction Scheme @code{ly:parser-append-to-include-path}
ajoute son argument au chemin de recherche courant de l'analyseur.

@item
La valeur de la propriété de contexte @code{timeSignatureSettings}
utilise désormais le symbole @code{beatBase} en remplacement de
@code{baseMoment}. @command{convert-ly} n'est pas en mesure de traiter
ce changement.

@item
L'inclusion d'images PNG est désormais possible à l'aide de la commande
de @emph{markup} @code{\image}. Ceci vient en supplément de la commande
@code{\epsfile} pour les images EPS.

La commande @code{\image} traite aussi bien les images PNG que EPS, à
ceci près que la commande @code{\image} insère un fond blanc,
contrairement à @code{\epsfile}.

@item
La nouvelle commande de @emph{markup} @code{\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.

@lilypond[verbatim,quote]
\markup \qr-code #10 "https://lilypond.org"
@end lilypond

@item
Des parenthèses pour texte de @emph{markup} ont été ajoutées aux fontes
Emmentaler, pour s'harmoniser avec les nombres (contrairement à celles
déjà disponibles pour les altérations).

@item
Ont été ajoutés à la fonte Emmentaler les glyphes figure-dash (U+2012),
en-dash (U+2013) (quart de catradin) et slash (U+002F).

@item
Une espace pour nombres (U+2007), une espace fine (U+2009) et une espace
ultrafine (U+200A) ont été ajoutées à la fonte Emmentaler.

@item
L'option @code{-dinclude-settings} peut désormais apparaître à
plusieurs reprises, afin de pouvoir inclure différentes feuilles de
style.

@item
Dans l'utilisation conjointe de @LaTeX{} et @command{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
@option{--inline-vshift} et, localement, en ajoutant @code{inline} en
argument aux options de l'extrait.

@item
Il est possible d'utiliser en ligne de commande les diverses options de
@command{musicxml2ly} en tant qu'options de la commande
@code{musicxmlfile} de @command{lilypond-book}. Bien que disponible
depuis la version 2.15.9 publiée en 2011, ceci n'était jusqu'alors pas
documenté.

@item
Deux nouvelles options en ligne de commande font leur apparition :
@option{-dfirst} and @option{-dlast}. Elles sont équivalentes aux
réglages respectifs de @code{showFirstLength} et @code{showLastLength}
dans un fichier LilyPond. Par exemple, taper

@example
lilypond -dlast=R1*5 ...
@end example

@noindent
aura pour résultat que LilyPond générera seulement les cinq dernières
mesure (partant du principe d'une métrique à 4/4).

@item
Est désormais disponible un nouveau manuel constituant un index de tous
les objets graphiques (@emph{grobs}) de LilyPond. Il est basé sur le
@uref{https://github.com/joram-berger/visualindex,
travail de Joram Berger pour LilyPond 2.19}.

@item
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.

@item
Le script @command{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 -- @command{festival} -- laissé à l'abandon.

@item
Deux nouveaux styles sont disponibles pour la propriété d'objet
graphique @code{space-alist} : @code{shrink-space} et
@code{semi-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.

@item
Le binaire @command{lilypond} dispose d'une nouvelle option en ligne de
commande, @option{-dstaff-size}, pour régler la taille globale des
portées. Elle est équivalente à la présence d'un
@code{set-global-staff-size} dans un fichier LilyPond.

@item
En remplacement des fonctions @code{\bookOutputName} et
@code{\bookOutputSuffix}, nous recommandons dorénavant l'utilisation des
variables de papier @code{output-filename} et @code{output-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.

@item
La propriété @code{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.

@item
La fonction @code{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é
@code{X-alignment-extent} de @code{PaperColumn}. Activée par défaut,
elle fournit une largeur de secours au @emph{grob} @code{PaperColumn}
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.

@lilypond[quote,verbatim]
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
    }
  }
}
@end lilypond

@item
Les objets @code{BassFigureContinuation} prennent désormais en charge la
@code{horizontal-line-spanner-interface}. La propriété @code{padding} a
été remplacée par des sous-propriétés correspondantes dans
@code{bound-details}.

@item
La commande de @emph{markup} @code{\align-on-other} accepte désormais la
valeur @code{#f} pour l'alignement, indiquant le point de référence d'un
@emph{markup}.

@item
Une nouvelle fonction @code{\withRelativeDir} est désormais disponible
pour les commandes de @emph{markup} qui incluent des fichiers lorsque
ces fichiers devraient se trouver relativement au fichier source. Par
exemple :

@example
\markup @{ \image #X #3 \withRelativeDir "test.png" @}
@end example

@item
Le positionnement des crochets horizontaux d'analyse a été amélioré.
En particulier, l'objet @code{HorizontalBracket} a désormais une valeur
de @code{outside-staff-priority} fixée à 800. Par conséquent, il se
pourrait que des crochets imbriqués voient leur positionnement modifié.
Ceci peut se corriger en ajustant les valeurs de
@code{outside-staff-priority} par un @code{\tweak}, tout en sachant que
le crochet externe doit garder une valeur de priorité supérieure.

@item
La nouvelle fonction Scheme @code{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 :

@example
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
  @}
@end example

@item
Les deux nouvelles fonctions de @emph{markup} @code{\abs-hspace} et
@code{\abs-vspace} permettent de déterminer des dimensions absolues
qui subsistent quelle que soit la taille de portée en cours.

@item
Les données émises par l'option en ligne de commande
@option{-dshow-available-fonts} sont désormais envoyées sur la sortie
standard.

@item
La fonction @code{ly:font-config-display-fonts} accepte désormais un
argument optionnel pour sélectionner le port de sortie.

@item
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.

@itemize @minus{}
@item
Sur la ligne de commande, l'argument à l'option @option{-dpaper-size} ne
nécessite plus d'être mis entre guillemets. En d'autres termes,
mentionner @code{-dpaper-size=a3} est tout à fait valide.

@item
L'option @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

@example
#(ly:set-option 'pixmap-format 'pngalpha)
@end example

@noindent
devra être changé en

@example
#(ly:set-option 'pixmap-format "pngalpha")
@end example

Il en va de même pour les options @option{separate-page-formats} et
@option{tall-page-formats}. Notez que @command{convert-ly} se charge
d'effectuer la modification automatiquement.
@end itemize

@item
La @code{side-position-interface} dispose de deux nouvelles propriétés,
@code{X-padding} et @code{minimum-X-space}, aux fins de contrôler le
décalage horizontal et la distance minimale d'un @emph{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 que @code{Fingering}
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.

@item
@code{\pushContextProperty} et @code{\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, alors que la
seconde supprime cette valeur de la pile et restaure la valeur initiale.

@lilypond[quote,verbatim]
{
  c'
  \pushContextProperty Staff.fontSize
  \set Staff.fontSize = 3
  c'
  \pushContextProperty Staff.fontSize
  \set Staff.fontSize = 6
  c'
  \popContextProperty Staff.fontSize
  c'
  \popContextProperty Staff.fontSize
  c'
}
@end lilypond

@item
La nouvelle propriété d'objet graphique @code{whiteout-color} permet de
définir la couleur de mise en surbrillance. Dans la même veine, la
commande de @emph{markup} @code{\whiteout} attend une propriété
@code{color} pour faire de même.

@item
Le script @command{musicxml2ly} a été complètement remanié afin de mieux
convertir les fichiers MusicXML en LilyPond. Il prend désormais en
charge plus de fonctionnalités et éléments MusicXML et tente d'être plus
fiable dans la conversion afin de respecter au mieux l'apparence
originelle.

Voici une liste des quelques changements notables, exception faite des
corrections de bogue.

@itemize @minus{}
@item Le script est beaucoup plus rapide.

@item Le chevauchement et l'imbrication des liaisons fonctionnent comme
on est en droit de s'y attendre.

@item Meilleure prise en charge automatique pour contrecarrer l'infâme
ticket 34 de LilyPond (problème de synchronisation avec une appoggiature
en début de pièce avec plusieurs portées).

@item Prise en charge des trémolos sur deux hampes et n-olets imbriqués.

@item Prise en charge de la couleur et de la taille de fonte pour la
plupart des éléments MusicXML. Une nouvelle option en ligne de commande
@option{--dynamics-scale} aide à compenser les différences de taille des
glyphes de nuance pour diverses fontes musicales.

@item Prise en charge correcte des fins d'octaviation pour les fichiers
MusicXML créés par Finale. Le script vérifie l'élément @code{<software>}
pour déterminer le logiciel de notation utilisé. On peut y déroger si
nécessaire à l'aide de l'option en ligne de commande
@option{--ottavas-end-early}.

@item L'option @option{--shift-meter} a été remplacée par l'option
@option{--shift-durations} qui utilise une syntaxe plus simple.

@item La nouvelle option en ligne de commande @option{--no-tagline}
supprime la génération de la @emph{tagline} de LilyPond.

@item La nouvelle option en ligne de commande @option{--book} encapsule
la partition de premier niveau dans un @code{\book}.

@item Lorsque des éléments @code{<credit>} sont présents, ils alimentent
les champs du bloc @code{\header} de LilyPond au lieu des métadonnées
telles que @code{<work-title>} ou @code{<creator>}.

@item La nouvelle option en ligne de commande @option{--credit-page}
spécifie la page où LilyPond devra récupérer les données
@code{<credit>} pour alimenter le bloc @code{\header}.

@item Tous les éléments de métadonnée qui n'ont pas de correspondant
dans les champs standards de @code{\header} (et qui ne sont pas ignorés
comme le type « page number ») sont rendus dans des champs au nom plus
cohérent : le préfixe @samp{id:@tie{}} est ajouté pour les éléments de
@code{<identification>}, @samp{credit:@tie{}} pour les éléments de
@code{<credit>}, et le nom de l'élément MusicXML (sans préfixe) dans
tous les autres cas. Par conséquent, certains champs (non utilisés)
prennent un nouveau nom.

@indentedblock
@multitable @columnfractions 0.3 0.4
@headitem ancien                 @tab nouveau
@item @code{movementnumber}      @tab @code{movement-number}
@item @code{encodingsoftware}    @tab @code{id: software}
@item @code{encodingdate}        @tab @code{id: encoding-date}
@item @code{encoder}             @tab @code{id: encoder}
@item @code{encodingdescription} @tab @code{id: encoding-description}
@item @code{source}              @tab @code{id: source}
@end multitable
@end indentedblock

@item Les numéros de mesure insérés en commentaire dans le fichier
LilyPond créé sont conformes, leur valeur indiquant la mesure
précédente.

@end itemize

@item
La commande de @emph{markup} @code{\page-ref} dispose d'une nouvelle
propriété @code{x-align} destinée à contrôler l'alignement horizontal de
la jauge de remplacement.

@lilypond[quote,verbatim]
\markup {
  \box
    \page-ref #'foo "???" "?" " aligné à droite (par défaut)"
}
\markup {
  \box
    \override #`(x-align . ,LEFT)
    \page-ref #'foo "???" "?" " aligné à gauche"
}
\markup {
  \box
    \override #'(x-align . -2.5)
    \page-ref #'foo "???" "?" " repoussé sur la gauche"
}
@end lilypond

@item
La propriété @code{ledger-extra} peut désormais se régler aussi à partir
de l'objet @code{NoteHead}.

@lilypond[quote,verbatim]
\score {
  {
    c'''1
    \tweak ledger-extra #4 c'''1
    c'''1
  }
}
@end lilypond

@item
Pour les objets graphiques @code{NonMusicalPaperColumn}, la
sous-propriété @code{bottom-space} de @code{line-break-system-details} a
été renommée en @code{bottom-padding}. Alors qu'elle existait depuis la
version 2.13.4 sortie en 2009, cette sous-propriété n'était pour
l'instant pas documentée.

@item
Il est désormais possible de modifier des regroupements de balises créés
par @code{\tagGroup} ou @code{\tagGroupRef}, à l'aide des commandes
@code{\resetTagGroups}, @code{\resetTagGroup}, @code{\addToTagGroup} et
@code{\removeFromTagGroup}.

@item
La langue de saisie -- telle que définie par @code{\language} -- est
accessible au travers de la la nouvelle variable Scheme
@code{input-language}, en tant que symbole.

@item
La nouvelle fonction @code{\breakAlignInsert} facilite la modification
de l'ordre des éléments de notation tels que clefs, métriques, barres de
mesure, etc. Jusqu'à présent, ceci demandait de redéfinir le vecteur
@code{Score.BreakAlignment.break-align-orders}.

@lilypond[quote,verbatim]
{
  g'1
  \key f \major
  g'
  \breakAlignInsert staff-bar after key-signature
  \key g \minor
  g'
}
@end lilypond

@item
L'option de sortie @option{-dcrop} tient désormais compte de tous les
stencils pour déterminer la boîte englobante. Ceci peut modifier la
taille des sorties rognées.

@item
Les fonctions suivantes, qui étaient dépréciées depuis la version
2.13.19, ont été supprimées : @code{\deprecatedcresc},
@code{\deprecatedendcresc}, @code{\deprecateddim} et
@code{\deprecatedenddim}.

@end itemize


@ifhtml
Pour des annonces plus anciennes, rendez-vouz aux pages
@uref{https://lilypond.org/doc/v2.22/Documentation/changes/},
ou @uref{../,remontez} à l'index de la documentation.
@end ifhtml

@bye
