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}
54 * only show verbatim input for syntax/input changes
56 * try to be as brief possible in those cases
58 * don't try to provide real-world examples, they often get too big,
59 which scares away people.
61 * Write complete sentences.
63 * only show user-visible changes.
67 @item Thicknesses of tie and slurs may be tuned separately for the
68 endings and the middle part.
70 @item Items directly connected with a music input element may be
71 parenthesized, for example,
73 @lilypond[verbatim,ragged-right,fragment,relative=2]
75 <d \parenthesize fis a>
78 This feature was sponsored by Ramana Kumar.
81 variables in the @code{\paper} and @code{\layout} block are now
82 separated with dashes, i.e.
92 The same holds for analogous options in lilypond-book.
95 Music for multiple parts can be interleaved, similar to MUP input.
96 This is done with the @code{\parallelMusic} function,
98 @lilypond[verbatim,ragged-right]
99 \parallelMusic #'(voiceA voiceB) {
100 r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
102 r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
113 This feature was contributed by Nicolas Sceaux.
115 @item Alignments of staves may be tuned per system.
117 #(set-global-staff-size 13)
119 \relative c'' \new StaffGroup <<
124 #"Score.NonMusicalPaperColumn"
125 #'line-break-system-details
126 #'((alignment-offsets . (0 -5 -20)))
129 #"Score.NonMusicalPaperColumn"
130 #'line-break-system-details
131 #'((alignment-offsets . (0 -15 -20)))
137 This feature was sponsored by Trevor Bača.
139 @item Individual systems may be positioned manually,
143 tagline = "lily was here"
146 #(set-default-paper-size "a7" 'landscape)
148 head-separation = 0.0
149 foot-separation = 0.0
156 #"Score.NonMusicalPaperColumn"
157 #'line-break-system-details
165 annotateheaders = ##t
170 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
172 @item A linebreaking configuration can now be saved as a @file{.ly}
173 file automatically. This allows vertical alignments to be stretched to
174 fit pages in a second formatting run. See
175 @inputfileref{input/regression,page-layout-twopass.ly} for an
178 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
180 @item The tie formatting for chords has been further polished. More
181 cases are handled gracefully, and all scoring parameters may now be
182 changed through the @code{details} property of the @code{Tie} grob.
184 This refinement was sponsored by Steve Doonan.
186 @item Positions of staff lines may now be set individually, for
189 @lilypond[ragged-right]
190 \new Staff \relative c' {
191 \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 7)
196 This feature was sponsored by Andrea Valle.
199 @item A MusicXML importer is included now.
201 It was sponsored by among others, Mark van den Borre,
202 and Muziekacademie Lede.
205 Stem direction on the center staff line are now interpolated between
206 neighbors. This results in less stem direction changes, leading to a
207 more even appearance. For example,
209 @lilypond[ragged-right]
217 This feature was sponsored by Mike Rolish and Basil Crow.
220 Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
223 @lilypond[ragged-right]
226 \override TupletBracket #'bracket-visibility = ##f
227 \override TupletBracket #'staff-padding = ##f
228 \override Slur #'details #'region-size = #6
232 c( \stemDown g' \stemNeutral c,)
237 This feature was sponsored by Trent Johnston.
240 @item Tuplet brackets and numbers are implemented as separate grobs,
241 @code{TupletBracket} and @code{TupletNumber}.
243 This rewrite was sponsored by Trent Johnston.
245 @item String arguments for music functions may be specified without
246 @code{#} marks. Now, \clef and \bar are also music functions.
248 @item Ties in chords are also formatted using a scoring based
249 formatting. This reduces the number of collisions for ties in chords,
251 @lilypond[ragged-right,fragment,relative=2]
252 <b d f g> ~ <b d f g>
255 Here, the tie for the D is flipped, in spite the default rule for
258 This rewrite was sponsored by Steve Doonan.
260 @item With the @code{\tweak} music function, layout objects that are directly
261 connected to input may be tuned easily,
263 @lilypond[relative=2,fragment,verbatim,ragged-right]
265 \tweak #'font-size #3 c
266 \tweak #'color #red d
267 \tweak #'style #'cross g
268 \tweak #'duration-log #1 a
272 This feature was sponsored by Sean Reed and Bertalan Fodor.
274 @item Generic music functions may now also be used on articulations
275 and chord elements, eg.
279 e-\keepWithTag #'bla -\tag #'bla ^2 >
282 This feature was sponsored by Sean Reed and Bertalan Fodor.
285 @item Spaces between lyrics and distance between syllables with
286 hyphens may now be separately tuned through the
287 @code{LyricSpace} grob.
289 This feature has been sponsored by Bertalan Fodor.
291 @item Texts set in a TrueType font are now kerned. This requires CVS
294 @lilypond[relative=2,fragment,ragged-right]
299 @item Using the @TeX{} no longer requires linking or dynamically
300 opening the kpathsea library, making the backend more easily usable on
303 This fix was sponsored by Black Trash Productions.
305 @item The horizontal location of rehearsal marks can be adjusted by
306 setting the @code{rehearsalMarkAlignSymbol} property,
308 @lilypond[ragged-right]
313 \set Score.rehearsalMarkAlignSymbol = #'key-signature
317 \set Score.rehearsalMarkAlignSymbol = #'clef
325 This feature was sponsored by Trevor Bača.
329 It's now possible to easily create deeply nested system start
332 @lilypond[ragged-right]
335 \set StaffGroup.systemStartDelimiterHierarchy
336 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
346 In addition, there is now also support for ``square'' system start
349 This feature was sponsored by Trevor Bača.
352 Tie formatting now uses scoring. This opens the road to formatting
353 which handles complex situations require tradeoffs between different
356 This refactoring has been sponsored by Steve Doonan.
359 Each grob property may also be a ``grob closure.'' This means that it
360 is possible to combine functions. For example, the @code{Y-offset} of
361 a @code{InstrumentName} grob is defined to be
364 ,(ly:make-simple-closure
366 ,(ly:make-simple-closure
367 (,ly:self-alignment-interface::y-aligned-on-self))
368 ,(ly:make-simple-closure
369 (,ly:side-position-interface::y-aligned-on-support-refpoints)))
373 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
377 (+ (ly:self-alignment-interface::y-aligned-on-self @var{grob})
378 (ly:self-alignment-interface::y-aligned-on-support-refpoints @var{grob}))
383 Calculation of extent and offset of grob is now controlled via the
384 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
385 properties, for example
388 \override TextScript #'Y-offset = #-6
392 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
396 Each grob property can be a procedure. If this is the case, it is
397 assumed to be a routine that calculates said property. This is a
398 major internal cleanup, which also provides advanced tweakability for
399 power users. For example,
402 \override Beam #'direction
404 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
410 With this code fragment, the direction of a beam is decided to be up
411 or down, depending on the number of stems in the beam.
415 Support for figured bass has been rewritten. Now it supports
416 continuation lines, slashed figures, and its figures, brackets, and
417 alignments may tuned separately.
419 @lilypond[ragged-right,fragment]
421 \relative { c4 c c c }
423 \set useBassFigureExtenders = ##t
424 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
428 This rewrite was sponsored by Trent Johnston and John Mandereau.
431 Subproperties, like the @code{details} field of @code{Slur} and
432 @code{Tie} may now be tuned with @code{\override}. For example,
435 \override Stem #'details #'beamed-lengths = #'(4 4 3)
439 shortens the stems in beams.
442 The default paper size may now be set from the command line using
446 Beamlets may stick out of the side of beams.
449 @lilypond[fragment,ragged-right,relative=2]
451 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
452 \set stemLeftBeamCount = #2
455 \set stemRightBeamCount = #3
460 This feature was sponsored by Trevor Bača.
465 Vertical alignments of staves can now be tuned easily for individual
468 @lilypond[ragged-right]
469 #(set-global-staff-size 13)
476 #"Score.NonMusicalPaperColumn"
477 #'line-break-system-details
478 #'((fixed-alignment-extra-space . 15))
490 This feature was sponsored by Nicolas Sceaux.
493 Vertical spacing for page layout can now be tuned for each system
494 individually. The dimensions that can be tuned can be visualized.
497 #(set-default-paper-size "a7" 'landscape)
500 \paper { annotatespacing = ##t }
504 These features were sponsored by Trevor Bača and Nicolas Sceaux.
507 The slope of a stem-tremolo may be set manually
509 @lilypond[fragment,relative=1,ragged-right]
511 \once \override StemTremolo #'slope = #0.45
515 This feature was sponsored by Sven Axelsson.
518 Laissez vibrer ties can be created with @code{\laissezVibrer},
520 @lilypond[fragment,ragged-right,relative=1]
521 <c e g>\laissezVibrer r <d f>\laissezVibrer
524 This feature was sponsored by Henrik Frisk.
527 The order of words in @code{\markup} commands may now be reversed by
528 setting the @code{text-direction} property. This is useful for
529 Right-to-Left languages like Hebrew.
531 This feature was sponsored by Aaron Mehl.
534 Texts over multi measure rests can stretch the corresponding measure,
535 if the appropriate @code{spring-and-rods} callback is set.
537 @lilypond[relative=2,fragment,ragged-right]
538 \override MultiMeasureRestText #'springs-and-rods
539 = #ly:multi-measure-rest::set-text-rods
540 c1 R1 R1^"Very long long long text"
543 This feature was sponsored by Kris Shaffer.
546 @item @textanchor{tie-chords}
547 Formatting of ties in chords has been improved. Ties no longer collide
548 with note heads and stems. In addition, it is possible to manually
549 specify tie formatting
551 @lilypond[relative=2, fragment,ragged-right]
552 <a c d f> ~ <a c d f>
554 \override TieColumn #'tie-configuration =
555 #'((0 . -1) '() (5.5 . 1) (7 . 1))
556 <b d f g> ~ <b d f g>
559 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
560 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
564 Formatting of isolated, single ties has been improved. Now, ties avoid
565 staff lines, flags and dots, without compromising their shape.
567 @lilypond[fragment,ragged-right]
570 c16 c2...~ c16 ~ c2... |
571 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
575 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
576 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
580 @item @textanchor{repeat-counter}
581 With the @code{countPercentRepeats} property,
582 percent repeats get incremental numbers to indicate the accumulated repeat count.
584 @lilypond[relative=2,fragment,ragged-right]
585 \set countPercentRepeats = ##t
586 \repeat percent 4 { c1 }
588 \repeat percent 4 { c2 c2 }
591 This feature was sponsored by Yoshinobu Ishizaki
594 Text scripts such as fingering instructions and dynamics avoid
595 collisions with slurs
597 @lilypond[fragment,relative=1]
599 b_1( f'_1_2_3 c_3_4_5 a)
601 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
606 Tuplets can be made to reach the next non-tuplet note by setting the
607 @code{tupletFullLength} property,
609 @lilypond[fragment,relative=2]
611 \remove Forbid_line_break_engraver
615 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
616 \set tupletFullLength = ##t
617 \times 2/3 { c8[ c c] }
622 This feature was sponsored by Trevor Bača.
625 When @code{strict-note-spacing} is set, notes are spaced without regard
626 for clefs, bar lines, and grace notes. For example,
628 @lilypond[fragment,relative=2]
629 \override Score.SpacingSpanner #'strict-note-spacing = ##t
630 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
633 This feature was sponsored by Trevor Bača.
636 Beams support the @code{break-overshoot} property, for example
638 @lilypond[relative=2,fragment]
639 \set allowBeamBreak = ##t
640 \override Beam #'break-overshoot = #'(1.0 . 2.0)
644 This feature was sponsored by Trevor Bača.
647 Proportional notation is supported. Notes can be spaced proportional
648 to their time-difference by assigning a duration to
649 @code{proportionalNotationDuration}. For example,
651 @lilypond[relative=2,fragment,ragged-right]
653 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
654 \new Staff { c8[ c c c c c] c4 c2 r2 }
655 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
659 This feature was sponsored by Trevor Bača.
662 Symbol sizes (e.g. accidentals) are disregarded for spacing if
663 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
666 @lilypond[relative=2,fragment]
668 \override Score.SpacingSpanner #'uniform-stretching = ##t
669 \new Staff { c16[ c c c c c c c c c16] }
671 \times 6/7 { c16 c c cis c c c }
677 This feature was sponsored by Trevor Bača.
680 Endings of broken tuplet brackets can be tuned. For example, you can
681 add arrows to the brackets,
683 @lilypond[fragment,ragged-right,relative=2]
684 \override TupletBracket
686 (markup #:arrow-head X LEFT #f)
687 (markup #:arrow-head X RIGHT #f))
689 c c c \bar "empty" \break c c
693 This feature was sponsored by Trevor Bača.
696 @item @textanchor{arrow-glyph}
697 Arrow heads were added to the Feta font.
702 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
703 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
708 These glyphs have been sponsored by Trevor Bača.
712 Nested tuplets are automatically positioned,
714 @lilypond[fragment,ragged-right,relative=2]
715 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
718 \times 3/5 { a a a a a }
722 This feature was sponsored by Trevor Bača.
725 Music expressions can be displayed, in LilyPond notation, using the
726 new @code{\displayLilyMusic} function. For instance:
728 \displayLilyMusic \transpose c a, { c d e f }
735 This feature was contributed by Nicolas Sceaux.
738 The current bar number may be checked with @code{\barNumberCheck}, eg.
745 will print a warning if it doesn't happen in measure 22.
748 If @code{showLastLength} is set, only the last few measures of a piece
749 are rendered, which speeds up correcting scores. For example, setting
752 showLastLength = R1*5
757 will render only the last five measures (assuming 4/4 time signature)
760 @item @textanchor{simple-melismata}
761 Melismata can be specified simply in the lyrics now, eg.
763 @lilypond[relative=1,verbatim,fragment]
771 This feature was sponsored by Nancho Alvarez
774 Suggested accidentals (for notating musica ficta) may be switched on
775 with @code{suggestAccidentals}
777 @lilypond[verbatim,fragment,relative=2]
778 \set suggestAccidentals = ##t
782 This feature was sponsored by Nancho Alvarez.
785 The setting @code{whichBar} and time-bookkeeping is now split into a
786 @code{Default_bar_line_engraver} and @code{Timing_translator}
789 @item @textanchor{pitched-trill}
790 Explicit pitches may be added to trills,
792 @lilypond[relative,verbatim,fragment]
793 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
796 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
799 Markup now supports formatting of text paragraphs, using
800 @code{\wordwrap} and @code{\justify}.
802 This feature was sponsored by Sven Axelsson.
806 For older news, go to
807 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
808 or @uref{../,go back} to the Documentation index.