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.
64 variables in the @code{\paper} and @code{\layout} block are now
65 separated with dashes, i.e.
75 The same holds for analogous options in lilypond-book.
78 Music for multiple parts can be interleaved, similar to MUP input.
79 This is done with the @code{\parallelMusic} function,
81 @lilypond[verbatim,ragged-right]
82 \parallelMusic #'(voiceA voiceB) {
83 r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
85 r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
96 This feature was contributed by Nicolas Sceaux.
98 @item Alignments of staves may be tuned per system.
100 #(set-global-staff-size 13)
102 \relative c'' \new StaffGroup <<
107 #"Score.NonMusicalPaperColumn"
108 #'line-break-system-details
109 #'((alignment-offsets . (0 -5 -20)))
112 #"Score.NonMusicalPaperColumn"
113 #'line-break-system-details
114 #'((alignment-offsets . (0 -15 -20)))
120 This feature was sponsored by Trevor Bača.
122 @item Individual systems may be positioned manually,
126 tagline = "lily was here"
129 #(set-default-paper-size "a7" 'landscape)
139 #"Score.NonMusicalPaperColumn"
140 #'line-break-system-details
148 annotateheaders = ##t
153 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
155 @item A linebreaking configuration can now be saved as a @file{.ly}
156 file automatically. This allows vertical alignments to be stretched to
157 fit pages in a second formatting run. See
158 @inputfileref{input/regression,page-layout-twopass.ly} for an
161 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
163 @item The tie formatting for chords has been further polished. More
164 cases are handled gracefully, and all scoring parameters may now be
165 changed through the @code{details} property of the @code{Tie} grob.
167 This refinement was sponsored by Steve Doonan.
169 @item Positions of staff lines may now be set individually, for
172 @lilypond[ragged-right]
173 \new Staff \relative c' {
174 \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 7)
179 This feature was sponsored by Andrea Valle.
182 @item A MusicXML importer is included now.
184 It was sponsored by among others, Mark van den Borre,
185 and Muziekacademie Lede.
188 Stem direction on the center staff line are now interpolated between
189 neighbors. This results in less stem direction changes, leading to a
190 more even appearance. For example,
192 @lilypond[ragged-right]
200 This feature was sponsored by Mike Rolish and Basil Crow.
203 Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
206 @lilypond[ragged-right]
209 \override TupletBracket #'bracket-visibility = ##f
210 \override TupletBracket #'staff-padding = ##f
211 \override Slur #'details #'region-size = #6
215 c( \stemDown g' \stemNeutral c,)
220 This feature was sponsored by Trent Johnston.
223 @item Tuplet brackets and numbers are implemented as separate grobs,
224 @code{TupletBracket} and @code{TupletNumber}.
226 This rewrite was sponsored by Trent Johnston.
228 @item String arguments for music functions may be specified without
229 @code{#} marks. Now, \clef and \bar are also music functions.
231 @item Ties in chords are also formatted using a scoring based
232 formatting. This reduces the number of collisions for ties in chords,
234 @lilypond[ragged-right,fragment,relative=2]
235 <b d f g> ~ <b d f g>
238 Here, the tie for the D is flipped, in spite the default rule for
241 This rewrite was sponsored by Steve Doonan.
243 @item With the @code{\tweak} music function, layout objects that are directly
244 connected to input may be tuned easily,
246 @lilypond[relative=2,fragment,verbatim,ragged-right]
248 \tweak #'font-size #3 c
249 \tweak #'color #red d
250 \tweak #'style #'cross g
251 \tweak #'duration-log #1 a
255 This feature was sponsored by Sean Reed and Bertalan Fodor.
257 @item Generic music functions may now also be used on articulations
258 and chord elements, eg.
262 e-\keepWithTag #'bla -\tag #'bla ^2 >
265 This feature was sponsored by Sean Reed and Bertalan Fodor.
268 @item Spaces between lyrics and distance between syllables with
269 hyphens may now be separately tuned through the
270 @code{LyricSpace} grob.
272 This feature has been sponsored by Bertalan Fodor.
274 @item Texts set in a TrueType font are now kerned. This requires CVS
277 @lilypond[relative=2,fragment,ragged-right]
282 @item Using the @TeX{} no longer requires linking or dynamically
283 opening the kpathsea library, making the backend more easily usable on
286 This fix was sponsored by Black Trash Productions.
288 @item The horizontal location of rehearsal marks can be adjusted by
289 setting the @code{rehearsalMarkAlignSymbol} property,
291 @lilypond[ragged-right]
296 \set Score.rehearsalMarkAlignSymbol = #'key-signature
300 \set Score.rehearsalMarkAlignSymbol = #'clef
308 This feature was sponsored by Trevor Bača.
312 It's now possible to easily create deeply nested system start
315 @lilypond[ragged-right]
318 \set StaffGroup.systemStartDelimiterHierarchy
319 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
329 In addition, there is now also support for ``square'' system start
332 This feature was sponsored by Trevor Bača.
335 Tie formatting now uses scoring. This opens the road to formatting
336 which handles complex situations require tradeoffs between different
339 This refactoring has been sponsored by Steve Doonan.
342 Each grob property may also be a ``grob closure.'' This means that it
343 is possible to combine functions. For example, the @code{Y-offset} of
344 a @code{InstrumentName} grob is defined to be
347 ,(ly:make-simple-closure
349 ,(ly:make-simple-closure
350 (,ly:self-alignment-interface::y-aligned-on-self))
351 ,(ly:make-simple-closure
352 (,ly:side-position-interface::y-aligned-on-support-refpoints)))
356 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
360 (+ (ly:self-alignment-interface::y-aligned-on-self @var{grob})
361 (ly:self-alignment-interface::y-aligned-on-support-refpoints @var{grob}))
366 Calculation of extent and offset of grob is now controlled via the
367 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
368 properties, for example
371 \override TextScript #'Y-offset = #-6
375 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
379 Each grob property can be a procedure. If this is the case, it is
380 assumed to be a routine that calculates said property. This is a
381 major internal cleanup, which also provides advanced tweakability for
382 power users. For example,
385 \override Beam #'direction
387 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
393 With this code fragment, the direction of a beam is decided to be up
394 or down, depending on the number of stems in the beam.
398 Support for figured bass has been rewritten. Now it supports
399 continuation lines, slashed figures, and its figures, brackets, and
400 alignments may tuned separately.
402 @lilypond[ragged-right,fragment]
404 \relative { c4 c c c }
406 \set useBassFigureExtenders = ##t
407 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
411 This rewrite was sponsored by Trent Johnston and John Mandereau.
414 Subproperties, like the @code{details} field of @code{Slur} and
415 @code{Tie} may now be tuned with @code{\override}. For example,
418 \override Stem #'details #'beamed-lengths = #'(4 4 3)
422 shortens the stems in beams.
425 The default paper size may now be set from the command line using
429 Beamlets may stick out of the side of beams.
432 @lilypond[fragment,ragged-right,relative=2]
434 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
435 \set stemLeftBeamCount = #2
438 \set stemRightBeamCount = #3
443 This feature was sponsored by Trevor Bača.
448 Vertical alignments of staves can now be tuned easily for individual
451 @lilypond[ragged-right]
452 #(set-global-staff-size 13)
459 #"Score.NonMusicalPaperColumn"
460 #'line-break-system-details
461 #'((fixed-alignment-extra-space . 15))
473 This feature was sponsored by Nicolas Sceaux.
476 Vertical spacing for page layout can now be tuned for each system
477 individually. The dimensions that can be tuned can be visualized.
480 #(set-default-paper-size "a7" 'landscape)
483 \paper { annotatespacing = ##t }
487 These features were sponsored by Trevor Bača and Nicolas Sceaux.
490 The slope of a stem-tremolo may be set manually
492 @lilypond[fragment,relative=1,ragged-right]
494 \once \override StemTremolo #'slope = #0.45
498 This feature was sponsored by Sven Axelsson.
501 Laissez vibrer ties can be created with @code{\laissezVibrer},
503 @lilypond[fragment,ragged-right,relative=1]
504 <c e g>\laissezVibrer r <d f>\laissezVibrer
507 This feature was sponsored by Henrik Frisk.
510 The order of words in @code{\markup} commands may now be reversed by
511 setting the @code{text-direction} property. This is useful for
512 Right-to-Left languages like Hebrew.
514 This feature was sponsored by Aaron Mehl.
517 Texts over multi measure rests can stretch the corresponding measure,
518 if the appropriate @code{spring-and-rods} callback is set.
520 @lilypond[relative=2,fragment,ragged-right]
521 \override MultiMeasureRestText #'springs-and-rods
522 = #ly:multi-measure-rest::set-text-rods
523 c1 R1 R1^"Very long long long text"
526 This feature was sponsored by Kris Shaffer.
529 @item @textanchor{tie-chords}
530 Formatting of ties in chords has been improved. Ties no longer collide
531 with note heads and stems. In addition, it is possible to manually
532 specify tie formatting
534 @lilypond[relative=2, fragment,ragged-right]
535 <a c d f> ~ <a c d f>
537 \override TieColumn #'tie-configuration =
538 #'((0 . -1) '() (5.5 . 1) (7 . 1))
539 <b d f g> ~ <b d f g>
542 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
543 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
547 Formatting of isolated, single ties has been improved. Now, ties avoid
548 staff lines, flags and dots, without compromising their shape.
550 @lilypond[fragment,ragged-right]
553 c16 c2...~ c16 ~ c2... |
554 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
558 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
559 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
563 @item @textanchor{repeat-counter}
564 With the @code{countPercentRepeats} property,
565 percent repeats get incremental numbers to indicate the accumulated repeat count.
567 @lilypond[relative=2,fragment,ragged-right]
568 \set countPercentRepeats = ##t
569 \repeat percent 4 { c1 }
571 \repeat percent 4 { c2 c2 }
574 This feature was sponsored by Yoshinobu Ishizaki
577 Text scripts such as fingering instructions and dynamics avoid
578 collisions with slurs
580 @lilypond[fragment,relative=1]
582 b_1( f'_1_2_3 c_3_4_5 a)
584 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
589 Tuplets can be made to reach the next non-tuplet note by setting the
590 @code{tupletFullLength} property,
592 @lilypond[fragment,relative=2]
594 \remove Forbid_line_break_engraver
598 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
599 \set tupletFullLength = ##t
600 \times 2/3 { c8[ c c] }
605 This feature was sponsored by Trevor Bača.
608 When @code{strict-note-spacing} is set, notes are spaced without regard
609 for clefs, bar lines, and grace notes. For example,
611 @lilypond[fragment,relative=2]
612 \override Score.SpacingSpanner #'strict-note-spacing = ##t
613 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
616 This feature was sponsored by Trevor Bača.
619 Beams support the @code{break-overshoot} property, for example
621 @lilypond[relative=2,fragment]
622 \set allowBeamBreak = ##t
623 \override Beam #'break-overshoot = #'(1.0 . 2.0)
627 This feature was sponsored by Trevor Bača.
630 Proportional notation is supported. Notes can be spaced proportional
631 to their time-difference by assigning a duration to
632 @code{proportionalNotationDuration}. For example,
634 @lilypond[relative=2,fragment,ragged-right]
636 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
637 \new Staff { c8[ c c c c c] c4 c2 r2 }
638 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
642 This feature was sponsored by Trevor Bača.
645 Symbol sizes (e.g. accidentals) are disregarded for spacing if
646 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
649 @lilypond[relative=2,fragment]
651 \override Score.SpacingSpanner #'uniform-stretching = ##t
652 \new Staff { c16[ c c c c c c c c c16] }
654 \times 6/7 { c16 c c cis c c c }
660 This feature was sponsored by Trevor Bača.
663 Endings of broken tuplet brackets can be tuned. For example, you can
664 add arrows to the brackets,
666 @lilypond[fragment,ragged-right,relative=2]
667 \override TupletBracket
669 (markup #:arrow-head X LEFT #f)
670 (markup #:arrow-head X RIGHT #f))
672 c c c \bar "empty" \break c c
676 This feature was sponsored by Trevor Bača.
679 @item @textanchor{arrow-glyph}
680 Arrow heads were added to the Feta font.
685 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
686 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
691 These glyphs have been sponsored by Trevor Bača.
695 Nested tuplets are automatically positioned,
697 @lilypond[fragment,ragged-right,relative=2]
698 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
701 \times 3/5 { a a a a a }
705 This feature was sponsored by Trevor Bača.
708 Music expressions can be displayed, in LilyPond notation, using the
709 new @code{\displayLilyMusic} function. For instance:
711 \displayLilyMusic \transpose c a, { c d e f }
718 This feature was contributed by Nicolas Sceaux.
721 The current bar number may be checked with @code{\barNumberCheck}, eg.
728 will print a warning if it doesn't happen in measure 22.
731 If @code{showLastLength} is set, only the last few measures of a piece
732 are rendered, which speeds up correcting scores. For example, setting
735 showLastLength = R1*5
740 will render only the last five measures (assuming 4/4 time signature)
743 @item @textanchor{simple-melismata}
744 Melismata can be specified simply in the lyrics now, eg.
746 @lilypond[relative=1,verbatim,fragment]
754 This feature was sponsored by Nancho Alvarez
757 Suggested accidentals (for notating musica ficta) may be switched on
758 with @code{suggestAccidentals}
760 @lilypond[verbatim,fragment,relative=2]
761 \set suggestAccidentals = ##t
765 This feature was sponsored by Nancho Alvarez.
768 The setting @code{whichBar} and time-bookkeeping is now split into a
769 @code{Default_bar_line_engraver} and @code{Timing_translator}
772 @item @textanchor{pitched-trill}
773 Explicit pitches may be added to trills,
775 @lilypond[relative,verbatim,fragment]
776 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
779 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
782 Markup now supports formatting of text paragraphs, using
783 @code{\wordwrap} and @code{\justify}.
785 This feature was sponsored by Sven Axelsson.
789 For older news, go to
790 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
791 or @uref{../,go back} to the Documentation index.