\input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*- @ignore Translation of GIT committish: 8e2eaf4959bec63a1128a444591a540f4f1e2937 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: @setfilename lilypond-changes.info @settitle LilyPond Changes @include macros.itexi @ifhtml @macro inputfileref{DIR,NAME} @uref{../../\DIR\/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c @end macro @macro usermanref{NAME} @inforef{\NAME\,,../user/lilypond/lilypond}@c @end macro @end ifhtml @ifnothtml @macro inputfileref{DIR,NAME} @file{\DIR\/\NAME\}@c @end macro @macro usermanref{NAME} Voir le manuel d'utilisation, \NAME\ @end macro @end ifnothtml @macro textanchor{NAME} @html @end html @end macro @documentencoding UTF-8 @documentlanguage fr @afourpaper @finalout @node Top @top Nouvelles fonctionnalités de la version 2.20 (depuis 2.18) @allowcodebreaks false @itemize @ignore HINTS * add new items at the top * 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 @item Il est désormais possible de déplacer des systèmes relativement à leur positionnement actuel, à l'aide de la sous-propriété @code{extra-offset} de @code{NonMusicalPaperColumn.line-break-system-details}, que ce soit sur l'axe horizontal ou vertical. Cette fonctionnalité s'avère très utile pour effectuer un léger ajustement dans le positionnement vertical par défaut d'un système particulier. Voir @ruser{Positionnement explicite des portées et systèmes} pour de plus amples explications. @item Il est désormais possible d'ajouter du texte à un crochet d'analyse, grâce à l'objet @code{HorizontalBracketText}. @lilypond[quote,verbatim] \layout { \context { \Voice \consists "Horizontal_bracket_engraver" } } { \once \override HorizontalBracketText.text = "a" c''\startGroup d''\stopGroup e''-\tweak HorizontalBracketText.text "a'" \startGroup d''\stopGroup } @end lilypond @item Les règles en matière d'altération peuvent désormais se définir au niveau d'un contexte @code{ChoirStaff}. Deux nouvelles règles -- @code{choral} et @code{choral-cautionary} -- sont disponibles. Elles combinent les caractéristiques de @code{modern-voice} et @code{piano} ou leurs équivalents avec altérations de précaution. @item La fonction musicale @code{\unfoldRepeats} peut maintenant prendre en argument optionnel une liste spécifiant le ou les types de musique à répéter dans le développement. Sont disponibles les arguments @code{percent}, @code{tremolo} et @code{volta}. En l'absence de liste optionnelle d'arguments, sera utilisé @code{repeated-music} et tout sera développé. @item La propriété d'objet graphique @code{output-attributes} remplace, dans les sorties SVG, la propriété de @emph{grob} @code{id}. Ceci permet de définir, à l'aide d'une liste associative, de multiples attributs. Par exemple, @code{#'((id . 123) (class . foo) (data-whatever . @qq{bar}))} produira dans un fichier SVG le groupe de balise : @code{ @dots{} }. @item Liaisons d'articulation ou de phrasé peuvent dorénavant débuter sur une note particulière d'un accord. Des liaisons simultanées dans un même contexte @code{Voice} devront se distinguer par l'attribution d'un @code{spanner-id}. @item La propriété musicale et d'objet graphique @code{spanner-id}, qui permet de distinguer des liaisons d'articulation ou de phrasé simultanées, prend en argument une « clé » -- entrier positif ou symbole -- au lieu d'une chaîne. @item Le nouvelle commande @code{\=} permet de spécifier le @code{spanner-id} (identificateur d'extension) pour des liaisons d'articulation ou de phrasé simultanées. @lilypond[verbatim,quote] \fixed c' { 2 } @end lilypond @item Les blocs introduits par @code{\header} peuvent être stockés dans des variables et utilisés en argument à la musique ou à des fonctions Scheme ainsi que dans le corps de constructions @code{#@{@dots{}#@}}. Ils sont représentés en tant que module Guile. Les blocs @code{\book}, @code{\bookpart}, @code{\score}, @code{\with}, @code{\layout}, @code{\midi} et @code{\paper} peuvent être passés de façon similaire, mais sont représentés par des types de donnée différents. @item Les listes de symboles séparés par des points, à l'instar de @code{FretBoard.stencil} sont pris en charge depuis la version 2.18. Elles peuvent désormais contenir des entiers non signés, et leurs membres être séparés par des virgules. Ceci permet des libellés tels que @lilypond[quote,verbatim] { \time 2,2,1 5/8 g'8 8 8 8 8 } @end lilypond ou @example \tagGroup violin,oboe,bassoon @end example @item De telles listes peuvent aussi apparaître au sein d'expressions aux fins d'assignation, de définition ou de dérogation. Ceci permet des libellés tels que @lilypond[quote,verbatim] { \unset Timing.beamExceptions \set Timing.beatStructure = 1,2,1 g'8 8 8 8 8 8 8 8 } @end lilypond @item Les éléments d'une liste associative pouvaient déjà se voir attribuer des valeurs individuellement, comme par exemple @code{system-system-spacing.basic-distance} pour les variables concernant le papier. Ils peuvent désormais être référencés de la même manière, comme ici @example \paper @{ \void \displayScheme \system-system-spacing.basic-distance @} @end example Par extension à ces modifications, il est dorénavant possible de définir et faire référence à des pseudovariables telles que @code{violon.1}. @item Les fichiers sources LilyPond peuvent désormais être empaquetés dans les fichiers PDF générés. Cette fonctionnalité est pour l'instant désactivée par défaut car susceptible d'être considérée comme peu sure dans la mesure où des documents PDF comportant des fichiers cachés peuvent présenter des risques en matière de sécurité. Attention cependant : les lecteurs de PDF ne sont pas tous capables de gérer les fichiers joints ; si tel est le cas, le rendu PDF apparaîtra normalement mais les fichiers joints seront invisibles. Cette fonctionnalité n'est opérationnelle qu'avec le moteur PDF. @item Les noms de note en français sont maintenant définis spécifiquement, plutôt qu'en alias de l'italien. En plus de la syntaxe dérivée de l'italien, la hauteur @var{d} peut se saisir @var{ré}, et un double-dièse par le suffice @var{-x}. @item Dans le cadre des tablatures pour luth sont désormais disponibles les cordes de basse additionnelles. @lilypond[quote,verbatim] m = { f'4 d' a f d a, g, fis, e, d, c, \bar "|." } \score { \new TabStaff \m \layout { \context { \Score tablatureFormat = #fret-letter-tablature-format } \context { \TabStaff stringTunings = \stringTuning additionalBassStrings = \stringTuning fretLabels = #'("a" "b" "r" "d" "e" "f" "g" "h" "i" "k") } } } @end lilypond @item La commande @code{\table}, pour gérer des listes de @emph{markups} est disponible. Chaque colonne peut disposer de son propre alignement. @lilypond[quote,verbatim] \markuplist { \override #'(padding . 2) \table #'(0 1 0 -1) { \underline { center-aligned right-aligned center-aligned left-aligned } one "1" thousandth "0.001" eleven "11" hundredth "0.01" twenty "20" tenth "0.1" thousand "1000" one "1.0" } } @end lilypond @item Une nouvelle commande de @emph{markup}, @code{\with-dimensions-from}, rend plus aisée l'utilisation de @code{\with-dimensions} en adoptant les dimensions d'un objet @emph{markup} fourni en premier argument. @lilypond[quote,verbatim] \markup { \pattern #5 #Y #0 "x" \pattern #5 #Y #0 \with-dimensions-from "x" "f" \pattern #5 #Y #0 \with-dimensions-from "x" "g" \override #'(baseline-skip . 2) \column { \pattern #5 #X #0 "n" \pattern #5 #X #0 \with-dimensions-from "n" "m" \pattern #5 #X #0 \with-dimensions-from "n" "!" } } @end lilypond @item Deux nouvelles fonctions permettent de gérer les sauts de page. @code{ly:one-page-breaking} ajuste automatiquement la hauteur de la page de telle sorte que toute la musique tienne sur une seule page. @code{ly:one-line-auto-height-breaking} fonctionne comme @code{ly:one-line-breaking} mais, en plus de placer la musique sur une seule ligne et d'adapter la largeur de la page en conséquence, elle adapte la hauteur de la page automatiquement. @item La nouvelle commande de @emph{markup} @code{\draw-squiggle-line} permet de tracer des lignes ondulées. Sont adaptables l'épaisseur du trait (@code{thickness}), l'amplitude (@code{angularity}), la hauteur (@code{height}) et l'orientation (@code{orientation}). @lilypond[quote,verbatim] \markup \overlay { \draw-squiggle-line #0.5 #'(3 . 3) ##t \translate #'(3 . 3) \override #'(thickness . 4) \draw-squiggle-line #0.5 #'(3 . -3) ##t \translate #'(6 . 0) \override #'(angularity . -5) \draw-squiggle-line #0.5 #'(-3 . -3) ##t \translate #'(3 . -3) \override #'(angularity . 2) \override #'(height . 0.3) \override #'(orientation . -1) \draw-squiggle-line #0.2 #'(-3 . 3) ##t } @end lilypond @item La nouvelle commande @code{\RemoveAllEmptyStaves} agit exactement comme @code{\RemoveEmptyStaves}, à ceci près qu'elle supprime aussi les lignes du premier système de la partition. @item Deux commandes de @emph{markup} font leur apparition : @code{\undertie} et @code{\overtie}, ainsi qu'une version générique @code{\tie}. @lilypond[quote,verbatim] \markup { \undertie "undertied" \overtie "overtied" } m = { c''1 \prall -\tweak text \markup \tie "131" -1 } { \voiceOne \m \voiceTwo \m } @end lilypond @item Les microaltérations peuvent désormais s'imprimer aussi sur des @code{TabStaff}, notamment pour indiquer des @emph{bends}. @lilypond[quote,verbatim] \layout { \context { \Score supportNonIntegerFret = ##t } } mus = \relative { c'4 cih d dih } << \new Staff << \clef "G_8" \mus >> \new TabStaff \mus >> @end lilypond @item Deux nouveaux styles de contours à blanc sont disponibles. Le style @code{outline} agit un peu comme un ombrage des glyphes, son galbe étant le résultat de multiples copies du glyphe. Le style @code{rounded-box} produit un rectangle aux coins arrondis. Pour tous les styles, y compris le style par défaut @code{box}, l'épaisseur (@code{thickness}) du contour, mesuré en épaisseur de ligne de portée, est adaptable. @lilypond[verbatim,quote] \markup { \combine \filled-box #'(-1 . 15) #'(-3 . 4) #1 \override #'(thickness . 3) \whiteout whiteout-box } \markup { \combine \filled-box #'(-1 . 24) #'(-3 . 4) #1 \override #'(style . rounded-box) \override #'(thickness . 3) \whiteout whiteout-rounded-box } \markup { \combine \filled-box #'(-1 . 18) #'(-3 . 4) #1 \override #'(style . outline) \override #'(thickness . 3) \whiteout whiteout-outline } \relative { \override Staff.Clef.whiteout-style = #'outline \override Staff.Clef.whiteout = 3 g'1 } @end lilypond @item Les différentes instructions @code{\override}, @code{\revert}, @code{\set} et @code{\unset} acceptent désormais le préfixe @code{\once} qui en réduit les effets à un seule occurrence. @lilypond[quote,verbatim] \relative { c'4 d \override NoteHead.color = #red e4 f | \once \override NoteHead.color = #green g4 a \once \revert NoteHead.color b c | \revert NoteHead.color f2 c | } @end lilypond @item Lorsqu'il génère un fichier MIDI, LilyPond enregistre désormais le @code{title} défini dans le bloc @code{\header} d'une partition en tant que nom de la séquence MIDI du fichier MIDI. En l'absence de @code{title} au niveau @code{\score}, sera retenue la première définition trouvée dans l'ordre suivant : @code{\bookpart}, @code{\book} et enfin @code{\header} de premier niveau. De manière optionnelle, le nom de la séquence MIDI peut se définir à l'aide du nouveau champ de @code{\header} @code{midititle} indépendamment au cas où le champ @code{title} contiendrait du code @emph{markup} qui ne serait pas rendu correctement en texte plat. @item Les fonctions, qu'elles soient musicales, Scheme ou fantômes, ainsi que les commandes de @emph{markup} pour lesquelles le paramètre final est l'objet de dérogations en chaîne peuvent se définir en remplaçant l'expression à laquelle elle s'appliquera par @code{\etc}. Il en va de même pour les appels à une fonction ou une commande de @emph{markup}. @lilypond[verbatim,quote] bold-red-markup = \markup \bold \with-color #red \etc highlight = \tweak font-size 3 \tweak color #red \etc \markup \bold-red "text" \markuplist \column-lines \bold-red { One Two } { c' \highlight d' e'2-\highlight -! } @end lilypond @item Les fonctions LilyPond définies à l'aide de @code{define-music-function}, @code{define-event-function}, @code{define-scheme-function} et @code{define-void-function} peuvent désormais être appelées directement à partir de Scheme, comme s'il s'agissait de pures procédures Scheme. Le contrôle et la correspondance des arguments seront réalisés de manière identique à ce qui se passe lorsque la fonction est appelée au fil du code LilyPond. Ceci inclut l'insertion de valeurs par défaut pour des arguments optionnels qui ne correspondraient pas à leur prédicat. Dans la liste des arguments, il est possible d'utiliser @code{*unspecified*} au lieu de @code{\default} pour omettre explicitement une séquence d'argument optionnels. @item Les données @code{location} pour la saisie courante et @code{parser} sont désormais gérées directement dans les flux GUILE ; elles peuvent donc être référencées par des appels de fonction@code{(*location*)} et @code{(*parser*)}. Par voie de conséquence, nombre de fonctions ont vu disparaître leur argument @code{parser} explicite. Les fonctions définies par @code{define-music-function}, @code{define-event-function}, @code{define-scheme-function} et @code{define-void-function} n'ont désormais nul besoin d'argument @code{parser} ou @code{location}. Avec ces définitions particulières, LilyPond tentera de reconnaître l'utilisation héritée des arguments @code{parser} et @code{location}, fournissant ainsi une compatibilité ascendante de la sémantique pour un certain temps. @item Dans la langue de notes @code{english}, le nom développé des notes altérées comprend désormais un trait d'union, pour une meilleure lisibilité. Il faut donc maintenant saisir @example \key a-flat \major @end example au lieu de @example \key aflat \major @end example Les altérations doubles ne prennent pas de trait d'union supplémentaire ; le @code{cisis} batave s'écrit @code{c-sharpsharp} en anglais développé. @item Le style visuel des traits de tremolo (allure, style et pente) est maintenant plus finement contrôlé. @lilypond[quote,relative=2] a8:32 b: c: d: \override StemTremolo.shape = #'beam-like a: b: c: d: \override StemTremolo.style = #'constant a: b: c: d: g,2 @end lilypond @item Les silences multimesures ont une longueur dépendant de leur durée totale, sous contrôle de @code{MultiMeasureRest.space-increment}. @lilypond[quote] { \compressFullBarRests \override Staff.MultiMeasureRest.space-increment = 3.0 R1*2 R1*12 R1*64 } @end lilypond @item Les numéros de page peuvent désormais s'imprimer en chiffres romains, en ajustant la variable de papier @code{page-number-type}. @item Il est désormais possible d'utiliser @code{\time} et @code{\partial} de concert pour modifier une métrique en cours de mesure. @lilypond[verbatim,quote,relative=1] \override Score.BarNumber.break-visibility = #end-of-line-invisible \partial 4 \time 3/4 f4 | 2 4 | 2 \bar "||" \time 9/8 \partial 4. f8 8 8 | 2. 8 8 8 | @end lilypond @item Il est désormais possible de modifier la propriété @code{text} des noms d'accord. @lilypond[verbatim,fragment,quote] << \new ChordNames \chordmode { a' b c:7 \once \override ChordName.text = #"foo" d } >> @end lilypond @item Amélioration de l'alignement horizontal lors de l'utilisation de @code{TextScript}, à l'aide de @code{DynamicText} ou @code{LyricText}. @item Ajout d'une nouvelle commande @code{\magnifyStaff}, qui échelonne de façon globale, au niveau d'un contexte @code{Staff}, sa taille, les lignes de portée, les barres de mesure, les hampes et l'espacement horizontal. Les lignes de la portée considérée ne seront toutefois pas plus fines que la taille par défaut dans la mesure où l'épaisseur des hampes, liaisons et autres est basée sur l'épaisseur des lignes de portée. @item @code{InstrumentName} prend désormais en charge la @code{text-interface}. @item Il est désormais possible de contrôler le « niveau d'expression » des canaux MIDI à l'aide de la propriété de contexte @code{Staff.midiExpression}. Ceci permet d'altérer le volume perçu y compris des notes tenues, bien que légèrement. L'ajustement prend une valeur entre @code{0.0} et @code{1.0}. @example \score @{ \new Staff \with @{ midiExpression = #0.6 midiInstrument = #"clarinet" @} << @{ a'1~ a'1 @} @{ \set Staff.midiExpression = #0.7 s4\f\< \set Staff.midiExpression = #0.8 s4 \set Staff.midiExpression = #0.9 s4 \set Staff.midiExpression = #1.0 s4 \set Staff.midiExpression = #0.9 s4\> \set Staff.midiExpression = #0.8 s4 \set Staff.midiExpression = #0.7 s4 \set Staff.midiExpression = #0.6 s4\! @} >> \midi @{ @} @} @end example @item La prise en charge de fontes musicales alternative, autrement dit autres que Emmentaler, est facilitée. Voir @uref{http://fonts.openlilylib.org/} pour de plus amples informations. @item Les objets graphiques et leurs parents peuvent désormais s'aligner de manière indépendante, ce qui permet une flexibilité accrue dans le positionnement des @emph{grobs}. Par exemple, le bord « gauche » d'un objet peut désormais s'aligner sur le « centre » de son parent. @item La commande @code{\partial} a connu des améliorations notables afin d'éviter les problèmes en cas de contextes multiples et parallèles. @item @code{\chordmode} prend désormais en charge les constructions @code{< >} et @code{<< >>}. @item La nouvelle commande @code{\tagGroup} vient en complément des commandes @code{\keepWithTag} et @code{\removeWithTag} déjà existantes. Par exemple, @example \tagGroup #'(violinI violinII viola cello) @end example déclare une liste de balises appartenant à un unique « groupe de balises ». @example \keepWithTag #'violinI @end example n'est maintenant plus concerné que par les balises du groupe auquel « violinI » appartient. Tout élément balisé par une ou plusieurs balises du groupe, à l'exception de @var{violinI}, sera ignoré. @item La fonction @code{\addlyrics} est désormais fonctionnelle avec n'importe quel contexte arbitraire, y compris @code{Staff}. @item Les numéros de cordes peuvent désormais s'imprimer en chiffres romains, pour les instruments à cordes non frettées par exemple. @lilypond[verbatim,quote,relative=2] c2\2 \romanStringNumbers c\2 \arabicStringNumbers c1\3 @end lilypond @item La propriété @code{thin-kern} du @emph{grob} @code{BarLine} est renommée en @code{segno-kern}. @item Les objets @code{KeyCancellation} ignorent désormais les clefs de citation, à l'instar des objets @code{KeySignature}. @item Prise en charge de @code{\once@tie{}\unset} @item Dans le cadre de l'utilisation de la commande de @emph{markup} @code{\fret-diagram-verbose}, il est désormais possible de coloriser individuellement les points et les parenthèses des diagrammes de fret. @lilypond[verbatim,quote,relative=1] \new Voice { c1^\markup { \override #'(fret-diagram-details . ( (finger-code . in-dot))) { \fret-diagram-verbose #'((mute 6) (place-fret 5 3 1 red) (place-fret 4 5 2 inverted) (place-fret 3 5 3 green) (place-fret 2 5 4 blue inverted) (place-fret 1 3 1 violet) (barre 5 1 3 )) } } c1^\markup { \override #'(fret-diagram-details . ( (finger-code . below-string))) { \fret-diagram-verbose #'((mute 6) (place-fret 5 3 1 red parenthesized) (place-fret 4 5 2 yellow default-paren-color parenthesized) (place-fret 3 5 3 green) (place-fret 2 5 4 blue ) (place-fret 1 3 1) (barre 5 1 3)) } } } @end lilypond @item Deux propriétés sont ajoutées à @code{fret-diagram-details} pour une utilisation avec la commande de @emph{markup} @code{\fret-diagram-verbose} : @code{fret-label-horizontal-offset} affecte le @code{fret-label-indication}, et @code{paren-padding} contrôle l'espacement entre le point et les parenthèses qui l'entourent. @lilypond[verbatim,quote,relative=1] \new Voice { c1^\markup { \fret-diagram-verbose #'((mute 6) (place-fret 5 3 1) (place-fret 4 5 2) (place-fret 3 5 3) (place-fret 1 6 4 parenthesized) (place-fret 2 3 1) (barre 5 2 3)) } c1^\markup { \override #'(fret-diagram-details . ( (fret-label-horizontal-offset . 2) (paren-padding . 0.25))) { \fret-diagram-verbose #'((mute 6) (place-fret 5 3 1) (place-fret 4 5 2) (place-fret 3 5 3) (place-fret 1 6 4 parenthesized) (place-fret 2 3 1) (barre 5 2 3)) } } } @end lilypond @item Ajout de la commande de @emph{markup} @code{\justify-line}. Cette fonction est comparable à @code{\fill-line}, à ceci près qu'au lieu de répartir les @emph{mots} en colonnes, la commande @code{\justify-line} répartit les vides de telle sorte qu'en présence de trois @emph{mots} ou plus, ces blancs soient d'égale longueur. @lilypond[quote,verbatim,papersize=a6] \markup \fill-line {oooooo oooooo oooooo oooooo} \markup \fill-line {ooooooooo oooooooo oo ooo} @end lilypond @lilypond[quote,verbatim,papersize=a6] \markup \justify-line {oooooo oooooo oooooo oooooo} \markup \justify-line {ooooooooo oooooooo oo ooo} @end lilypond @item La nouvelle commande @code{\magnifyMusic} permet de modifier la taille de la musique sans changer la taille de la portée, tout en ajustant automatiquement les hampes, ligatures et l'espacement horizontal. @lilypond[verbatim,quote] \new Staff << \new Voice \relative { \voiceOne 4 8. 16 8 4 r8 } \new Voice \relative { \voiceTwo \magnifyMusic 0.63 { \override Score.SpacingSpanner.spacing-increment = #(* 1.2 0.63) r32 c'' a c a c a c r c a c a c a c r c a c a c a c a c a c a c a c } } >> @end lilypond @item Création d'un gabarit flexible dans le domaine de la musique chorale. Il s'utilise pour de la musique chorale simple, avec ou sans accompagnement de piano, sur deux ou quatre portées. Contrairement aux autres gabarits, celui-ci est directement intégré à LilyPond ; il n'est donc pas besoin d'être recopié et édité, mais simplement appelé à l'aide d'un @code{\include} dans le fichier source. Pour de plus amples détails, voir @rlearning{Gabarits préprogrammés}. @item Amélioration significative du positionnement du nombre des n-olets dans le cas de ligatures coudées. Jusqu'à présent, ce nombre était placé selon la position du crochet même lorsque ce dernier n'était pas imprimé, ce qui pouvait amener à un positionnement disgracieux. Le nombre est désormais positionné plus près du coude en présence d'un tronçon de ligature approprié à son placement et en l'absence de crochet. De plus, la détection de collision ajoutée décalera horizontalement le nombre s'il était trop proche d'un empilement adjacent, tout en préservant son écartement de la ligature. Dans le cas où ce nombre serait trop large pour tenir dans l'espace disponible, LilyPond reviendra au positionnement basé sur le crochet. Dans le cas d'une collision avec, par exemple, une altération accidentelle, le nombre sera plutôt écarté verticalement. @lilypond[verbatim,fragment,quote,relative=1] \time 3/4 \override Beam.auto-knee-gap = 3 \tuplet 3/2 4 { g8 c'' e, c'8 g,, e'' g,,8 e''' c,, } @end lilypond @noindent L'ancien comportement des n-olets en présence de ligature coudée reste disponible au moyen d'un @code{\override} sur la nouvelle propriété @code{knee-to-beam}. @lilypond[verbatim,fragment,quote,relative=1] \time 3/4 \override Beam.auto-knee-gap = 3 \override TupletNumber.knee-to-beam = ##f \tuplet 3/2 4 { g8 c'' e, c'8 g,, e'' g,,8 e''' c,, } @end lilypond @item @code{\lyricsto} et @code{\addLyrics} ont été « harmonisés ». Tous deux acceptent désormais la même sorte de liste délimitée d'arguments, à l'instar de @code{\lyrics} et @code{\chords}. Une rétrocompatibilité a été ajoutée, de sorte à accepter des identificateurs musicaux (tel @code{\mus}) en tant qu'arguments. Une règle a été ajoutée à @code{convert-ly} visant à supprimer les utilisations redondantes de @code{\lyricmode} et réarranger les combinaisons avec les déclencheurs de contexte afin d'appliquer @code{\lyricsto} généralement en dernier (comme le ferait @code{\lyricmode}). @item Les définitions et identificateurs Scheme peuvent désormais s'utiliser en tant que définition de sortie. @item Les expressions Scheme peuvent désormais s'utiliser en tant que constituants d'un accord. @item Amélioration de l'espacement visuel du « MI », tant à taille réduite que normale, dans les styles Funk et Walker, de telle sorte qu'il ait la même taille que les autres têtes de note profilées. Les « SOL » sont aussi améliorés dans les styles Aiken et Harpe sacrée normaux ou leur variantes fines. @item @code{LeftEdge} dispose désormais d'un @code{Y-extent} (extension verticale) définissable. Voir @rinternals{LeftEdge}. @item Une nouvelle fonction -- @code{make-path-stencil} -- supporte toutes les commandes @code{path}, tant relatives qu'absolues : @code{lineto}, @code{rlineto}, @code{curveto}, @code{rcurveto}, @code{moveto}, @code{rmoveto}, @code{closepath}. La fonction prend aussi en charge la syntaxe « lettre unique » utilisée dans les commandes de chemin du standard SVG : @code{L}, @code{l}, @code{C}, @code{c}, @code{M}, @code{m}, @code{Z} et @code{z}. Cette nouvelle commande est rétrocompatible avec la fonction originale @code{make-connected-path-stencil}. Voir aussi le fichier @file{scm/stencil.scm}. @item Les propriétés de contexte nommées dans la propriété @samp{alternativeRestores} sont restaurées à la valeur qu'elles avaient juste avant la @b{première} alternative, ce pour toutes les suivantes. Pour l'instant, le jeu par défaut restaure la « métrique courante » : @lilypond[verbatim,fragment,quote,relative=2] \time 3/4 \repeat volta 2 { c2 e4 | } \alternative { { \time 4/4 f2 d | } { f2 d4 | } } g2. | @end lilypond @noindent la « position dans la mesure » : @lilypond[verbatim,fragment,quote,relative=2] \time 3/4 \repeat volta 2 { c2 e4 | } \alternative { { \time 4/4 \set Timing.measurePosition = #(ly:make-moment -1/2) f2 | } { f2 d4 | } } g2. | @end lilypond @noindent et les « changements d'accord »: @lilypond[verbatim,fragment,quote] << \new ChordNames { \set chordChanges = ##t \chordmode { c1:m d:m c:m d:m } } \new Staff { \repeat volta 2 { \chordmode { c1:m } } \alternative { { \chordmode { d:m } } { \chordmode { c:m } } } \chordmode { d:m } } >> @end lilypond @item Amélioration du rendu MIDI des respirations. Après une note liée, la respiration prend son temps uniquement sur la dernière note de la prolongation. Autrement dit, @code{@{ c4~ c8 \breathe @}} s'entendra comme @code{@{ c4~ c16 r @}} au lieu de @code{@{ c4 r8 @}}. Ceci est plus cohérent en matière d'articulation et avec la manière dont un instrumentiste interprète une respiration après une note prolongée par une liaison. Ceci permet aussi d'aligner plus facilement une respiration simultanée à plusieurs parties dont les notes différent dans leur durée. @item Ajout d'un nouveau style de tête de note pour les tablature : @code{TabNoteHead.style = #'slash}. @item Quatre nouveaux glyphes de clef, ainsi que leur tessiture respective, sont désormais disponibles : @emph{Double G}, @emph{Tenor G}, @emph{Varpercussion} et @emph{varC}. @lilypond[verbatim,quote,fragment] \override Staff.Clef.full-size-change = ##t \clef "GG" c c c c \clef "tenorG" c c c c \clef "varC" c c c c \clef "altovarC" c c c c \clef "tenorvarC" c c c c \clef "baritonevarC" c c c c \clef "varpercussion" c c c c \break \override Staff.Clef.full-size-change = ##f \clef "GG" c c c c \clef "tenorG" c c c c \clef "varC" c c c c \clef "altovarC" c c c c \clef "tenorvarC" c c c c \clef "baritonevarC" c c c c \clef "varpercussion" c c c c @end lilypond @item Des durées isolées dans une séquence musicale sont désormais considérées comme des notes sans hauteur. Ceci peut s'avérer utile pour affecter des rythmes à de la musique ou dans une fonction Scheme. Dans la partition finale, les hauteurs sont déterminées à partir de la note ou de l'accord qui précède. Les deux exemples suivant ont un code tout à fait lisible : @lilypond[verbatim,quote] \new DrumStaff \with { \override StaffSymbol.line-count = 1 } \drummode { \time 3/4 tambourine 8 \tuplet 3/2 { 16 16 16 } 8 \tuplet 3/2 { 16 16 16 } 8 8 | } @end lilypond @lilypond[verbatim,quote] \new Staff { r16 c'16 ~ 8 ~ 4 ~ 2 | } @end lilypond @item @code{\displayLilyMusic} et ses fonctions Scheme sous-jacentes n'omettent plus les durées de note redondantes. Il est désormais plus facile et sûr de reconnaître et formater les durées isolées dans des expressions telles que @example @{ c4 d4 8 @} @end example @item Les exceptions en matière de ligature peuvent désormais se libeller à l'aide de la fonction Scheme @code{\beamExceptions}. Il suffit d'écrire @lilypond[verbatim,quote,relative=1] \time #'(2 1) 3/16 \set Timing.beamExceptions = \beamExceptions { 32[ 32] 32[ 32] 32[ 32] } c16 c c | \repeat unfold 6 { c32 } | @end lilypond @noindent tout en séparant les exceptions par un @code{|} (contrôle de barre de mesure) -- l'absence de hauteur dans les motifs d'exception n'est pas obligatoire. Auparavant, une telle règle d'exception devait se définir ainsi : @example \set Timing.beamExceptions = #'( ;début de la liste associative (end . ;entrée pour la terminaison des ligatures ( ;début de la liste des terminaisons ((1 . 32) . (2 2 2)) ;règle pour les triples croches -- groupées à la double ))) @end example @item La plupart des articulations communes sont réflétées dans le rendu MIDI. Accent et marcato donnent des notes plus fortes ; staccato, staccatissimo et portato abrègent les notes. Une marque de respiration raccourcit la note qui précède. Ce comportement est ajustable au travers des propriétés @code{midiLength} et @code{midiExtraVelocity} affectées à @code{ArticulationEvent}. Voir le fichier @file{script-init.ly} pour des exemples. @item La fonctionnalité PostScript d'ajustement des traits ne s'applique plus de manière automatique ; elle est désormais laissée à l'appréciation du périphérique PostScript -- Ghostscript l'utilise par défaut pour des résolutions inférieures à 150 dpi lorsqu'il génère des images @emph{raster}. Lorsqu'elle est activée, un algorithme de dessin plus complexe tirant profit des ajustements de trait servira notamment pour les ligatures et barres de mesure. L'ajustement des traits peut se forcer, en ligne de commande, à l'aide de l'option @samp{-dstrokeadjust}. En ce qui concerne la génération de fichiers @code{PDF}, ceci améliorera nettement la prévisualisation, au détriment cependant de la taille du fichier. La qualité d'impression à haute résolution n'est pas affectée. @end itemize @ifhtml Pour des annonces plus anciennes, rendez-vouz aux pages @uref{http://lilypond.org/doc/v2.18/Documentation/changes/}, @uref{http://lilypond.org/doc/v2.16/Documentation/changes/}, ou @uref{../,remontez} à l'index de la documentation. @end ifhtml @bye