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\
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 Ties in chords are also formatted using a scoring based
50 formatting. This reduces the number of collisions for ties in
53 @lilypond[raggedright,fragment,relative=2]
57 Here, the tie for the F is flipped, in spite the default rule for
60 This rewrite was sponsored by Steve Doonan.
62 @item With the @code{\tweak} music function, layout objects that are directly
63 connected to input may be tuned easily,
65 @lilypond[relative=2,fragment,verbatim,raggedright]
67 \tweak #'font-size #3 c
69 \tweak #'style #'cross g
70 \tweak #'duration-log #1 a
74 This feature was sponsored by Sean Reed and Bertalan Fodor.
76 @item Generic music functions may now also be used on articulations
77 and chord elements, eg.
81 e-\keepWithTag #'bla -\tag #'bla ^2 >
84 This feature was sponsored by Sean Reed and Bertalan Fodor.
87 @item Spaces between lyrics and distance between syllables with
88 hyphens may now be separately tuned through the
89 @code{LyricSpace} grob.
91 This feature has been sponsored by Bertalan Fodor.
93 @item A MusicXML importer is included now.
95 @item Texts set in a TrueType font are now kerned. This requires CVS
98 @item Using the @TeX{} no longer requires linking or dynamically
99 opening the kpathsea library, making the backend more easily usable on
102 This fix was sponsored by Black Trash Productions.
104 @item The horizontal location of rehearsal marks can be adjusted by
105 setting the @code{rehearsalMarkAlignSymbol} property,
107 @lilypond[raggedright]
112 \set Score.rehearsalMarkAlignSymbol = #'key-signature
116 \set Score.rehearsalMarkAlignSymbol = #'clef
124 This feature was sponsored by Trevor Bača.
128 It's now possible to easily create deeply nested system start
131 @lilypond[raggedright]
134 \set StaffGroup.systemStartDelimiterHierarchy
135 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
145 In addition, there is now also support for ``square'' system start
148 This feature was sponsored by Trevor Bača.
151 Tie formatting now uses scoring. This opens the road to formatting
152 which handles complex situations require tradeoffs between different
155 This refactoring has been sponsored by Steve Doonan.
158 Each grob property may also be a ``grob closure.'' This means that it
159 is possible to combine functions. For example, the @code{Y-offset} of
160 a @code{InstrumentName} grob is defined to be
163 ,(ly:make-simple-closure
165 ,(ly:make-simple-closure
166 (,Self_alignment_interface::y_aligned_on_self))
167 ,(ly:make-simple-closure
168 (,Side_position_interface::y_aligned_on_support_refpoints)))
172 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
176 (+ (Self_alignment_interface::y_aligned_on_self @var{grob})
177 (Self_alignment_interface::y_aligned_on_support_refpoints @var{grob}))
182 Calculation of extent and offset of grob is now controlled via the
183 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
184 properties, for example
187 \override TextScript #'Y-offset = #-6
191 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
195 Each grob property can be a procedure. If this is the case, it is
196 assumed to be a routine that calculates said property. This is a
197 major internal cleanup, which also provides advanced tweakability for
198 power users. For example,
201 \override Beam #'direction
203 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
209 With this code fragment, the direction of a beam is decided to be up
210 or down, depending on the number of stems in the beam.
214 Support for figured bass has been rewritten. Now it supports
215 continuation lines, slashed figures, and its figures, brackets, and alignments may
218 @lilypond[raggedright,fragment]
220 \relative { c4 c c c }
222 \set useBassFigureExtenders = ##t
223 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
227 This rewrite was sponsored by Trent Johnston and John Mandereau.
230 Subproperties, like the @code{details} field of @code{Slur} and
231 @code{Tie} may now be tuned with @code{\override}. For example,
234 \override Stem #'details #'beamed-lengths = #'(4 4 3)
238 shortens the stems in beams.
241 The default paper size may now be set from the command line using
245 Beamlets may stick out of the side of beams.
248 @lilypond[fragment,raggedright,relative=2]
250 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
251 \set stemLeftBeamCount = #2
254 \set stemRightBeamCount = #3
259 This feature was sponsored by Trevor Bača.
264 Vertical alignments of staves can now be tuned easily for individual
267 @lilypond[raggedright]
268 #(set-global-staff-size 13)
275 #"Score.NonMusicalPaperColumn"
276 #'line-break-system-details
277 #'((fixed-alignment-extra-space . 15))
289 This feature was sponsored by Nicolas Sceaux.
292 Vertical spacing for page layout can now be tuned for each system
293 individually. The dimensions that can be tuned can be visualized.
296 #(set-default-paper-size "a7" 'landscape)
299 \paper { annotatespacing = ##t }
303 These features were sponsored by Trevor Bača and Nicolas Sceaux.
306 The slope of a stem-tremolo may be set manually
308 @lilypond[fragment,relative=1,raggedright]
310 \once \override StemTremolo #'slope = #0.45
314 This feature was sponsored by Sven Axelsson.
317 Laissez vibrer ties can be created with @code{\laissezVibrer},
319 @lilypond[fragment,raggedright,relative=1]
320 <c e g>\laissezVibrer r <d f>\laissezVibrer
323 This feature was sponsored by Henrik Frisk.
326 The order of words in @code{\markup} commands may now be reversed by
327 setting the @code{text-direction} property. This is useful for
328 Right-to-Left languages like Hebrew.
330 This feature was sponsored by Aaron Mehl.
333 Texts over multi measure rests can stretch the corresponding measure,
334 if the appropriate @code{spring-and-rods} callback is set.
336 @lilypond[relative=2,fragment,raggedright]
337 \override MultiMeasureRestText #'springs-and-rods
338 = #Multi_measure_rest::set_text_rods
339 c1 R1 R1^"Very long long long text"
342 This feature was sponsored by Kris Shaffer.
345 @item @textanchor{tie-chords}
346 Formatting of ties in chords has been improved. Ties no longer collide
347 with note heads and stems. In addition, it is possible to manually
348 specify tie formatting
350 @lilypond[relative=2, fragment,raggedright]
351 <a c d f> ~ <a c d f>
353 \override TieColumn #'tie-configuration =
354 #'((0 . -1) (2 . -1) (5.5 . 1) (7 . 1))
355 <b d f g> ~ <b d f g>
358 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
359 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
363 Formatting of isolated, single ties has been improved. Now, ties avoid
364 staff lines, flags and dots, without compromising their shape.
366 @lilypond[fragment,raggedright]
369 c16 c2...~ c16 ~ c2... |
370 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
374 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
375 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
379 @item @textanchor{repeat-counter}
380 With the @code{countPercentRepeats} property,
381 percent repeats get incremental numbers to indicate the accumulated repeat count.
383 @lilypond[relative=2,fragment,raggedright]
384 \set countPercentRepeats = ##t
385 \repeat percent 4 { c1 }
387 \repeat percent 4 { c2 c2 }
390 This feature was sponsored by Yoshinobu Ishizaki
393 Text scripts such as fingering instructions and dynamics avoid
394 collisions with slurs
396 @lilypond[fragment,relative=1]
398 b_1( f'_1_2_3 c_3_4_5 a)
400 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
405 Tuplets can be made to reach the next non-tuplet note by setting the
406 @code{tupletFullLength} property,
408 @lilypond[fragment,relative=2]
410 \remove Forbid_line_break_engraver
414 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
415 \set tupletFullLength = ##t
416 \times 2/3 { c8[ c c] }
421 This feature was sponsored by Trevor Bača.
424 When @code{strict-note-spacing} is set, notes are spaced without regard
425 for clefs, bar lines, and grace notes. For example,
427 @lilypond[fragment,relative=2]
428 \override Score.SpacingSpanner #'strict-note-spacing = ##t
429 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
432 This feature was sponsored by Trevor Bača.
435 Beams support the @code{break-overshoot} property, for example
437 @lilypond[relative=2,fragment]
438 \set allowBeamBreak = ##t
439 \override Beam #'break-overshoot = #'(1.0 . 2.0)
443 This feature was sponsored by Trevor Bača.
446 Proportional notation is supported. Notes can be spaced proportional
447 to their time-difference by assigning a duration to
448 @code{proportionalNotationDuration}. For example,
450 @lilypond[relative=2,fragment,raggedright]
452 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
453 \new Staff { c8[ c c c c c] c4 c2 r2 }
454 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
458 This feature was sponsored by Trevor Bača.
461 Symbol sizes (e.g. accidentals) are disregarded for spacing if
462 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
465 @lilypond[relative=2,fragment]
467 \override Score.SpacingSpanner #'uniform-stretching = ##t
468 \new Staff { c16[ c c c c c c c c c16] }
470 \times 6/7 { c16 c c cis c c c }
476 This feature was sponsored by Trevor Bača.
479 Endings of broken tuplet brackets can be tuned. For example, you can
480 add arrows to the brackets,
482 @lilypond[fragment,raggedright,relative=2]
483 \override TupletBracket
485 (markup #:arrow-head X LEFT #f)
486 (markup #:arrow-head X RIGHT #f))
488 c c c \bar "empty" \break c c
492 This feature was sponsored by Trevor Bača.
495 @item @textanchor{arrow-glyph}
496 Arrow heads were added to the Feta font.
501 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
502 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
507 These glyphs have been sponsored by Trevor Bača.
511 Nested tuplets are automatically positioned,
513 @lilypond[fragment,raggedright,relative=2]
514 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
517 \times 3/5 { a a a a a }
521 This feature was sponsored by Trevor Bača.
524 Music expressions can be displayed, in LilyPond notation, using the
525 new @code{\displayLilyMusic} function. For instance:
527 \displayLilyMusic \transpose c a, { c d e f }
534 This feature was contributed by Nicolas Sceaux.
537 The current bar number may be checked with @code{\barNumberCheck}, eg.
544 will print a warning if it doesn't happen in measure 22.
547 If @code{showLastLength} is set, only the last few measures of a piece
548 are rendered, which speeds up correcting scores. For example, setting
551 showLastLength = R1*5
556 will render only the last five measures (assuming 4/4 time signature)
559 @item @textanchor{simple-melismata}
560 Melismata can be specified simply in the lyrics now, eg.
562 @lilypond[relative=1,verbatim,fragment]
570 This feature was sponsored by Nancho Alvarez
573 Suggested accidentals (for notating musica ficta) may be switched on
574 with @code{suggestAccidentals}
576 @lilypond[verbatim,fragment,relative=2]
577 \set suggestAccidentals = ##t
581 This feature was sponsored by Nancho Alvarez.
584 The setting @code{whichBar} and time-bookkeeping is now split into a
585 @code{Default_bar_line_engraver} and @code{Timing_translator}
588 @item @textanchor{pitched-trill}
589 Explicit pitches may be added to trills,
591 @lilypond[relative,verbatim,fragment]
592 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
595 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
598 Markup now supports formatting of text paragraphs, using
599 @code{\wordwrap} and @code{\justify}.
601 This feature was sponsored by Sven Axelsson.
605 For older news, go to
606 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html}.