1 \input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
6 @macro inputfileref{DIR,NAME}
7 @uref{../../\DIR\/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
9 @macro usermanref{NAME}
10 @inforef{\NAME\,,../user/lilypond/lilypond}@c
15 @macro inputfileref{DIR,NAME}
18 @macro usermanref{NAME}
19 See user manual, \NAME\
23 @macro textanchor{NAME}
30 @documentencoding utf-8
36 @top New features in 2.11 since 2.10
39 This document is also available in @uref{NEWS.pdf,PDF}. It's part of
40 the @uref{../,LilyPond Documentation} .
52 * only show verbatim input for syntax/input changes
54 * try to be as brief possible in those cases
56 * don't try to provide real-world examples, they often get too big,
57 which scares away people.
59 * Write complete sentences.
61 * only show user-visible changes.
66 The file extension for MIDI can be set using the command-line
67 program default @code{midi-extension}. For Windows, the default
68 extension has been changed to @code{.mid}.
71 Two variations on the default double repeat bar line are now available.
74 \set Score.doubleRepeatType = #":|.:"
87 Four automatic accidentals rules have been added: @code{neo-modern},
88 @code{neo-modern-cautionary}, @code{dodecaphonic} and @code{teaching}.
89 The following example illustrates @code{neo-modern} rule.
94 cis'8 fis, d'4 <a cis>8 f bis4 |
106 #(set-accidental-style 'neo-modern)
112 Flags can now be generated with Scheme-code using the @code{'flag}
113 @code{Stem} grob property. Existing scores will work without change.
120 #(define (inverted-flag stem-grob)
121 (let* ((dir (if (eqv? (ly:grob-property stem-grob 'direction) UP) "d" "u"))
122 (flag (retrieve-glyph-flag "" dir "" stem-grob))
123 (line-thickness (ly:staff-symbol-line-thickness stem-grob))
124 (stem-thickness (ly:grob-property stem-grob 'thickness))
125 (stem-width (* line-thickness stem-thickness))
126 (stroke-style (ly:grob-property stem-grob 'stroke-style))
127 (stencil (if (null? stroke-style) flag
128 (add-stroke-glyph flag stem-grob dir stroke-style "")))
129 (rotated-flag (ly:stencil-rotate-absolute stencil 180 0 0)))
130 (ly:stencil-translate rotated-flag (cons (- (/ stem-width 2)) 0))))
132 #(define-public (weight-flag stem-grob)
133 (let* ((log (- (ly:grob-property stem-grob 'duration-log) 2))
134 (is-up (eqv? (ly:grob-property stem-grob 'direction) UP))
135 (yext (if is-up (cons (* log -0.8) 0) (cons 0 (* log 0.8))))
136 (flag-stencil (make-filled-box-stencil '(-0.4 . 0.4) yext))
137 (stroke-style (ly:grob-property stem-grob 'stroke-style))
138 (stroke-stencil (if (equal? stroke-style "grace") (make-line-stencil 0.2 -0.9 -0.4 0.9 -0.4) empty-stencil)))
139 (ly:stencil-add flag-stencil stroke-stencil)))
143 \override Stem #'flag = #weight-flag
146 \override Stem #'flag = #inverted-flag
152 Harp pedalling diagrams were added:
155 \markup { \harp-pedal #"^v-|vv-o^" }
159 Predefined, user-configurable, transposable fret diagrams
160 are now available in the @code{FretBoards} context:
162 \include "predefined-guitar-fretboards.ly"
180 The following syntax changes were made, in chronological order. In
181 addition, fret diagram properties have been moved to
182 @code{fret-diagram-details}, and the @code{#'style} property is
183 used to select solid/dashed lines instead of @code{#'dash-fraction}.
186 'break-align-symbol -> 'break-align-symbols
187 scripts.caesura -> scripts.caesura.curved
188 \setEasyHeads -> \easyHeadsOn
189 \easyHeadsOff (new command)
190 \fatText -> \textLengthOn
191 \emptyText -> \textLengthOff
192 \set hairpinToBarline -> \override Hairpin #'to-barline
193 \compressMusic -> \scaleDurations
194 \octave -> \octaveCheck
195 \arpeggioUp -> \arpeggioArrowUp
196 \arpeggioDown -> \arpeggioArrowDown
197 \arpeggioNeutral -> \arpeggioNormal
198 \setTextCresc -> \crescTextCresc
199 \setTextDecresc -> \dimTextDecresc
200 \setTextDecr -> \dimTextDecr
201 \setTextDim -> \dimTextDim
202 \setHairpinCresc -> \crescHairpin
203 \setHairpinDecresc -> \dimHairpin
204 \sustainUp -> \sustainOff
205 \sustainDown -> \sustainOn
206 \sostenutoDown -> \sostenutoOn
207 \sostenutoUp -> \sostenutoOff
208 'infinite-spacing-height -> 'extra-spacing-height
209 #(set-octavation oct) -> \ottava #oct
210 \put-adjacent markup axis dir markup -> \put-adjacent axis dir markup markup
211 \pointAndClickOn (new command)
212 \pointAndClickOff (new command)
213 \center-align -> \center-column
214 \hcenter -> \center-align
215 printallheaders -> print-all-headers
216 \bigger -> \larger (already existing command)
220 Moreover, some files in the @code{ly/} directory have been renamed;
221 the *-init.ly filenames are now only used for files that are automatically
222 included, while such files as @code{makam-init.ly} or @code{gregorian-init.ly}
223 have been renamed to @code{makam.ly} or @code{gregorian.ly}.
226 Metronome marks can now also contain a textual description. The
227 duration and count (if given) are shown in parentheses after the text.
234 \tempo "Andante" 4 = 120
247 In figured bass you can now also use a backslash through a number to
248 indicate a raised 6th step.
251 \new FiguredBass \figuremode { < 6\\ 5\\ > < 6/ > }
255 Arpeggios may now use ``parenthesis'' style brackets:
257 @lilypond[relative=1]
258 \override Arpeggio #'stencil = #ly:arpeggio::brew-chord-slur
260 % Note: does not work for cross-staff arpeggios.
261 \override Arpeggio #'X-extent = #ly:grob::stencil-width
262 <c g' c>2\arpeggio ~ c
266 Single-system scores are now naturally spaced instead of being
267 stretched to fill the line width. This can be changed by setting
268 @code{ragged-right = ##f}.
271 Enclosing text within boxes with rounded corners is now possible,
272 using the @code{\rounded-box} markup command.
275 @command{lilypond-book} can run any program instead of @command{latex}
276 to guess the line width, thanks to @code{--latex-program} command line
280 Underlining is now possible with the @code{\underline} markup command.
283 It is now possible to specify, using the @code{page-count} variable in
284 the paper block, the number of pages that will be used.
287 A new page breaking function, @code{ly:minimal-breaking}, is dedicated
288 to books with many pages or a lot of text.
291 A table of contents is included using @code{\markuplines \table-of-contents}.
292 Elements are added to it using the @code{\tocItem} command.
295 Text spreading over several pages is entered using the
296 @code{\markuplines} keyword. Builtin markup list commands, such as
297 @code{\justified-lines} or @code{\wordwrap-lines} may be used, and new
298 ones created using the @code{define-markup-list-command} Scheme macro.
301 Particular points of a book may be marked with the @code{\label}
302 command. Then, the page where these points are placed can be
303 referred to using the @code{\page-ref} markup command.
306 Page breaking and page turning commands (@code{\pageBreak},
307 @code{\noPageBreak}, etc.) can be used at top-level, between scores and
311 The following options are now changed as a @code{-d} sub-option:
312 @code{--backend}, @code{--safe}, @code{--preview} and
313 @code{--no-pages} (which became @code{-dno-print-pages}). The @code{-b}
314 option does not exist any more.
317 Improved testing procedures now catch changes in CPU and memory
318 performance, page layout, MIDI results and warnings. This helps to
319 reduce the number of regression errors during development, resulting
320 in more stable releases.
322 See @uref{INSTALL.html#Testing-LilyPond} for more information.
325 Nested properties, such as @code{'details} in @code{Slur}, can be
326 reverted as well. The syntax for this is
329 \revert Slur #'(details closeness-factor)
333 All line spanners are more flexible now in the configuration of
334 their end points. This includes glissando, voice followers, text
335 crescendos and other text spanners. The old syntax for setting
336 text on line spanners is no longer valid.
340 \override Glissando #'bound-details #'right #'text = \markup { \center-align \bold down }
341 \override Glissando #'bound-details #'right #'Y = #-4
342 \override Glissando #'bound-details #'right #'padding = #0.0
343 \override Glissando #'bound-details #'left #'arrow = ##t
344 \override Glissando #'bound-details #'left #'padding = #3.0
345 \override Glissando #'style = #'trill
346 \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods
347 \override Glissando #'minimum-length = #12
353 This feature was sponsored by Trevor Bača.
356 The environment variable @code{LILYPONDPREFIX} has been renamed
357 @code{LILYPOND_DATADIR}.
360 Notes or rests, such as a typical end note, that fill an entire
361 measure are preceded by some more space.
374 All @code{\score}s in a lilypond-book fragment are now inserted
375 into the document. Also, toplevel markups don't result in an entire
379 Alterations (such as a sharp or flat) may now be arbitrary
380 fractions. This allows some forms of microtonal music. For example,
381 Turkish makam music uses 1/9th tone alterations.
383 @lilypondfile{makam-example.ly}
386 Tie directions may be set with @code{^~} and @code{_~}.
389 Tablature now supports harmonics and slides:
391 @lilypond[relative=1]
393 <c g'\harmonic>4 d\2\glissando e2\2
397 This feature was sponsored by Mike Amundsen
400 Horizontal spacing now follows object outlines more accurately.
401 This allows tighter horizontal spacing.
411 Objects that belong outside of the staff are now positioned
412 automatically to avoid collisions.
414 @lilypond[relative=1]
416 \once \override TextScript #'self-alignment-X = #CENTER
417 a,4^"this doesn't collide with the c"
418 b4^"this goes above the previous markup"
419 a8_"this goes below the dynamic"
424 Staves are spaced vertically using a skyline algorithm. This helps
425 prevent uneven vertical spacing.
427 @lilypond[ragged-right]
429 %% todo: fix 'landscape PDF.
430 #(set-default-paper-size "a6")
439 a'4 b' c'' d'' \break
440 \repeat unfold 2 { a'4 b' c'' d''}
452 For older news, go to
453 @uref{http://lilypond.org/doc/v2.10/Documentation/topdocs/NEWS.html},
454 or @uref{../,go back} to the Documentation index.