1 \input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
6 @macro inputfileref{DIR,NAME}
7 @uref{../../../\DIR\/out-www/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
9 @macro usermanref{NAME}
10 @inforef{\NAME\,,../../user/out-www/lilypond/lilypond}@c
15 @macro inputfileref{DIR,NAME}
18 @macro usermanref{NAME}
19 See user manual, \NAME\
24 @macro textanchor{NAME}
31 @documentencoding utf-8
38 @unnumbered New features in 2.7 since 2.6
41 This document is also available in @uref{NEWS.pdf,PDF}.
49 @item The horizontal location of rehearsal marks can be adjusted by
50 setting the @code{rehearsalMarkAlignSymbol} property,
52 @lilypond[raggedright]
57 \set Score.rehearsalMarkAlignSymbol = #'key-signature
61 \set Score.rehearsalMarkAlignSymbol = #'clef
69 This feature was sponsored by Trevor Bača.
73 It's now possible to easily create deeply nested system start
76 @lilypond[raggedright]
79 \set StaffGroup.systemStartDelimiterHierarchy
80 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
90 In addition, there is now also support for ``square'' system start
93 This feature was sponsored by Trevor Bača.
96 Tie formatting now uses scoring. This opens the road to formatting
97 which handles complex situations require tradeoffs between different
100 This refactoring has been sponsored by Steve Doonan.
103 Each grob property may also be a ``grob closure.'' This means that it
104 is possible to combine functions. For example, the @code{Y-offset} of
105 a @code{InstrumentName} grob is defined to be
108 ,(ly:make-simple-closure
110 ,(ly:make-simple-closure
111 (,Self_alignment_interface::y_aligned_on_self))
112 ,(ly:make-simple-closure
113 (,Side_position_interface::y_aligned_on_support_refpoints)))
117 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
121 (+ (Self_alignment_interface::y_aligned_on_self @var{grob})
122 (Self_alignment_interface::y_aligned_on_support_refpoints @var{grob}))
127 Calculation of extent and offset of grob is now controlled via the
128 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
129 properties, for example
132 \override TextScript #'Y-offset = #-6
136 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
140 Each grob property can be a procedure. If this is the case, it is
141 assumed to be a routine that calculates said property. This is a
142 major internal cleanup, which also provides advanced tweakability for
143 power users. For example,
146 \override Beam #'direction
148 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
154 With this code fragment, the direction of a beam is decided to be up
155 or down, depending on the number of stems in the beam.
159 Support for figured bass has been rewritten. Now it supports
160 continuation lines, slashed figures, and its figures, brackets, and alignments may
163 @lilypond[raggedright,fragment]
165 \relative { c4 c c c }
167 \set useBassFigureExtenders = ##t
168 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
172 This rewrite was sponsored by Trent Johnston and John Mandereau.
175 Subproperties, like the @code{details} field of @code{Slur} and
176 @code{Tie} may now be tuned with @code{\override}. For example,
179 \override Stem #'details #'beamed-lengths = #'(4 4 3)
183 shortens the stems in beams.
186 The default paper size may now be set from the command line using
190 Beamlets may stick out of the side of beams.
193 @lilypond[fragment,raggedright,relative=2]
195 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
196 \set stemLeftBeamCount = #2
199 \set stemRightBeamCount = #3
204 This feature was sponsored by Trevor Bača.
209 Vertical alignments of staves can now be tuned easily for individual
212 @lilypond[raggedright]
213 #(set-global-staff-size 13)
220 #"Score.NonMusicalPaperColumn"
221 #'line-break-system-details
222 #'((fixed-alignment-extra-space . 15))
234 This feature was sponsored by Nicolas Sceaux.
237 Vertical spacing for page layout can now be tuned for each system
238 individually. The dimensions that can be tuned can be visualized.
241 #(set-default-paper-size "a7" 'landscape)
244 \paper { annotatespacing = ##t }
248 These features were sponsored by Trevor Bača and Nicolas Sceaux.
251 The slope of a stem-tremolo may be set manually
253 @lilypond[fragment,relative=1,raggedright]
255 \once \override StemTremolo #'slope = #0.45
259 This feature was sponsored by Sven Axelsson.
262 Laissez vibrer ties can be created with @code{\laissezVibrer},
264 @lilypond[fragment,raggedright,relative=1]
265 <c e g>\laissezVibrer r <d f>\laissezVibrer
268 This feature was sponsored by Henrik Frisk.
271 The order of words in @code{\markup} commands may now be reversed by
272 setting the @code{text-direction} property. This is useful for
273 Right-to-Left languages like Hebrew.
275 This feature was sponsored by Aaron Mehl.
278 Texts over multi measure rests can stretch the corresponding measure,
279 if the appropriate @code{spring-and-rods} callback is set.
281 @lilypond[relative=2,fragment,raggedright]
282 \override MultiMeasureRestText #'springs-and-rods
283 = #Multi_measure_rest::set_text_rods
284 c1 R1 R1^"Very long long long text"
287 This feature was sponsored by Kris Shaffer.
290 @item @textanchor{tie-chords}
291 Formatting of ties in chords has been improved. Ties no longer collide
292 with note heads and stems. In addition, it is possible to manually
293 specify tie formatting
295 @lilypond[relative=2, fragment,raggedright]
296 <a c d f> ~ <a c d f>
298 \override TieColumn #'tie-configuration =
299 #'((0 . -1) (2 . -1) (5.5 . 1) (7 . 1))
300 <b d f g> ~ <b d f g>
303 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
304 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
308 Formatting of isolated, single ties has been improved. Now, ties avoid
309 staff lines, flags and dots, without compromising their shape.
311 @lilypond[fragment,raggedright]
314 c16 c2...~ c16 ~ c2... |
315 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
319 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
320 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
324 @item @textanchor{repeat-counter}
325 With the @code{countPercentRepeats} property,
326 percent repeats get incremental numbers to indicate the accumulated repeat count.
328 @lilypond[relative=2,fragment,raggedright]
329 \set countPercentRepeats = ##t
330 \repeat percent 4 { c1 }
332 \repeat percent 4 { c2 c2 }
335 This feature was sponsored by Yoshinobu Ishizaki
338 Text scripts such as fingering instructions and dynamics avoid
339 collisions with slurs
341 @lilypond[fragment,relative=1]
343 b_1( f'_1_2_3 c_3_4_5 a)
345 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
350 Tuplets can be made to reach the next non-tuplet note by setting the
351 @code{tupletFullLength} property,
353 @lilypond[fragment,relative=2]
355 \remove Forbid_line_break_engraver
359 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
360 \set tupletFullLength = ##t
361 \times 2/3 { c8[ c c] }
366 This feature was sponsored by Trevor Bača.
369 When @code{strict-note-spacing} is set, notes are spaced without regard
370 for clefs, bar lines, and grace notes. For example,
372 @lilypond[fragment,relative=2]
373 \override Score.SpacingSpanner #'strict-note-spacing = ##t
374 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
377 This feature was sponsored by Trevor Bača.
380 Beams support the @code{break-overshoot} property, for example
382 @lilypond[relative=2,fragment]
383 \set allowBeamBreak = ##t
384 \override Beam #'break-overshoot = #'(1.0 . 2.0)
388 This feature was sponsored by Trevor Bača.
391 Proportional notation is supported. Notes can be spaced proportional
392 to their time-difference by assigning a duration to
393 @code{proportionalNotationDuration}. For example,
395 @lilypond[relative=2,fragment,raggedright]
397 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
398 \new Staff { c8[ c c c c c] c4 c2 r2 }
399 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
403 This feature was sponsored by Trevor Bača.
406 Symbol sizes (e.g. accidentals) are disregarded for spacing if
407 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
410 @lilypond[relative=2,fragment]
412 \override Score.SpacingSpanner #'uniform-stretching = ##t
413 \new Staff { c16[ c c c c c c c c c16] }
415 \times 6/7 { c16 c c cis c c c }
421 This feature was sponsored by Trevor Bača.
424 Endings of broken tuplet brackets can be tuned. For example, you can
425 add arrows to the brackets,
427 @lilypond[fragment,raggedright,relative=2]
428 \override TupletBracket
430 (markup #:arrow-head X LEFT #f)
431 (markup #:arrow-head X RIGHT #f))
433 c c c \bar "empty" \break c c
437 This feature was sponsored by Trevor Bača.
440 @item @textanchor{arrow-glyph}
441 Arrow heads were added to the Feta font.
446 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
447 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
452 These glyphs have been sponsored by Trevor Bača.
456 Nested tuplets are automatically positioned,
458 @lilypond[fragment,raggedright,relative=2]
459 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
462 \times 3/5 { a a a a a }
466 This feature was sponsored by Trevor Bača.
469 Music expressions can be displayed, in LilyPond notation, using the
470 new @code{\displayLilyMusic} function. For instance:
472 \displayLilyMusic \transpose c a, { c d e f }
479 This feature was contributed by Nicolas Sceaux.
482 The current bar number may be checked with @code{\barNumberCheck}, eg.
489 will print a warning if it doesn't happen in measure 22.
492 If @code{showLastLength} is set, only the last few measures of a piece
493 are rendered, which speeds up correcting scores. For example, setting
496 showLastLength = R1*5
501 will render only the last five measures (assuming 4/4 time signature)
504 @item @textanchor{simple-melismata}
505 Melismata can be specified simply in the lyrics now, eg.
507 @lilypond[relative=1,verbatim,fragment]
515 This feature was sponsored by Nancho Alvarez
518 Suggested accidentals (for notating musica ficta) may be switched on
519 with @code{suggestAccidentals}
521 @lilypond[verbatim,fragment,relative=2]
522 \set suggestAccidentals = ##t
526 This feature was sponsored by Nancho Alvarez.
529 The setting @code{whichBar} and time-bookkeeping is now split into a
530 @code{Default_bar_line_engraver} and @code{Timing_translator}
533 @item @textanchor{pitched-trill}
534 Explicit pitches may be added to trills,
536 @lilypond[relative,verbatim,fragment]
537 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
540 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
543 Markup now supports formatting of text paragraphs, using
544 @code{\wordwrap} and @code{\justify}.
546 This feature was sponsored by Sven Axelsson.
550 For older news, go to
551 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/out-www/NEWS.html}.