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 Newly created contexts may also be named with the following
70 \new Voice = "alto" ...
73 @item Thicknesses of tie and slurs may be tuned separately for the
74 endings and the middle part.
76 @item Items directly connected with a music input element may be
77 parenthesized, for example,
79 @lilypond[verbatim,ragged-right,fragment,relative=2]
81 <d \parenthesize fis a>
84 This feature was sponsored by Ramana Kumar.
87 variables in the @code{\paper} and @code{\layout} block are now
88 separated with dashes, i.e.
98 The same holds for analogous options in lilypond-book.
101 Music for multiple parts can be interleaved, similar to MUP input.
102 This is done with the @code{\parallelMusic} function,
104 @lilypond[verbatim,ragged-right]
105 \parallelMusic #'(voiceA voiceB) {
106 r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
108 r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
119 This feature was contributed by Nicolas Sceaux.
121 @item Alignments of staves may be tuned per system.
123 #(set-global-staff-size 13)
125 \relative c'' \new StaffGroup <<
130 #"Score.NonMusicalPaperColumn"
131 #'line-break-system-details
132 #'((alignment-offsets . (0 -5 -20)))
135 #"Score.NonMusicalPaperColumn"
136 #'line-break-system-details
137 #'((alignment-offsets . (0 -15 -20)))
143 This feature was sponsored by Trevor Bača.
145 @item Individual systems may be positioned manually,
149 tagline = "lily was here"
152 #(set-default-paper-size "a7" 'landscape)
154 head-separation = 0.0
155 foot-separation = 0.0
162 #"Score.NonMusicalPaperColumn"
163 #'line-break-system-details
171 annotateheaders = ##t
176 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
178 @item A linebreaking configuration can now be saved as a @file{.ly}
179 file automatically. This allows vertical alignments to be stretched to
180 fit pages in a second formatting run. See
181 @inputfileref{input/regression,page-layout-twopass.ly} for an
184 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
186 @item The tie formatting for chords has been further polished. More
187 cases are handled gracefully, and all scoring parameters may now be
188 changed through the @code{details} property of the @code{Tie} grob.
190 This refinement was sponsored by Steve Doonan.
192 @item Positions of staff lines may now be set individually, for
195 @lilypond[ragged-right]
196 \new Staff \relative c' {
197 \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 7)
202 This feature was sponsored by Andrea Valle.
205 @item A MusicXML importer is included now.
207 It was sponsored by among others, Mark van den Borre,
208 and Muziekacademie Lede.
211 Stem direction on the center staff line are now interpolated between
212 neighbors. This results in less stem direction changes, leading to a
213 more even appearance. For example,
215 @lilypond[ragged-right]
223 This feature was sponsored by Mike Rolish and Basil Crow.
226 Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
229 @lilypond[ragged-right]
232 \override TupletBracket #'bracket-visibility = ##f
233 \override TupletBracket #'staff-padding = ##f
234 \override Slur #'details #'region-size = #6
238 c( \stemDown g' \stemNeutral c,)
243 This feature was sponsored by Trent Johnston.
246 @item Tuplet brackets and numbers are implemented as separate grobs,
247 @code{TupletBracket} and @code{TupletNumber}.
249 This rewrite was sponsored by Trent Johnston.
251 @item String arguments for music functions may be specified without
252 @code{#} marks. Now, \clef and \bar are also music functions.
254 @item Ties in chords are also formatted using a scoring based
255 formatting. This reduces the number of collisions for ties in chords,
257 @lilypond[ragged-right,fragment,relative=2]
258 <b d f g> ~ <b d f g>
261 Here, the tie for the D is flipped, in spite the default rule for
264 This rewrite was sponsored by Steve Doonan.
266 @item With the @code{\tweak} music function, layout objects that are directly
267 connected to input may be tuned easily,
269 @lilypond[relative=2,fragment,verbatim,ragged-right]
271 \tweak #'font-size #3 c
272 \tweak #'color #red d
273 \tweak #'style #'cross g
274 \tweak #'duration-log #1 a
278 This feature was sponsored by Sean Reed and Bertalan Fodor.
280 @item Generic music functions may now also be used on articulations
281 and chord elements, eg.
285 e-\keepWithTag #'bla -\tag #'bla ^2 >
288 This feature was sponsored by Sean Reed and Bertalan Fodor.
291 @item Spaces between lyrics and distance between syllables with
292 hyphens may now be separately tuned through the
293 @code{LyricSpace} grob.
295 This feature has been sponsored by Bertalan Fodor.
297 @item Texts set in a TrueType font are now kerned. This requires CVS
300 @lilypond[relative=2,fragment,ragged-right]
305 @item Using the @TeX{} no longer requires linking or dynamically
306 opening the kpathsea library, making the backend more easily usable on
309 This fix was sponsored by Black Trash Productions.
311 @item The horizontal location of rehearsal marks can be adjusted by
312 setting the @code{rehearsalMarkAlignSymbol} property,
314 @lilypond[ragged-right]
319 \set Score.rehearsalMarkAlignSymbol = #'key-signature
323 \set Score.rehearsalMarkAlignSymbol = #'clef
331 This feature was sponsored by Trevor Bača.
335 It's now possible to easily create deeply nested system start
338 @lilypond[ragged-right]
341 \set StaffGroup.systemStartDelimiterHierarchy
342 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
352 In addition, there is now also support for ``square'' system start
355 This feature was sponsored by Trevor Bača.
358 Tie formatting now uses scoring. This opens the road to formatting
359 which handles complex situations require tradeoffs between different
362 This refactoring has been sponsored by Steve Doonan.
365 Each grob property may also be a ``grob closure.'' This means that it
366 is possible to combine functions. For example, the @code{Y-offset} of
367 a @code{InstrumentName} grob is defined to be
370 ,(ly:make-simple-closure
372 ,(ly:make-simple-closure
373 (,ly:self-alignment-interface::y-aligned-on-self))
374 ,(ly:make-simple-closure
375 (,ly:side-position-interface::y-aligned-on-support-refpoints)))
379 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
383 (+ (ly:self-alignment-interface::y-aligned-on-self @var{grob})
384 (ly:self-alignment-interface::y-aligned-on-support-refpoints @var{grob}))
389 Calculation of extent and offset of grob is now controlled via the
390 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
391 properties, for example
394 \override TextScript #'Y-offset = #-6
398 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
402 Each grob property can be a procedure. If this is the case, it is
403 assumed to be a routine that calculates said property. This is a
404 major internal cleanup, which also provides advanced tweakability for
405 power users. For example,
408 \override Beam #'direction
410 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
416 With this code fragment, the direction of a beam is decided to be up
417 or down, depending on the number of stems in the beam.
421 Support for figured bass has been rewritten. Now it supports
422 continuation lines, slashed figures, and its figures, brackets, and
423 alignments may tuned separately.
425 @lilypond[ragged-right,fragment]
427 \relative { c4 c c c }
429 \set useBassFigureExtenders = ##t
430 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
434 This rewrite was sponsored by Trent Johnston and John Mandereau.
437 Subproperties, like the @code{details} field of @code{Slur} and
438 @code{Tie} may now be tuned with @code{\override}. For example,
441 \override Stem #'details #'beamed-lengths = #'(4 4 3)
445 shortens the stems in beams.
448 The default paper size may now be set from the command line using
452 Beamlets may stick out of the side of beams.
455 @lilypond[fragment,ragged-right,relative=2]
457 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
458 \set stemLeftBeamCount = #2
461 \set stemRightBeamCount = #3
466 This feature was sponsored by Trevor Bača.
471 Vertical alignments of staves can now be tuned easily for individual
474 @lilypond[ragged-right]
475 #(set-global-staff-size 13)
482 #"Score.NonMusicalPaperColumn"
483 #'line-break-system-details
484 #'((fixed-alignment-extra-space . 15))
496 This feature was sponsored by Nicolas Sceaux.
499 Vertical spacing for page layout can now be tuned for each system
500 individually. The dimensions that can be tuned can be visualized.
503 #(set-default-paper-size "a7" 'landscape)
506 \paper { annotatespacing = ##t }
510 These features were sponsored by Trevor Bača and Nicolas Sceaux.
513 The slope of a stem-tremolo may be set manually
515 @lilypond[fragment,relative=1,ragged-right]
517 \once \override StemTremolo #'slope = #0.45
521 This feature was sponsored by Sven Axelsson.
524 Laissez vibrer ties can be created with @code{\laissezVibrer},
526 @lilypond[fragment,ragged-right,relative=1]
527 <c e g>\laissezVibrer r <d f>\laissezVibrer
530 This feature was sponsored by Henrik Frisk.
533 The order of words in @code{\markup} commands may now be reversed by
534 setting the @code{text-direction} property. This is useful for
535 Right-to-Left languages like Hebrew.
537 This feature was sponsored by Aaron Mehl.
540 Texts over multi measure rests can stretch the corresponding measure,
541 if the appropriate @code{spring-and-rods} callback is set.
543 @lilypond[relative=2,fragment,ragged-right]
544 \override MultiMeasureRestText #'springs-and-rods
545 = #ly:multi-measure-rest::set-text-rods
546 c1 R1 R1^"Very long long long text"
549 This feature was sponsored by Kris Shaffer.
552 @item @textanchor{tie-chords}
553 Formatting of ties in chords has been improved. Ties no longer collide
554 with note heads and stems. In addition, it is possible to manually
555 specify tie formatting
557 @lilypond[relative=2, fragment,ragged-right]
558 <a c d f> ~ <a c d f>
560 \override TieColumn #'tie-configuration =
561 #'((0 . -1) '() (5.5 . 1) (7 . 1))
562 <b d f g> ~ <b d f g>
565 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
566 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
570 Formatting of isolated, single ties has been improved. Now, ties avoid
571 staff lines, flags and dots, without compromising their shape.
573 @lilypond[fragment,ragged-right]
576 c16 c2...~ c16 ~ c2... |
577 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
581 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
582 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
586 @item @textanchor{repeat-counter}
587 With the @code{countPercentRepeats} property,
588 percent repeats get incremental numbers to indicate the accumulated repeat count.
590 @lilypond[relative=2,fragment,ragged-right]
591 \set countPercentRepeats = ##t
592 \repeat percent 4 { c1 }
594 \repeat percent 4 { c2 c2 }
597 This feature was sponsored by Yoshinobu Ishizaki
600 Text scripts such as fingering instructions and dynamics avoid
601 collisions with slurs
603 @lilypond[fragment,relative=1]
605 b_1( f'_1_2_3 c_3_4_5 a)
607 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
612 Tuplets can be made to reach the next non-tuplet note by setting the
613 @code{tupletFullLength} property,
615 @lilypond[fragment,relative=2]
617 \remove Forbid_line_break_engraver
621 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
622 \set tupletFullLength = ##t
623 \times 2/3 { c8[ c c] }
628 This feature was sponsored by Trevor Bača.
631 When @code{strict-note-spacing} is set, notes are spaced without regard
632 for clefs, bar lines, and grace notes. For example,
634 @lilypond[fragment,relative=2]
635 \override Score.SpacingSpanner #'strict-note-spacing = ##t
636 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
639 This feature was sponsored by Trevor Bača.
642 Beams support the @code{break-overshoot} property, for example
644 @lilypond[relative=2,fragment]
645 \set allowBeamBreak = ##t
646 \override Beam #'break-overshoot = #'(1.0 . 2.0)
650 This feature was sponsored by Trevor Bača.
653 Proportional notation is supported. Notes can be spaced proportional
654 to their time-difference by assigning a duration to
655 @code{proportionalNotationDuration}. For example,
657 @lilypond[relative=2,fragment,ragged-right]
659 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
660 \new Staff { c8[ c c c c c] c4 c2 r2 }
661 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
665 This feature was sponsored by Trevor Bača.
668 Symbol sizes (e.g. accidentals) are disregarded for spacing if
669 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
672 @lilypond[relative=2,fragment]
674 \override Score.SpacingSpanner #'uniform-stretching = ##t
675 \new Staff { c16[ c c c c c c c c c16] }
677 \times 6/7 { c16 c c cis c c c }
683 This feature was sponsored by Trevor Bača.
686 Endings of broken tuplet brackets can be tuned. For example, you can
687 add arrows to the brackets,
689 @lilypond[fragment,ragged-right,relative=2]
690 \override TupletBracket
692 (markup #:arrow-head X LEFT #f)
693 (markup #:arrow-head X RIGHT #f))
695 c c c \bar "empty" \break c c
699 This feature was sponsored by Trevor Bača.
702 @item @textanchor{arrow-glyph}
703 Arrow heads were added to the Feta font.
708 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
709 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
714 These glyphs have been sponsored by Trevor Bača.
718 Nested tuplets are automatically positioned,
720 @lilypond[fragment,ragged-right,relative=2]
721 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
724 \times 3/5 { a a a a a }
728 This feature was sponsored by Trevor Bača.
731 Music expressions can be displayed, in LilyPond notation, using the
732 new @code{\displayLilyMusic} function. For instance:
734 \displayLilyMusic \transpose c a, { c d e f }
741 This feature was contributed by Nicolas Sceaux.
744 The current bar number may be checked with @code{\barNumberCheck}, eg.
751 will print a warning if it doesn't happen in measure 22.
754 If @code{showLastLength} is set, only the last few measures of a piece
755 are rendered, which speeds up correcting scores. For example, setting
758 showLastLength = R1*5
763 will render only the last five measures (assuming 4/4 time signature)
766 @item @textanchor{simple-melismata}
767 Melismata can be specified simply in the lyrics now, eg.
769 @lilypond[relative=1,verbatim,fragment]
777 This feature was sponsored by Nancho Alvarez
780 Suggested accidentals (for notating musica ficta) may be switched on
781 with @code{suggestAccidentals}
783 @lilypond[verbatim,fragment,relative=2]
784 \set suggestAccidentals = ##t
788 This feature was sponsored by Nancho Alvarez.
791 The setting @code{whichBar} and time-bookkeeping is now split into a
792 @code{Default_bar_line_engraver} and @code{Timing_translator}
795 @item @textanchor{pitched-trill}
796 Explicit pitches may be added to trills,
798 @lilypond[relative,verbatim,fragment]
799 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
802 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
805 Markup now supports formatting of text paragraphs, using
806 @code{\wordwrap} and @code{\justify}.
808 This feature was sponsored by Sven Axelsson.
812 For older news, go to
813 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
814 or @uref{../,go back} to the Documentation index.