\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