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 Music for multiple parts can be interleaved, similar to MUP input.
76 This is done with the @code{\parallelMusic} function,
78 @lilypond[verbatim,raggedright]
79 \parallelMusic #'(voiceA voiceB) {
80 r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
82 r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
93 This feature was contributed by Nicolas Sceaux.
95 @item Alignments of staves may be tuned per system.
97 #(set-global-staff-size 13)
99 \relative c'' \new StaffGroup <<
104 #"Score.NonMusicalPaperColumn"
105 #'line-break-system-details
106 #'((alignment-offsets . (0 -5 -20)))
109 #"Score.NonMusicalPaperColumn"
110 #'line-break-system-details
111 #'((alignment-offsets . (0 -15 -20)))
117 This feature was sponsored by Trevor Bača.
119 @item Individual systems may be positioned manually,
123 tagline = "lily was here"
126 #(set-default-paper-size "a7" 'landscape)
136 #"Score.NonMusicalPaperColumn"
137 #'line-break-system-details
145 annotateheaders = ##t
150 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
152 @item A linebreaking configuration can now be saved as a @file{.ly}
153 file automatically. This allows vertical alignments to be stretched to
154 fit pages in a second formatting run. See
155 @inputfileref{input/regression,page-layout-twopass.ly} for an
158 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
160 @item The tie formatting for chords has been further polished. More
161 cases are handled gracefully, and all scoring parameters may now be
162 changed through the @code{details} property of the @code{Tie} grob.
164 This refinement was sponsored by Steve Doonan.
166 @item Positions of staff lines may now be set individually, for
169 @lilypond[raggedright]
170 \new Staff \relative c' {
171 \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 7)
176 This feature was sponsored by Andrea Valle.
179 @item A MusicXML importer is included now.
181 It was sponsored by among others, Mark van den Borre,
182 and Muziekacademie Lede.
185 Stem direction on the center staff line are now interpolated between
186 neighbors. This results in less stem direction changes, leading to a
187 more even appearance. For example,
189 @lilypond[raggedright]
197 This feature was sponsored by Mike Rolish and Basil Crow.
200 Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
203 @lilypond[raggedright]
206 \override TupletBracket #'bracket-visibility = ##f
207 \override TupletBracket #'staff-padding = ##f
208 \override Slur #'details #'region-size = #6
212 c( \stemDown g' \stemNeutral c,)
217 This feature was sponsored by Trent Johnston.
220 @item Tuplet brackets and numbers are implemented as separate grobs,
221 @code{TupletBracket} and @code{TupletNumber}.
223 This rewrite was sponsored by Trent Johnston.
225 @item String arguments for music functions may be specified without
226 @code{#} marks. Now, \clef and \bar are also music functions.
228 @item Ties in chords are also formatted using a scoring based
229 formatting. This reduces the number of collisions for ties in chords,
231 @lilypond[raggedright,fragment,relative=2]
232 <b d f g> ~ <b d f g>
235 Here, the tie for the D is flipped, in spite the default rule for
238 This rewrite was sponsored by Steve Doonan.
240 @item With the @code{\tweak} music function, layout objects that are directly
241 connected to input may be tuned easily,
243 @lilypond[relative=2,fragment,verbatim,raggedright]
245 \tweak #'font-size #3 c
246 \tweak #'color #red d
247 \tweak #'style #'cross g
248 \tweak #'duration-log #1 a
252 This feature was sponsored by Sean Reed and Bertalan Fodor.
254 @item Generic music functions may now also be used on articulations
255 and chord elements, eg.
259 e-\keepWithTag #'bla -\tag #'bla ^2 >
262 This feature was sponsored by Sean Reed and Bertalan Fodor.
265 @item Spaces between lyrics and distance between syllables with
266 hyphens may now be separately tuned through the
267 @code{LyricSpace} grob.
269 This feature has been sponsored by Bertalan Fodor.
271 @item Texts set in a TrueType font are now kerned. This requires CVS
274 @lilypond[relative=2,fragment,raggedright]
279 @item Using the @TeX{} no longer requires linking or dynamically
280 opening the kpathsea library, making the backend more easily usable on
283 This fix was sponsored by Black Trash Productions.
285 @item The horizontal location of rehearsal marks can be adjusted by
286 setting the @code{rehearsalMarkAlignSymbol} property,
288 @lilypond[raggedright]
293 \set Score.rehearsalMarkAlignSymbol = #'key-signature
297 \set Score.rehearsalMarkAlignSymbol = #'clef
305 This feature was sponsored by Trevor Bača.
309 It's now possible to easily create deeply nested system start
312 @lilypond[raggedright]
315 \set StaffGroup.systemStartDelimiterHierarchy
316 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
326 In addition, there is now also support for ``square'' system start
329 This feature was sponsored by Trevor Bača.
332 Tie formatting now uses scoring. This opens the road to formatting
333 which handles complex situations require tradeoffs between different
336 This refactoring has been sponsored by Steve Doonan.
339 Each grob property may also be a ``grob closure.'' This means that it
340 is possible to combine functions. For example, the @code{Y-offset} of
341 a @code{InstrumentName} grob is defined to be
344 ,(ly:make-simple-closure
346 ,(ly:make-simple-closure
347 (,ly:self-alignment-interface::y-aligned-on-self))
348 ,(ly:make-simple-closure
349 (,ly:side-position-interface::y-aligned-on-support-refpoints)))
353 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
357 (+ (ly:self-alignment-interface::y-aligned-on-self @var{grob})
358 (ly:self-alignment-interface::y-aligned-on-support-refpoints @var{grob}))
363 Calculation of extent and offset of grob is now controlled via the
364 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
365 properties, for example
368 \override TextScript #'Y-offset = #-6
372 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
376 Each grob property can be a procedure. If this is the case, it is
377 assumed to be a routine that calculates said property. This is a
378 major internal cleanup, which also provides advanced tweakability for
379 power users. For example,
382 \override Beam #'direction
384 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
390 With this code fragment, the direction of a beam is decided to be up
391 or down, depending on the number of stems in the beam.
395 Support for figured bass has been rewritten. Now it supports
396 continuation lines, slashed figures, and its figures, brackets, and
397 alignments may tuned separately.
399 @lilypond[raggedright,fragment]
401 \relative { c4 c c c }
403 \set useBassFigureExtenders = ##t
404 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
408 This rewrite was sponsored by Trent Johnston and John Mandereau.
411 Subproperties, like the @code{details} field of @code{Slur} and
412 @code{Tie} may now be tuned with @code{\override}. For example,
415 \override Stem #'details #'beamed-lengths = #'(4 4 3)
419 shortens the stems in beams.
422 The default paper size may now be set from the command line using
426 Beamlets may stick out of the side of beams.
429 @lilypond[fragment,raggedright,relative=2]
431 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
432 \set stemLeftBeamCount = #2
435 \set stemRightBeamCount = #3
440 This feature was sponsored by Trevor Bača.
445 Vertical alignments of staves can now be tuned easily for individual
448 @lilypond[raggedright]
449 #(set-global-staff-size 13)
456 #"Score.NonMusicalPaperColumn"
457 #'line-break-system-details
458 #'((fixed-alignment-extra-space . 15))
470 This feature was sponsored by Nicolas Sceaux.
473 Vertical spacing for page layout can now be tuned for each system
474 individually. The dimensions that can be tuned can be visualized.
477 #(set-default-paper-size "a7" 'landscape)
480 \paper { annotatespacing = ##t }
484 These features were sponsored by Trevor Bača and Nicolas Sceaux.
487 The slope of a stem-tremolo may be set manually
489 @lilypond[fragment,relative=1,raggedright]
491 \once \override StemTremolo #'slope = #0.45
495 This feature was sponsored by Sven Axelsson.
498 Laissez vibrer ties can be created with @code{\laissezVibrer},
500 @lilypond[fragment,raggedright,relative=1]
501 <c e g>\laissezVibrer r <d f>\laissezVibrer
504 This feature was sponsored by Henrik Frisk.
507 The order of words in @code{\markup} commands may now be reversed by
508 setting the @code{text-direction} property. This is useful for
509 Right-to-Left languages like Hebrew.
511 This feature was sponsored by Aaron Mehl.
514 Texts over multi measure rests can stretch the corresponding measure,
515 if the appropriate @code{spring-and-rods} callback is set.
517 @lilypond[relative=2,fragment,raggedright]
518 \override MultiMeasureRestText #'springs-and-rods
519 = #ly:multi-measure-rest::set-text-rods
520 c1 R1 R1^"Very long long long text"
523 This feature was sponsored by Kris Shaffer.
526 @item @textanchor{tie-chords}
527 Formatting of ties in chords has been improved. Ties no longer collide
528 with note heads and stems. In addition, it is possible to manually
529 specify tie formatting
531 @lilypond[relative=2, fragment,raggedright]
532 <a c d f> ~ <a c d f>
534 \override TieColumn #'tie-configuration =
535 #'((0 . -1) '() (5.5 . 1) (7 . 1))
536 <b d f g> ~ <b d f g>
539 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
540 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
544 Formatting of isolated, single ties has been improved. Now, ties avoid
545 staff lines, flags and dots, without compromising their shape.
547 @lilypond[fragment,raggedright]
550 c16 c2...~ c16 ~ c2... |
551 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
555 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
556 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
560 @item @textanchor{repeat-counter}
561 With the @code{countPercentRepeats} property,
562 percent repeats get incremental numbers to indicate the accumulated repeat count.
564 @lilypond[relative=2,fragment,raggedright]
565 \set countPercentRepeats = ##t
566 \repeat percent 4 { c1 }
568 \repeat percent 4 { c2 c2 }
571 This feature was sponsored by Yoshinobu Ishizaki
574 Text scripts such as fingering instructions and dynamics avoid
575 collisions with slurs
577 @lilypond[fragment,relative=1]
579 b_1( f'_1_2_3 c_3_4_5 a)
581 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
586 Tuplets can be made to reach the next non-tuplet note by setting the
587 @code{tupletFullLength} property,
589 @lilypond[fragment,relative=2]
591 \remove Forbid_line_break_engraver
595 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
596 \set tupletFullLength = ##t
597 \times 2/3 { c8[ c c] }
602 This feature was sponsored by Trevor Bača.
605 When @code{strict-note-spacing} is set, notes are spaced without regard
606 for clefs, bar lines, and grace notes. For example,
608 @lilypond[fragment,relative=2]
609 \override Score.SpacingSpanner #'strict-note-spacing = ##t
610 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
613 This feature was sponsored by Trevor Bača.
616 Beams support the @code{break-overshoot} property, for example
618 @lilypond[relative=2,fragment]
619 \set allowBeamBreak = ##t
620 \override Beam #'break-overshoot = #'(1.0 . 2.0)
624 This feature was sponsored by Trevor Bača.
627 Proportional notation is supported. Notes can be spaced proportional
628 to their time-difference by assigning a duration to
629 @code{proportionalNotationDuration}. For example,
631 @lilypond[relative=2,fragment,raggedright]
633 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
634 \new Staff { c8[ c c c c c] c4 c2 r2 }
635 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
639 This feature was sponsored by Trevor Bača.
642 Symbol sizes (e.g. accidentals) are disregarded for spacing if
643 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
646 @lilypond[relative=2,fragment]
648 \override Score.SpacingSpanner #'uniform-stretching = ##t
649 \new Staff { c16[ c c c c c c c c c16] }
651 \times 6/7 { c16 c c cis c c c }
657 This feature was sponsored by Trevor Bača.
660 Endings of broken tuplet brackets can be tuned. For example, you can
661 add arrows to the brackets,
663 @lilypond[fragment,raggedright,relative=2]
664 \override TupletBracket
666 (markup #:arrow-head X LEFT #f)
667 (markup #:arrow-head X RIGHT #f))
669 c c c \bar "empty" \break c c
673 This feature was sponsored by Trevor Bača.
676 @item @textanchor{arrow-glyph}
677 Arrow heads were added to the Feta font.
682 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
683 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
688 These glyphs have been sponsored by Trevor Bača.
692 Nested tuplets are automatically positioned,
694 @lilypond[fragment,raggedright,relative=2]
695 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
698 \times 3/5 { a a a a a }
702 This feature was sponsored by Trevor Bača.
705 Music expressions can be displayed, in LilyPond notation, using the
706 new @code{\displayLilyMusic} function. For instance:
708 \displayLilyMusic \transpose c a, { c d e f }
715 This feature was contributed by Nicolas Sceaux.
718 The current bar number may be checked with @code{\barNumberCheck}, eg.
725 will print a warning if it doesn't happen in measure 22.
728 If @code{showLastLength} is set, only the last few measures of a piece
729 are rendered, which speeds up correcting scores. For example, setting
732 showLastLength = R1*5
737 will render only the last five measures (assuming 4/4 time signature)
740 @item @textanchor{simple-melismata}
741 Melismata can be specified simply in the lyrics now, eg.
743 @lilypond[relative=1,verbatim,fragment]
751 This feature was sponsored by Nancho Alvarez
754 Suggested accidentals (for notating musica ficta) may be switched on
755 with @code{suggestAccidentals}
757 @lilypond[verbatim,fragment,relative=2]
758 \set suggestAccidentals = ##t
762 This feature was sponsored by Nancho Alvarez.
765 The setting @code{whichBar} and time-bookkeeping is now split into a
766 @code{Default_bar_line_engraver} and @code{Timing_translator}
769 @item @textanchor{pitched-trill}
770 Explicit pitches may be added to trills,
772 @lilypond[relative,verbatim,fragment]
773 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
776 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
779 Markup now supports formatting of text paragraphs, using
780 @code{\wordwrap} and @code{\justify}.
782 This feature was sponsored by Sven Axelsson.
786 For older news, go to
787 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
788 or @uref{../,go back} to the Documentation index.