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 is 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 Straight flags (used in old scores of e.g. Bach, but also in different form in
67 modern scores of e.g. Stockhausen) are now implemented:
70 \override Stem #'flag = #modern-straight-flag
71 c,16 \acciaccatura {c'8} d4 d32
73 \override Stem #'flag = #old-straight-flag
74 c,16 \acciaccatura {c'8} d4 d32
79 @code{\bookpart} blocks may be used to split a book into several parts,
80 separated by a page break, in order to ease the page breaking, or to use
81 different @code{\paper} settings in different parts.
87 subtitle = "First part"
94 subtitle = "Second part"
102 Nested contexts of the same type are now allowed.
103 This deprecates @code{InnerStaffGroup} and @code{InnerChoirStaff}.
104 @lilypond[relative=1]
115 Percent repeat counters can be shown at regular intervals using the
116 context property @code{repeatCountVisibility}.
117 @lilypond[relative=1]
119 \set countPercentRepeats = ##t
120 \set repeatCountVisibility = #(every-nth-repeat-count-visible 2)
121 \repeat percent 8 { c4 d e f }
126 In addition to the already existing @code{showLastLength} property,
127 @code{showFirstLength} can now be set as well, rendering only the first
128 measures of a piece. Both properties may be set at the same time:
130 showFirstLength = R1*2
131 showLastLength = R1*3
132 \relative c' { c1 d e f g a b c }
136 The file extension for MIDI can be set using the command-line
137 program default @code{midi-extension}. For Windows, the default
138 extension has been changed to @code{.mid}.
141 Two variations on the default double repeat bar line are now available.
144 \set Score.doubleRepeatType = #":|.:"
157 Four automatic accidentals rules have been added: @code{neo-modern},
158 @code{neo-modern-cautionary}, @code{dodecaphonic} and @code{teaching}.
159 The following example illustrates @code{neo-modern} rule.
164 cis'8 fis, d'4 <a cis>8 f bis4 |
176 #(set-accidental-style 'neo-modern)
182 Flags can now be generated with Scheme-code using the @code{'flag}
183 @code{Stem} grob property. Existing scores will work without change.
190 #(define (inverted-flag stem-grob)
191 (let* ((dir (if (eqv? (ly:grob-property stem-grob 'direction) UP) "d" "u"))
192 (flag (retrieve-glyph-flag "" dir "" stem-grob))
193 (line-thickness (ly:staff-symbol-line-thickness stem-grob))
194 (stem-thickness (ly:grob-property stem-grob 'thickness))
195 (stem-width (* line-thickness stem-thickness))
196 (stroke-style (ly:grob-property stem-grob 'stroke-style))
197 (stencil (if (null? stroke-style) flag
198 (add-stroke-glyph flag stem-grob dir stroke-style "")))
199 (rotated-flag (ly:stencil-rotate-absolute stencil 180 0 0)))
200 (ly:stencil-translate rotated-flag (cons (- (/ stem-width 2)) 0))))
202 #(define-public (weight-flag stem-grob)
203 (let* ((log (- (ly:grob-property stem-grob 'duration-log) 2))
204 (is-up (eqv? (ly:grob-property stem-grob 'direction) UP))
205 (yext (if is-up (cons (* log -0.8) 0) (cons 0 (* log 0.8))))
206 (flag-stencil (make-filled-box-stencil '(-0.4 . 0.4) yext))
207 (stroke-style (ly:grob-property stem-grob 'stroke-style))
208 (stroke-stencil (if (equal? stroke-style "grace")
209 (make-line-stencil 0.2 -0.9 -0.4 0.9 -0.4)
211 (ly:stencil-add flag-stencil stroke-stencil)))
215 \override Stem #'flag = #weight-flag
218 \override Stem #'flag = #inverted-flag
224 Harp pedalling diagrams were added:
227 \markup { \harp-pedal #"^v-|vv-o^" }
231 Predefined, user-configurable, transposable fret diagrams
232 are now available in the @code{FretBoards} context:
234 \include "predefined-guitar-fretboards.ly"
252 The following syntax changes were made, in chronological order. In
253 addition, fret diagram properties have been moved to
254 @code{fret-diagram-details}, and the @code{#'style} property is
255 used to select solid/dashed lines instead of @code{#'dash-fraction}.
258 'break-align-symbol -> 'break-align-symbols
259 scripts.caesura -> scripts.caesura.curved
260 \setEasyHeads -> \easyHeadsOn
261 \easyHeadsOff (new command)
262 \fatText -> \textLengthOn
263 \emptyText -> \textLengthOff
264 \set hairpinToBarline -> \override Hairpin #'to-barline
265 \compressMusic -> \scaleDurations
266 \octave -> \octaveCheck
267 \arpeggioUp -> \arpeggioArrowUp
268 \arpeggioDown -> \arpeggioArrowDown
269 \arpeggioNeutral -> \arpeggioNormal
270 \setTextCresc -> \crescTextCresc
271 \setTextDecresc -> \dimTextDecresc
272 \setTextDecr -> \dimTextDecr
273 \setTextDim -> \dimTextDim
274 \setHairpinCresc -> \crescHairpin
275 \setHairpinDecresc -> \dimHairpin
276 \sustainUp -> \sustainOff
277 \sustainDown -> \sustainOn
278 \sostenutoDown -> \sostenutoOn
279 \sostenutoUp -> \sostenutoOff
280 'infinite-spacing-height -> 'extra-spacing-height
281 #(set-octavation oct) -> \ottava #oct
282 \put-adjacent markup axis dir markup -> \put-adjacent axis dir markup markup
283 \pointAndClickOn (new command)
284 \pointAndClickOff (new command)
285 \center-align -> \center-column
286 \hcenter -> \center-align
287 printallheaders -> print-all-headers
288 \bigger -> \larger (already existing command)
289 systemSeparatorMarkup -> system-separator-markup
293 Moreover, some files in the @code{ly/} directory have been renamed;
294 the *-init.ly filenames are now only used for files that are automatically
295 included, while such files as @code{makam-init.ly} or @code{gregorian-init.ly}
296 have been renamed to @code{makam.ly} or @code{gregorian.ly}.
299 The ``tex'' and ``texstr'' backends have been removed. Font are now
300 accessed via the fontconfig library; the Pango library is used to display
304 Metronome marks can now also contain a textual description. The
305 duration and count (if given) are shown in parentheses after the text.
312 \tempo "Andante" 4 = 120
325 In figured bass you can now also use a backslash through a number to
326 indicate a raised 6th step.
329 \new FiguredBass \figuremode { < 6\\ 5\\ > < 6/ > }
333 Arpeggios may now use ``parenthesis'' style brackets:
335 @lilypond[relative=1]
336 \override Arpeggio #'stencil = #ly:arpeggio::brew-chord-slur
338 % Note: does not work for cross-staff arpeggios.
339 \override Arpeggio #'X-extent = #ly:grob::stencil-width
340 <c g' c>2\arpeggio ~ c
344 Single-system scores are now naturally spaced instead of being
345 stretched to fill the line width. This can be changed by setting
346 @code{ragged-right = ##f}.
349 Enclosing text within boxes with rounded corners is now possible,
350 using the @code{\rounded-box} markup command.
353 @command{lilypond-book} can run any program instead of @command{latex}
354 to guess the line width, thanks to @code{--latex-program} command line
358 Underlining is now possible with the @code{\underline} markup command.
361 It is now possible to specify, using the @code{page-count} variable in
362 the paper block, the number of pages that will be used.
365 A new page breaking function, @code{ly:minimal-breaking}, is dedicated
366 to books with many pages or a lot of text.
369 A table of contents is included using @code{\markuplines \table-of-contents}.
370 Elements are added to it using the @code{\tocItem} command.
373 Text spreading over several pages is entered using the
374 @code{\markuplines} keyword. Builtin markup list commands, such as
375 @code{\justified-lines} or @code{\wordwrap-lines} may be used, and new
376 ones created using the @code{define-markup-list-command} Scheme macro.
379 Particular points of a book may be marked with the @code{\label}
380 command. Then, the page where these points are placed can be
381 referred to using the @code{\page-ref} markup command.
384 Page breaking and page turning commands (@code{\pageBreak},
385 @code{\noPageBreak}, etc.) can be used at top-level, between scores and
389 The following options are now changed as a @code{-d} sub-option:
390 @code{--backend}, @code{--safe}, @code{--preview} and
391 @code{--no-pages} (which became @code{-dno-print-pages}). The @code{-b}
392 option does not exist any more.
395 Improved testing procedures now catch changes in CPU and memory
396 performance, page layout, MIDI results and warnings. This helps to
397 reduce the number of regression errors during development, resulting
398 in more stable releases.
400 See @uref{INSTALL.html#Testing-LilyPond} for more information.
403 Nested properties, such as @code{'details} in @code{Slur}, can be
404 reverted as well. The syntax for this is
407 \revert Slur #'(details closeness-factor)
411 All line spanners are more flexible now in the configuration of
412 their end points. This includes glissando, voice followers, text
413 crescendos and other text spanners. The old syntax for setting
414 text on line spanners is no longer valid.
418 \override Glissando #'(bound-details right text) = \markup { \center-align \bold down }
419 \override Glissando #'(bound-details right Y) = #-4
420 \override Glissando #'(bound-details right padding) = #0.0
421 \override Glissando #'(bound-details left arrow) = ##t
422 \override Glissando #'(bound-details left padding) = #3.0
423 \override Glissando #'style = #'trill
424 \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods
425 \override Glissando #'minimum-length = #12
431 This feature was sponsored by Trevor Bača.
434 The environment variable @code{LILYPONDPREFIX} has been renamed
435 @code{LILYPOND_DATADIR}.
438 Notes or rests, such as a typical end note, that fill an entire
439 measure are preceded by some more space.
441 @lilypond[relative=1]
450 All @code{\score}s in a lilypond-book fragment are now inserted
451 into the document. Also, toplevel markups don't result in an entire
455 Alterations (such as a sharp or flat) may now be arbitrary
456 fractions. This allows some forms of microtonal music. For example,
457 Turkish makam music uses 1/9th tone alterations.
459 @lilypondfile{makam-example.ly}
462 Tie directions may be set with @code{^~} and @code{_~}.
465 Tablature now supports harmonics and slides:
467 @lilypond[relative=1]
469 <c g'\harmonic>4 d\2\glissando e2\2
473 This feature was sponsored by Mike Amundsen
476 Horizontal spacing now follows object outlines more accurately.
477 This allows tighter horizontal spacing.
487 Objects that belong outside of the staff are now positioned
488 automatically to avoid collisions.
490 @lilypond[relative=1]
492 \once \override TextScript #'self-alignment-X = #CENTER
493 a,4^"this doesn't collide with the c"
494 b4^"this goes above the previous markup"
495 a8_"this goes below the dynamic"
500 Staves are spaced vertically using a skyline algorithm. This helps
501 prevent uneven vertical spacing.
503 @lilypond[ragged-right]
505 %% todo: fix 'landscape PDF.
506 #(set-default-paper-size "a6")
515 a'4 b' c'' d'' \break
516 \repeat unfold 2 { a'4 b' c'' d''}
528 For older news, go to
529 @uref{http://lilypond.org/doc/v2.10/Documentation/topdocs/NEWS.html},
530 or @uref{../,go back} to the Documentation index.