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.
66 @item Items directly connected with a music input element may be
67 parenthesized, for example,
70 @lilypond[verbatim,ragged-right,fragment,relative=2]
72 <d \parenthesize fis a>
75 This feature was sponsored by Ramana Kumar.
78 variables in the @code{\paper} and @code{\layout} block are now
79 separated with dashes, i.e.
89 The same holds for analogous options in lilypond-book.
92 Music for multiple parts can be interleaved, similar to MUP input.
93 This is done with the @code{\parallelMusic} function,
95 @lilypond[verbatim,ragged-right]
96 \parallelMusic #'(voiceA voiceB) {
97 r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
99 r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
110 This feature was contributed by Nicolas Sceaux.
112 @item Alignments of staves may be tuned per system.
114 #(set-global-staff-size 13)
116 \relative c'' \new StaffGroup <<
121 #"Score.NonMusicalPaperColumn"
122 #'line-break-system-details
123 #'((alignment-offsets . (0 -5 -20)))
126 #"Score.NonMusicalPaperColumn"
127 #'line-break-system-details
128 #'((alignment-offsets . (0 -15 -20)))
134 This feature was sponsored by Trevor Bača.
136 @item Individual systems may be positioned manually,
140 tagline = "lily was here"
143 #(set-default-paper-size "a7" 'landscape)
153 #"Score.NonMusicalPaperColumn"
154 #'line-break-system-details
162 annotateheaders = ##t
167 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
169 @item A linebreaking configuration can now be saved as a @file{.ly}
170 file automatically. This allows vertical alignments to be stretched to
171 fit pages in a second formatting run. See
172 @inputfileref{input/regression,page-layout-twopass.ly} for an
175 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
177 @item The tie formatting for chords has been further polished. More
178 cases are handled gracefully, and all scoring parameters may now be
179 changed through the @code{details} property of the @code{Tie} grob.
181 This refinement was sponsored by Steve Doonan.
183 @item Positions of staff lines may now be set individually, for
186 @lilypond[ragged-right]
187 \new Staff \relative c' {
188 \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 7)
193 This feature was sponsored by Andrea Valle.
196 @item A MusicXML importer is included now.
198 It was sponsored by among others, Mark van den Borre,
199 and Muziekacademie Lede.
202 Stem direction on the center staff line are now interpolated between
203 neighbors. This results in less stem direction changes, leading to a
204 more even appearance. For example,
206 @lilypond[ragged-right]
214 This feature was sponsored by Mike Rolish and Basil Crow.
217 Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
220 @lilypond[ragged-right]
223 \override TupletBracket #'bracket-visibility = ##f
224 \override TupletBracket #'staff-padding = ##f
225 \override Slur #'details #'region-size = #6
229 c( \stemDown g' \stemNeutral c,)
234 This feature was sponsored by Trent Johnston.
237 @item Tuplet brackets and numbers are implemented as separate grobs,
238 @code{TupletBracket} and @code{TupletNumber}.
240 This rewrite was sponsored by Trent Johnston.
242 @item String arguments for music functions may be specified without
243 @code{#} marks. Now, \clef and \bar are also music functions.
245 @item Ties in chords are also formatted using a scoring based
246 formatting. This reduces the number of collisions for ties in chords,
248 @lilypond[ragged-right,fragment,relative=2]
249 <b d f g> ~ <b d f g>
252 Here, the tie for the D is flipped, in spite the default rule for
255 This rewrite was sponsored by Steve Doonan.
257 @item With the @code{\tweak} music function, layout objects that are directly
258 connected to input may be tuned easily,
260 @lilypond[relative=2,fragment,verbatim,ragged-right]
262 \tweak #'font-size #3 c
263 \tweak #'color #red d
264 \tweak #'style #'cross g
265 \tweak #'duration-log #1 a
269 This feature was sponsored by Sean Reed and Bertalan Fodor.
271 @item Generic music functions may now also be used on articulations
272 and chord elements, eg.
276 e-\keepWithTag #'bla -\tag #'bla ^2 >
279 This feature was sponsored by Sean Reed and Bertalan Fodor.
282 @item Spaces between lyrics and distance between syllables with
283 hyphens may now be separately tuned through the
284 @code{LyricSpace} grob.
286 This feature has been sponsored by Bertalan Fodor.
288 @item Texts set in a TrueType font are now kerned. This requires CVS
291 @lilypond[relative=2,fragment,ragged-right]
296 @item Using the @TeX{} no longer requires linking or dynamically
297 opening the kpathsea library, making the backend more easily usable on
300 This fix was sponsored by Black Trash Productions.
302 @item The horizontal location of rehearsal marks can be adjusted by
303 setting the @code{rehearsalMarkAlignSymbol} property,
305 @lilypond[ragged-right]
310 \set Score.rehearsalMarkAlignSymbol = #'key-signature
314 \set Score.rehearsalMarkAlignSymbol = #'clef
322 This feature was sponsored by Trevor Bača.
326 It's now possible to easily create deeply nested system start
329 @lilypond[ragged-right]
332 \set StaffGroup.systemStartDelimiterHierarchy
333 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
343 In addition, there is now also support for ``square'' system start
346 This feature was sponsored by Trevor Bača.
349 Tie formatting now uses scoring. This opens the road to formatting
350 which handles complex situations require tradeoffs between different
353 This refactoring has been sponsored by Steve Doonan.
356 Each grob property may also be a ``grob closure.'' This means that it
357 is possible to combine functions. For example, the @code{Y-offset} of
358 a @code{InstrumentName} grob is defined to be
361 ,(ly:make-simple-closure
363 ,(ly:make-simple-closure
364 (,ly:self-alignment-interface::y-aligned-on-self))
365 ,(ly:make-simple-closure
366 (,ly:side-position-interface::y-aligned-on-support-refpoints)))
370 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
374 (+ (ly:self-alignment-interface::y-aligned-on-self @var{grob})
375 (ly:self-alignment-interface::y-aligned-on-support-refpoints @var{grob}))
380 Calculation of extent and offset of grob is now controlled via the
381 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
382 properties, for example
385 \override TextScript #'Y-offset = #-6
389 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
393 Each grob property can be a procedure. If this is the case, it is
394 assumed to be a routine that calculates said property. This is a
395 major internal cleanup, which also provides advanced tweakability for
396 power users. For example,
399 \override Beam #'direction
401 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
407 With this code fragment, the direction of a beam is decided to be up
408 or down, depending on the number of stems in the beam.
412 Support for figured bass has been rewritten. Now it supports
413 continuation lines, slashed figures, and its figures, brackets, and
414 alignments may tuned separately.
416 @lilypond[ragged-right,fragment]
418 \relative { c4 c c c }
420 \set useBassFigureExtenders = ##t
421 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
425 This rewrite was sponsored by Trent Johnston and John Mandereau.
428 Subproperties, like the @code{details} field of @code{Slur} and
429 @code{Tie} may now be tuned with @code{\override}. For example,
432 \override Stem #'details #'beamed-lengths = #'(4 4 3)
436 shortens the stems in beams.
439 The default paper size may now be set from the command line using
443 Beamlets may stick out of the side of beams.
446 @lilypond[fragment,ragged-right,relative=2]
448 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
449 \set stemLeftBeamCount = #2
452 \set stemRightBeamCount = #3
457 This feature was sponsored by Trevor Bača.
462 Vertical alignments of staves can now be tuned easily for individual
465 @lilypond[ragged-right]
466 #(set-global-staff-size 13)
473 #"Score.NonMusicalPaperColumn"
474 #'line-break-system-details
475 #'((fixed-alignment-extra-space . 15))
487 This feature was sponsored by Nicolas Sceaux.
490 Vertical spacing for page layout can now be tuned for each system
491 individually. The dimensions that can be tuned can be visualized.
494 #(set-default-paper-size "a7" 'landscape)
497 \paper { annotatespacing = ##t }
501 These features were sponsored by Trevor Bača and Nicolas Sceaux.
504 The slope of a stem-tremolo may be set manually
506 @lilypond[fragment,relative=1,ragged-right]
508 \once \override StemTremolo #'slope = #0.45
512 This feature was sponsored by Sven Axelsson.
515 Laissez vibrer ties can be created with @code{\laissezVibrer},
517 @lilypond[fragment,ragged-right,relative=1]
518 <c e g>\laissezVibrer r <d f>\laissezVibrer
521 This feature was sponsored by Henrik Frisk.
524 The order of words in @code{\markup} commands may now be reversed by
525 setting the @code{text-direction} property. This is useful for
526 Right-to-Left languages like Hebrew.
528 This feature was sponsored by Aaron Mehl.
531 Texts over multi measure rests can stretch the corresponding measure,
532 if the appropriate @code{spring-and-rods} callback is set.
534 @lilypond[relative=2,fragment,ragged-right]
535 \override MultiMeasureRestText #'springs-and-rods
536 = #ly:multi-measure-rest::set-text-rods
537 c1 R1 R1^"Very long long long text"
540 This feature was sponsored by Kris Shaffer.
543 @item @textanchor{tie-chords}
544 Formatting of ties in chords has been improved. Ties no longer collide
545 with note heads and stems. In addition, it is possible to manually
546 specify tie formatting
548 @lilypond[relative=2, fragment,ragged-right]
549 <a c d f> ~ <a c d f>
551 \override TieColumn #'tie-configuration =
552 #'((0 . -1) '() (5.5 . 1) (7 . 1))
553 <b d f g> ~ <b d f g>
556 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
557 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
561 Formatting of isolated, single ties has been improved. Now, ties avoid
562 staff lines, flags and dots, without compromising their shape.
564 @lilypond[fragment,ragged-right]
567 c16 c2...~ c16 ~ c2... |
568 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
572 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
573 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
577 @item @textanchor{repeat-counter}
578 With the @code{countPercentRepeats} property,
579 percent repeats get incremental numbers to indicate the accumulated repeat count.
581 @lilypond[relative=2,fragment,ragged-right]
582 \set countPercentRepeats = ##t
583 \repeat percent 4 { c1 }
585 \repeat percent 4 { c2 c2 }
588 This feature was sponsored by Yoshinobu Ishizaki
591 Text scripts such as fingering instructions and dynamics avoid
592 collisions with slurs
594 @lilypond[fragment,relative=1]
596 b_1( f'_1_2_3 c_3_4_5 a)
598 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
603 Tuplets can be made to reach the next non-tuplet note by setting the
604 @code{tupletFullLength} property,
606 @lilypond[fragment,relative=2]
608 \remove Forbid_line_break_engraver
612 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
613 \set tupletFullLength = ##t
614 \times 2/3 { c8[ c c] }
619 This feature was sponsored by Trevor Bača.
622 When @code{strict-note-spacing} is set, notes are spaced without regard
623 for clefs, bar lines, and grace notes. For example,
625 @lilypond[fragment,relative=2]
626 \override Score.SpacingSpanner #'strict-note-spacing = ##t
627 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
630 This feature was sponsored by Trevor Bača.
633 Beams support the @code{break-overshoot} property, for example
635 @lilypond[relative=2,fragment]
636 \set allowBeamBreak = ##t
637 \override Beam #'break-overshoot = #'(1.0 . 2.0)
641 This feature was sponsored by Trevor Bača.
644 Proportional notation is supported. Notes can be spaced proportional
645 to their time-difference by assigning a duration to
646 @code{proportionalNotationDuration}. For example,
648 @lilypond[relative=2,fragment,ragged-right]
650 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
651 \new Staff { c8[ c c c c c] c4 c2 r2 }
652 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
656 This feature was sponsored by Trevor Bača.
659 Symbol sizes (e.g. accidentals) are disregarded for spacing if
660 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
663 @lilypond[relative=2,fragment]
665 \override Score.SpacingSpanner #'uniform-stretching = ##t
666 \new Staff { c16[ c c c c c c c c c16] }
668 \times 6/7 { c16 c c cis c c c }
674 This feature was sponsored by Trevor Bača.
677 Endings of broken tuplet brackets can be tuned. For example, you can
678 add arrows to the brackets,
680 @lilypond[fragment,ragged-right,relative=2]
681 \override TupletBracket
683 (markup #:arrow-head X LEFT #f)
684 (markup #:arrow-head X RIGHT #f))
686 c c c \bar "empty" \break c c
690 This feature was sponsored by Trevor Bača.
693 @item @textanchor{arrow-glyph}
694 Arrow heads were added to the Feta font.
699 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
700 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
705 These glyphs have been sponsored by Trevor Bača.
709 Nested tuplets are automatically positioned,
711 @lilypond[fragment,ragged-right,relative=2]
712 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
715 \times 3/5 { a a a a a }
719 This feature was sponsored by Trevor Bača.
722 Music expressions can be displayed, in LilyPond notation, using the
723 new @code{\displayLilyMusic} function. For instance:
725 \displayLilyMusic \transpose c a, { c d e f }
732 This feature was contributed by Nicolas Sceaux.
735 The current bar number may be checked with @code{\barNumberCheck}, eg.
742 will print a warning if it doesn't happen in measure 22.
745 If @code{showLastLength} is set, only the last few measures of a piece
746 are rendered, which speeds up correcting scores. For example, setting
749 showLastLength = R1*5
754 will render only the last five measures (assuming 4/4 time signature)
757 @item @textanchor{simple-melismata}
758 Melismata can be specified simply in the lyrics now, eg.
760 @lilypond[relative=1,verbatim,fragment]
768 This feature was sponsored by Nancho Alvarez
771 Suggested accidentals (for notating musica ficta) may be switched on
772 with @code{suggestAccidentals}
774 @lilypond[verbatim,fragment,relative=2]
775 \set suggestAccidentals = ##t
779 This feature was sponsored by Nancho Alvarez.
782 The setting @code{whichBar} and time-bookkeeping is now split into a
783 @code{Default_bar_line_engraver} and @code{Timing_translator}
786 @item @textanchor{pitched-trill}
787 Explicit pitches may be added to trills,
789 @lilypond[relative,verbatim,fragment]
790 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
793 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
796 Markup now supports formatting of text paragraphs, using
797 @code{\wordwrap} and @code{\justify}.
799 This feature was sponsored by Sven Axelsson.
803 For older news, go to
804 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
805 or @uref{../,go back} to the Documentation index.