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}. It's part of
42 the @uref{../,LilyPond Documentation}
50 @item Positions of staff lines may now be set individually, for
53 @lilypond[raggedright]
54 \new Staff \relative c' {
55 \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 3 9)
60 This feature was sponsored by Andrea Valle.
63 @item A MusicXML importer is included now.
65 It was sponsored by among others, Mark van den Borre,
66 and Muziekacademie Lede.
69 Stem direction on the center staff line are now interpolated between
70 neighbors. This results in less stem direction changes, leading to a
71 more even appearance. For example,
73 @lilypond[raggedright]
81 This feature was sponsored by Mike Rolish and Basil Crow.
84 Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
87 @lilypond[raggedright]
90 \override TupletBracket #'bracket-visibility = ##f
91 \override TupletBracket #'staff-padding = ##f
92 \override Slur #'details #'region-size = #6
96 c( \stemDown g' \stemNeutral c,)
101 This feature was sponsored by Trent Johnston.
104 @item Tuplet brackets and numbers are implemented as separate grobs,
105 @code{TupletBracket} and @code{TupletNumber}.
107 This rewrite was sponsored by Trent Johnston.
109 @item String arguments for music functions may be specified without
110 @code{#} marks. This allows syntactical constructs (like \clef and
111 \bar) to be expressed in generic music functions.
113 @item Ties in chords are also formatted using a scoring based
114 formatting. This reduces the number of collisions for ties in chords,
116 @lilypond[raggedright,fragment,relative=2]
117 <b d f g> ~ <b d f g>
120 Here, the tie for the D is flipped, in spite the default rule for
123 This rewrite was sponsored by Steve Doonan.
125 @item With the @code{\tweak} music function, layout objects that are directly
126 connected to input may be tuned easily,
128 @lilypond[relative=2,fragment,verbatim,raggedright]
130 \tweak #'font-size #3 c
131 \tweak #'color #red d
132 \tweak #'style #'cross g
133 \tweak #'duration-log #1 a
137 This feature was sponsored by Sean Reed and Bertalan Fodor.
139 @item Generic music functions may now also be used on articulations
140 and chord elements, eg.
144 e-\keepWithTag #'bla -\tag #'bla ^2 >
147 This feature was sponsored by Sean Reed and Bertalan Fodor.
150 @item Spaces between lyrics and distance between syllables with
151 hyphens may now be separately tuned through the
152 @code{LyricSpace} grob.
154 This feature has been sponsored by Bertalan Fodor.
156 @item Texts set in a TrueType font are now kerned. This requires CVS
159 @item Using the @TeX{} no longer requires linking or dynamically
160 opening the kpathsea library, making the backend more easily usable on
163 This fix was sponsored by Black Trash Productions.
165 @item The horizontal location of rehearsal marks can be adjusted by
166 setting the @code{rehearsalMarkAlignSymbol} property,
168 @lilypond[raggedright]
173 \set Score.rehearsalMarkAlignSymbol = #'key-signature
177 \set Score.rehearsalMarkAlignSymbol = #'clef
185 This feature was sponsored by Trevor Bača.
189 It's now possible to easily create deeply nested system start
192 @lilypond[raggedright]
195 \set StaffGroup.systemStartDelimiterHierarchy
196 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
206 In addition, there is now also support for ``square'' system start
209 This feature was sponsored by Trevor Bača.
212 Tie formatting now uses scoring. This opens the road to formatting
213 which handles complex situations require tradeoffs between different
216 This refactoring has been sponsored by Steve Doonan.
219 Each grob property may also be a ``grob closure.'' This means that it
220 is possible to combine functions. For example, the @code{Y-offset} of
221 a @code{InstrumentName} grob is defined to be
224 ,(ly:make-simple-closure
226 ,(ly:make-simple-closure
227 (,Self_alignment_interface::y_aligned_on_self))
228 ,(ly:make-simple-closure
229 (,Side_position_interface::y_aligned_on_support_refpoints)))
233 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
237 (+ (Self_alignment_interface::y_aligned_on_self @var{grob})
238 (Self_alignment_interface::y_aligned_on_support_refpoints @var{grob}))
243 Calculation of extent and offset of grob is now controlled via the
244 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
245 properties, for example
248 \override TextScript #'Y-offset = #-6
252 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
256 Each grob property can be a procedure. If this is the case, it is
257 assumed to be a routine that calculates said property. This is a
258 major internal cleanup, which also provides advanced tweakability for
259 power users. For example,
262 \override Beam #'direction
264 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
270 With this code fragment, the direction of a beam is decided to be up
271 or down, depending on the number of stems in the beam.
275 Support for figured bass has been rewritten. Now it supports
276 continuation lines, slashed figures, and its figures, brackets, and alignments may
279 @lilypond[raggedright,fragment]
281 \relative { c4 c c c }
283 \set useBassFigureExtenders = ##t
284 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
288 This rewrite was sponsored by Trent Johnston and John Mandereau.
291 Subproperties, like the @code{details} field of @code{Slur} and
292 @code{Tie} may now be tuned with @code{\override}. For example,
295 \override Stem #'details #'beamed-lengths = #'(4 4 3)
299 shortens the stems in beams.
302 The default paper size may now be set from the command line using
306 Beamlets may stick out of the side of beams.
309 @lilypond[fragment,raggedright,relative=2]
311 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
312 \set stemLeftBeamCount = #2
315 \set stemRightBeamCount = #3
320 This feature was sponsored by Trevor Bača.
325 Vertical alignments of staves can now be tuned easily for individual
328 @lilypond[raggedright]
329 #(set-global-staff-size 13)
336 #"Score.NonMusicalPaperColumn"
337 #'line-break-system-details
338 #'((fixed-alignment-extra-space . 15))
350 This feature was sponsored by Nicolas Sceaux.
353 Vertical spacing for page layout can now be tuned for each system
354 individually. The dimensions that can be tuned can be visualized.
357 #(set-default-paper-size "a7" 'landscape)
360 \paper { annotatespacing = ##t }
364 These features were sponsored by Trevor Bača and Nicolas Sceaux.
367 The slope of a stem-tremolo may be set manually
369 @lilypond[fragment,relative=1,raggedright]
371 \once \override StemTremolo #'slope = #0.45
375 This feature was sponsored by Sven Axelsson.
378 Laissez vibrer ties can be created with @code{\laissezVibrer},
380 @lilypond[fragment,raggedright,relative=1]
381 <c e g>\laissezVibrer r <d f>\laissezVibrer
384 This feature was sponsored by Henrik Frisk.
387 The order of words in @code{\markup} commands may now be reversed by
388 setting the @code{text-direction} property. This is useful for
389 Right-to-Left languages like Hebrew.
391 This feature was sponsored by Aaron Mehl.
394 Texts over multi measure rests can stretch the corresponding measure,
395 if the appropriate @code{spring-and-rods} callback is set.
397 @lilypond[relative=2,fragment,raggedright]
398 \override MultiMeasureRestText #'springs-and-rods
399 = #Multi_measure_rest::set_text_rods
400 c1 R1 R1^"Very long long long text"
403 This feature was sponsored by Kris Shaffer.
406 @item @textanchor{tie-chords}
407 Formatting of ties in chords has been improved. Ties no longer collide
408 with note heads and stems. In addition, it is possible to manually
409 specify tie formatting
411 @lilypond[relative=2, fragment,raggedright]
412 <a c d f> ~ <a c d f>
414 \override TieColumn #'tie-configuration =
415 #'((0 . -1) (2 . -1) (5.5 . 1) (7 . 1))
416 <b d f g> ~ <b d f g>
419 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
420 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
424 Formatting of isolated, single ties has been improved. Now, ties avoid
425 staff lines, flags and dots, without compromising their shape.
427 @lilypond[fragment,raggedright]
430 c16 c2...~ c16 ~ c2... |
431 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
435 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
436 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
440 @item @textanchor{repeat-counter}
441 With the @code{countPercentRepeats} property,
442 percent repeats get incremental numbers to indicate the accumulated repeat count.
444 @lilypond[relative=2,fragment,raggedright]
445 \set countPercentRepeats = ##t
446 \repeat percent 4 { c1 }
448 \repeat percent 4 { c2 c2 }
451 This feature was sponsored by Yoshinobu Ishizaki
454 Text scripts such as fingering instructions and dynamics avoid
455 collisions with slurs
457 @lilypond[fragment,relative=1]
459 b_1( f'_1_2_3 c_3_4_5 a)
461 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
466 Tuplets can be made to reach the next non-tuplet note by setting the
467 @code{tupletFullLength} property,
469 @lilypond[fragment,relative=2]
471 \remove Forbid_line_break_engraver
475 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
476 \set tupletFullLength = ##t
477 \times 2/3 { c8[ c c] }
482 This feature was sponsored by Trevor Bača.
485 When @code{strict-note-spacing} is set, notes are spaced without regard
486 for clefs, bar lines, and grace notes. For example,
488 @lilypond[fragment,relative=2]
489 \override Score.SpacingSpanner #'strict-note-spacing = ##t
490 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
493 This feature was sponsored by Trevor Bača.
496 Beams support the @code{break-overshoot} property, for example
498 @lilypond[relative=2,fragment]
499 \set allowBeamBreak = ##t
500 \override Beam #'break-overshoot = #'(1.0 . 2.0)
504 This feature was sponsored by Trevor Bača.
507 Proportional notation is supported. Notes can be spaced proportional
508 to their time-difference by assigning a duration to
509 @code{proportionalNotationDuration}. For example,
511 @lilypond[relative=2,fragment,raggedright]
513 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
514 \new Staff { c8[ c c c c c] c4 c2 r2 }
515 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
519 This feature was sponsored by Trevor Bača.
522 Symbol sizes (e.g. accidentals) are disregarded for spacing if
523 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
526 @lilypond[relative=2,fragment]
528 \override Score.SpacingSpanner #'uniform-stretching = ##t
529 \new Staff { c16[ c c c c c c c c c16] }
531 \times 6/7 { c16 c c cis c c c }
537 This feature was sponsored by Trevor Bača.
540 Endings of broken tuplet brackets can be tuned. For example, you can
541 add arrows to the brackets,
543 @lilypond[fragment,raggedright,relative=2]
544 \override TupletBracket
546 (markup #:arrow-head X LEFT #f)
547 (markup #:arrow-head X RIGHT #f))
549 c c c \bar "empty" \break c c
553 This feature was sponsored by Trevor Bača.
556 @item @textanchor{arrow-glyph}
557 Arrow heads were added to the Feta font.
562 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
563 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
568 These glyphs have been sponsored by Trevor Bača.
572 Nested tuplets are automatically positioned,
574 @lilypond[fragment,raggedright,relative=2]
575 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
578 \times 3/5 { a a a a a }
582 This feature was sponsored by Trevor Bača.
585 Music expressions can be displayed, in LilyPond notation, using the
586 new @code{\displayLilyMusic} function. For instance:
588 \displayLilyMusic \transpose c a, { c d e f }
595 This feature was contributed by Nicolas Sceaux.
598 The current bar number may be checked with @code{\barNumberCheck}, eg.
605 will print a warning if it doesn't happen in measure 22.
608 If @code{showLastLength} is set, only the last few measures of a piece
609 are rendered, which speeds up correcting scores. For example, setting
612 showLastLength = R1*5
617 will render only the last five measures (assuming 4/4 time signature)
620 @item @textanchor{simple-melismata}
621 Melismata can be specified simply in the lyrics now, eg.
623 @lilypond[relative=1,verbatim,fragment]
631 This feature was sponsored by Nancho Alvarez
634 Suggested accidentals (for notating musica ficta) may be switched on
635 with @code{suggestAccidentals}
637 @lilypond[verbatim,fragment,relative=2]
638 \set suggestAccidentals = ##t
642 This feature was sponsored by Nancho Alvarez.
645 The setting @code{whichBar} and time-bookkeeping is now split into a
646 @code{Default_bar_line_engraver} and @code{Timing_translator}
649 @item @textanchor{pitched-trill}
650 Explicit pitches may be added to trills,
652 @lilypond[relative,verbatim,fragment]
653 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
656 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
659 Markup now supports formatting of text paragraphs, using
660 @code{\wordwrap} and @code{\justify}.
662 This feature was sponsored by Sven Axelsson.
666 For older news, go to
667 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
668 or @uref{../,go back} to the Documentation index.