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 A score may now be specified to take a fixed number of
68 systems, by setting the @code{system-count} variable in the
71 This feature was contributed by Joe Neeman.
73 @item Ties may now be attached to the left side of a note with
74 @code{\repeatTie}, for use with volta repeats.
76 @lilypond[relative=2,fragment,ragged-right]
80 This feature was sponsored by Steve Doonan.
82 @item Newly created contexts may also be named with the following
86 \new Voice = "alto" ...
89 @item Thicknesses of tie and slurs may be tuned separately for the
90 endings and the middle part.
92 @item Items directly connected with a music input element may be
93 parenthesized, for example,
95 @lilypond[verbatim,ragged-right,fragment,relative=2]
97 <d \parenthesize fis a>
100 This feature was sponsored by Ramana Kumar.
103 variables in the @code{\paper} and @code{\layout} block are now
104 separated with dashes, i.e.
114 The same holds for analogous options in lilypond-book.
117 Music for multiple parts can be interleaved, similar to MUP input.
118 This is done with the @code{\parallelMusic} function,
120 @lilypond[verbatim,ragged-right]
121 \parallelMusic #'(voiceA voiceB) {
122 r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
124 r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
135 This feature was contributed by Nicolas Sceaux.
137 @item Alignments of staves may be tuned per system.
139 #(set-global-staff-size 13)
141 \relative c'' \new StaffGroup <<
146 #"Score.NonMusicalPaperColumn"
147 #'line-break-system-details
148 #'((alignment-offsets . (0 -5 -20)))
151 #"Score.NonMusicalPaperColumn"
152 #'line-break-system-details
153 #'((alignment-offsets . (0 -15 -20)))
159 This feature was sponsored by Trevor Bača.
161 @item Individual systems may be positioned manually,
165 tagline = "lily was here"
168 #(set-default-paper-size "a7" 'landscape)
170 head-separation = 0.0
171 foot-separation = 0.0
178 #"Score.NonMusicalPaperColumn"
179 #'line-break-system-details
187 annotateheaders = ##t
192 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
194 @item A linebreaking configuration can now be saved as a @file{.ly}
195 file automatically. This allows vertical alignments to be stretched to
196 fit pages in a second formatting run. See
197 @inputfileref{input/regression,page-layout-twopass.ly} for an
200 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
202 @item The tie formatting for chords has been further polished. More
203 cases are handled gracefully, and all scoring parameters may now be
204 changed through the @code{details} property of the @code{Tie} grob.
206 This refinement was sponsored by Steve Doonan.
208 @item Positions of staff lines may now be set individually, for
211 @lilypond[ragged-right]
212 \new Staff \relative c' {
213 \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 7)
218 This feature was sponsored by Andrea Valle.
221 @item A MusicXML importer is included now.
223 It was sponsored by among others, Mark van den Borre,
224 and Muziekacademie Lede.
227 Stem direction on the center staff line are now interpolated between
228 neighbors. This results in less stem direction changes, leading to a
229 more even appearance. For example,
231 @lilypond[ragged-right]
239 This feature was sponsored by Mike Rolish and Basil Crow.
242 Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
245 @lilypond[ragged-right]
248 \override TupletBracket #'bracket-visibility = ##f
249 \override TupletBracket #'staff-padding = ##f
250 \override Slur #'details #'region-size = #6
254 c( \stemDown g' \stemNeutral c,)
259 This feature was sponsored by Trent Johnston.
262 @item Tuplet brackets and numbers are implemented as separate grobs,
263 @code{TupletBracket} and @code{TupletNumber}.
265 This rewrite was sponsored by Trent Johnston.
267 @item String arguments for music functions may be specified without
268 @code{#} marks. Now, \clef and \bar are also music functions.
270 @item Ties in chords are also formatted using a scoring based
271 formatting. This reduces the number of collisions for ties in chords,
273 @lilypond[ragged-right,fragment,relative=2]
274 <b d f g> ~ <b d f g>
277 Here, the tie for the D is flipped, in spite the default rule for
280 This rewrite was sponsored by Steve Doonan.
282 @item With the @code{\tweak} music function, layout objects that are directly
283 connected to input may be tuned easily,
285 @lilypond[relative=2,fragment,verbatim,ragged-right]
287 \tweak #'font-size #3 c
288 \tweak #'color #red d
289 \tweak #'style #'cross g
290 \tweak #'duration-log #1 a
294 This feature was sponsored by Sean Reed and Bertalan Fodor.
296 @item Generic music functions may now also be used on articulations
297 and chord elements, eg.
301 e-\keepWithTag #'bla -\tag #'bla ^2 >
304 This feature was sponsored by Sean Reed and Bertalan Fodor.
307 @item Spaces between lyrics and distance between syllables with
308 hyphens may now be separately tuned through the
309 @code{LyricSpace} grob.
311 This feature has been sponsored by Bertalan Fodor.
313 @item Texts set in a TrueType font are now kerned. This requires CVS
316 @lilypond[relative=2,fragment,ragged-right]
321 @item Using the @TeX{} no longer requires linking or dynamically
322 opening the kpathsea library, making the backend more easily usable on
325 This fix was sponsored by Black Trash Productions.
327 @item The horizontal location of rehearsal marks can be adjusted by
328 setting the @code{rehearsalMarkAlignSymbol} property,
330 @lilypond[ragged-right]
335 \set Score.rehearsalMarkAlignSymbol = #'key-signature
339 \set Score.rehearsalMarkAlignSymbol = #'clef
347 This feature was sponsored by Trevor Bača.
351 It's now possible to easily create deeply nested system start
354 @lilypond[ragged-right]
357 \set StaffGroup.systemStartDelimiterHierarchy
358 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
368 In addition, there is now also support for ``square'' system start
371 This feature was sponsored by Trevor Bača.
374 Tie formatting now uses scoring. This opens the road to formatting
375 which handles complex situations require tradeoffs between different
378 This refactoring has been sponsored by Steve Doonan.
381 Each grob property may also be a ``grob closure.'' This means that it
382 is possible to combine functions. For example, the @code{Y-offset} of
383 a @code{InstrumentName} grob is defined to be
386 ,(ly:make-simple-closure
388 ,(ly:make-simple-closure
389 (,ly:self-alignment-interface::y-aligned-on-self))
390 ,(ly:make-simple-closure
391 (,ly:side-position-interface::y-aligned-on-support-refpoints)))
395 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
399 (+ (ly:self-alignment-interface::y-aligned-on-self @var{grob})
400 (ly:self-alignment-interface::y-aligned-on-support-refpoints @var{grob}))
405 Calculation of extent and offset of grob is now controlled via the
406 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
407 properties, for example
410 \override TextScript #'Y-offset = #-6
414 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
418 Each grob property can be a procedure. If this is the case, it is
419 assumed to be a routine that calculates said property. This is a
420 major internal cleanup, which also provides advanced tweakability for
421 power users. For example,
424 \override Beam #'direction
426 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
432 With this code fragment, the direction of a beam is decided to be up
433 or down, depending on the number of stems in the beam.
437 Support for figured bass has been rewritten. Now it supports
438 continuation lines, slashed figures, and its figures, brackets, and
439 alignments may tuned separately.
441 @lilypond[ragged-right,fragment]
443 \relative { c4 c c c }
445 \set useBassFigureExtenders = ##t
446 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
450 This rewrite was sponsored by Trent Johnston and John Mandereau.
453 Subproperties, like the @code{details} field of @code{Slur} and
454 @code{Tie} may now be tuned with @code{\override}. For example,
457 \override Stem #'details #'beamed-lengths = #'(4 4 3)
461 shortens the stems in beams.
464 The default paper size may now be set from the command line using
468 Beamlets may stick out of the side of beams.
471 @lilypond[fragment,ragged-right,relative=2]
473 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
474 \set stemLeftBeamCount = #2
477 \set stemRightBeamCount = #3
482 This feature was sponsored by Trevor Bača.
487 Vertical alignments of staves can now be tuned easily for individual
490 @lilypond[ragged-right]
491 #(set-global-staff-size 13)
498 #"Score.NonMusicalPaperColumn"
499 #'line-break-system-details
500 #'((fixed-alignment-extra-space . 15))
512 This feature was sponsored by Nicolas Sceaux.
515 Vertical spacing for page layout can now be tuned for each system
516 individually. The dimensions that can be tuned can be visualized.
519 #(set-default-paper-size "a7" 'landscape)
522 \paper { annotatespacing = ##t }
526 These features were sponsored by Trevor Bača and Nicolas Sceaux.
529 The slope of a stem-tremolo may be set manually
531 @lilypond[fragment,relative=1,ragged-right]
533 \once \override StemTremolo #'slope = #0.45
537 This feature was sponsored by Sven Axelsson.
540 Laissez vibrer ties can be created with @code{\laissezVibrer},
542 @lilypond[fragment,ragged-right,relative=1]
543 <c e g>\laissezVibrer r <d f>\laissezVibrer
546 This feature was sponsored by Henrik Frisk.
549 The order of words in @code{\markup} commands may now be reversed by
550 setting the @code{text-direction} property. This is useful for
551 Right-to-Left languages like Hebrew.
553 This feature was sponsored by Aaron Mehl.
556 Texts over multi measure rests can stretch the corresponding measure,
557 if the appropriate @code{spring-and-rods} callback is set.
559 @lilypond[relative=2,fragment,ragged-right]
560 \override MultiMeasureRestText #'springs-and-rods
561 = #ly:multi-measure-rest::set-text-rods
562 c1 R1 R1^"Very long long long text"
565 This feature was sponsored by Kris Shaffer.
568 @item @textanchor{tie-chords}
569 Formatting of ties in chords has been improved. Ties no longer collide
570 with note heads and stems. In addition, it is possible to manually
571 specify tie formatting
573 @lilypond[relative=2, fragment,ragged-right]
574 <a c d f> ~ <a c d f>
576 \override TieColumn #'tie-configuration =
577 #'((0 . -1) '() (5.5 . 1) (7 . 1))
578 <b d f g> ~ <b d f g>
581 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
582 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
586 Formatting of isolated, single ties has been improved. Now, ties avoid
587 staff lines, flags and dots, without compromising their shape.
589 @lilypond[fragment,ragged-right]
592 c16 c2...~ c16 ~ c2... |
593 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
597 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
598 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
602 @item @textanchor{repeat-counter}
603 With the @code{countPercentRepeats} property,
604 percent repeats get incremental numbers to indicate the accumulated repeat count.
606 @lilypond[relative=2,fragment,ragged-right]
607 \set countPercentRepeats = ##t
608 \repeat percent 4 { c1 }
610 \repeat percent 4 { c2 c2 }
613 This feature was sponsored by Yoshinobu Ishizaki
616 Text scripts such as fingering instructions and dynamics avoid
617 collisions with slurs
619 @lilypond[fragment,relative=1]
621 b_1( f'_1_2_3 c_3_4_5 a)
623 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
628 Tuplets can be made to reach the next non-tuplet note by setting the
629 @code{tupletFullLength} property,
631 @lilypond[fragment,relative=2]
633 \remove Forbid_line_break_engraver
637 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
638 \set tupletFullLength = ##t
639 \times 2/3 { c8[ c c] }
644 This feature was sponsored by Trevor Bača.
647 When @code{strict-note-spacing} is set, notes are spaced without regard
648 for clefs, bar lines, and grace notes. For example,
650 @lilypond[fragment,relative=2]
651 \override Score.SpacingSpanner #'strict-note-spacing = ##t
652 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
655 This feature was sponsored by Trevor Bača.
658 Beams support the @code{break-overshoot} property, for example
660 @lilypond[relative=2,fragment]
661 \set allowBeamBreak = ##t
662 \override Beam #'break-overshoot = #'(1.0 . 2.0)
666 This feature was sponsored by Trevor Bača.
669 Proportional notation is supported. Notes can be spaced proportional
670 to their time-difference by assigning a duration to
671 @code{proportionalNotationDuration}. For example,
673 @lilypond[relative=2,fragment,ragged-right]
675 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
676 \new Staff { c8[ c c c c c] c4 c2 r2 }
677 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
681 This feature was sponsored by Trevor Bača.
684 Symbol sizes (e.g. accidentals) are disregarded for spacing if
685 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
688 @lilypond[relative=2,fragment]
690 \override Score.SpacingSpanner #'uniform-stretching = ##t
691 \new Staff { c16[ c c c c c c c c c16] }
693 \times 6/7 { c16 c c cis c c c }
699 This feature was sponsored by Trevor Bača.
702 Endings of broken tuplet brackets can be tuned. For example, you can
703 add arrows to the brackets,
705 @lilypond[fragment,ragged-right,relative=2]
706 \override TupletBracket
708 (markup #:arrow-head X LEFT #f)
709 (markup #:arrow-head X RIGHT #f))
711 c c c \bar "empty" \break c c
715 This feature was sponsored by Trevor Bača.
718 @item @textanchor{arrow-glyph}
719 Arrow heads were added to the Feta font.
724 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
725 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
730 These glyphs have been sponsored by Trevor Bača.
734 Nested tuplets are automatically positioned,
736 @lilypond[fragment,ragged-right,relative=2]
737 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
740 \times 3/5 { a a a a a }
744 This feature was sponsored by Trevor Bača.
747 Music expressions can be displayed, in LilyPond notation, using the
748 new @code{\displayLilyMusic} function. For instance:
750 \displayLilyMusic \transpose c a, { c d e f }
757 This feature was contributed by Nicolas Sceaux.
760 The current bar number may be checked with @code{\barNumberCheck}, eg.
767 will print a warning if it doesn't happen in measure 22.
770 If @code{showLastLength} is set, only the last few measures of a piece
771 are rendered, which speeds up correcting scores. For example, setting
774 showLastLength = R1*5
779 will render only the last five measures (assuming 4/4 time signature)
782 @item @textanchor{simple-melismata}
783 Melismata can be specified simply in the lyrics now, eg.
785 @lilypond[relative=1,verbatim,fragment]
793 This feature was sponsored by Nancho Alvarez
796 Suggested accidentals (for notating musica ficta) may be switched on
797 with @code{suggestAccidentals}
799 @lilypond[verbatim,fragment,relative=2]
800 \set suggestAccidentals = ##t
804 This feature was sponsored by Nancho Alvarez.
807 The setting @code{whichBar} and time-bookkeeping is now split into a
808 @code{Default_bar_line_engraver} and @code{Timing_translator}
811 @item @textanchor{pitched-trill}
812 Explicit pitches may be added to trills,
814 @lilypond[relative,verbatim,fragment]
815 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
818 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
821 Markup now supports formatting of text paragraphs, using
822 @code{\wordwrap} and @code{\justify}.
824 This feature was sponsored by Sven Axelsson.
828 For older news, go to
829 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
830 or @uref{../,go back} to the Documentation index.