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 Newly created contexts may also be named with the following
71 \new Voice = "alto" ...
74 @item Thicknesses of tie and slurs may be tuned separately for the
75 endings and the middle part.
77 @item Items directly connected with a music input element may be
78 parenthesized, for example,
80 @lilypond[verbatim,ragged-right,fragment,relative=2]
82 <d \parenthesize fis a>
85 This feature was sponsored by Ramana Kumar.
88 variables in the @code{\paper} and @code{\layout} block are now
89 separated with dashes, i.e.
99 The same holds for analogous options in lilypond-book.
102 Music for multiple parts can be interleaved, similar to MUP input.
103 This is done with the @code{\parallelMusic} function,
105 @lilypond[verbatim,ragged-right]
106 \parallelMusic #'(voiceA voiceB) {
107 r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
109 r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
120 This feature was contributed by Nicolas Sceaux.
122 @item Alignments of staves may be tuned per system.
124 #(set-global-staff-size 13)
126 \relative c'' \new StaffGroup <<
131 #"Score.NonMusicalPaperColumn"
132 #'line-break-system-details
133 #'((alignment-offsets . (0 -5 -20)))
136 #"Score.NonMusicalPaperColumn"
137 #'line-break-system-details
138 #'((alignment-offsets . (0 -15 -20)))
144 This feature was sponsored by Trevor Bača.
146 @item Individual systems may be positioned manually,
150 tagline = "lily was here"
153 #(set-default-paper-size "a7" 'landscape)
155 head-separation = 0.0
156 foot-separation = 0.0
163 #"Score.NonMusicalPaperColumn"
164 #'line-break-system-details
172 annotateheaders = ##t
177 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
179 @item A linebreaking configuration can now be saved as a @file{.ly}
180 file automatically. This allows vertical alignments to be stretched to
181 fit pages in a second formatting run. See
182 @inputfileref{input/regression,page-layout-twopass.ly} for an
185 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
187 @item The tie formatting for chords has been further polished. More
188 cases are handled gracefully, and all scoring parameters may now be
189 changed through the @code{details} property of the @code{Tie} grob.
191 This refinement was sponsored by Steve Doonan.
193 @item Positions of staff lines may now be set individually, for
196 @lilypond[ragged-right]
197 \new Staff \relative c' {
198 \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 7)
203 This feature was sponsored by Andrea Valle.
206 @item A MusicXML importer is included now.
208 It was sponsored by among others, Mark van den Borre,
209 and Muziekacademie Lede.
212 Stem direction on the center staff line are now interpolated between
213 neighbors. This results in less stem direction changes, leading to a
214 more even appearance. For example,
216 @lilypond[ragged-right]
224 This feature was sponsored by Mike Rolish and Basil Crow.
227 Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
230 @lilypond[ragged-right]
233 \override TupletBracket #'bracket-visibility = ##f
234 \override TupletBracket #'staff-padding = ##f
235 \override Slur #'details #'region-size = #6
239 c( \stemDown g' \stemNeutral c,)
244 This feature was sponsored by Trent Johnston.
247 @item Tuplet brackets and numbers are implemented as separate grobs,
248 @code{TupletBracket} and @code{TupletNumber}.
250 This rewrite was sponsored by Trent Johnston.
252 @item String arguments for music functions may be specified without
253 @code{#} marks. Now, \clef and \bar are also music functions.
255 @item Ties in chords are also formatted using a scoring based
256 formatting. This reduces the number of collisions for ties in chords,
258 @lilypond[ragged-right,fragment,relative=2]
259 <b d f g> ~ <b d f g>
262 Here, the tie for the D is flipped, in spite the default rule for
265 This rewrite was sponsored by Steve Doonan.
267 @item With the @code{\tweak} music function, layout objects that are directly
268 connected to input may be tuned easily,
270 @lilypond[relative=2,fragment,verbatim,ragged-right]
272 \tweak #'font-size #3 c
273 \tweak #'color #red d
274 \tweak #'style #'cross g
275 \tweak #'duration-log #1 a
279 This feature was sponsored by Sean Reed and Bertalan Fodor.
281 @item Generic music functions may now also be used on articulations
282 and chord elements, eg.
286 e-\keepWithTag #'bla -\tag #'bla ^2 >
289 This feature was sponsored by Sean Reed and Bertalan Fodor.
292 @item Spaces between lyrics and distance between syllables with
293 hyphens may now be separately tuned through the
294 @code{LyricSpace} grob.
296 This feature has been sponsored by Bertalan Fodor.
298 @item Texts set in a TrueType font are now kerned. This requires CVS
301 @lilypond[relative=2,fragment,ragged-right]
306 @item Using the @TeX{} no longer requires linking or dynamically
307 opening the kpathsea library, making the backend more easily usable on
310 This fix was sponsored by Black Trash Productions.
312 @item The horizontal location of rehearsal marks can be adjusted by
313 setting the @code{rehearsalMarkAlignSymbol} property,
315 @lilypond[ragged-right]
320 \set Score.rehearsalMarkAlignSymbol = #'key-signature
324 \set Score.rehearsalMarkAlignSymbol = #'clef
332 This feature was sponsored by Trevor Bača.
336 It's now possible to easily create deeply nested system start
339 @lilypond[ragged-right]
342 \set StaffGroup.systemStartDelimiterHierarchy
343 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
353 In addition, there is now also support for ``square'' system start
356 This feature was sponsored by Trevor Bača.
359 Tie formatting now uses scoring. This opens the road to formatting
360 which handles complex situations require tradeoffs between different
363 This refactoring has been sponsored by Steve Doonan.
366 Each grob property may also be a ``grob closure.'' This means that it
367 is possible to combine functions. For example, the @code{Y-offset} of
368 a @code{InstrumentName} grob is defined to be
371 ,(ly:make-simple-closure
373 ,(ly:make-simple-closure
374 (,ly:self-alignment-interface::y-aligned-on-self))
375 ,(ly:make-simple-closure
376 (,ly:side-position-interface::y-aligned-on-support-refpoints)))
380 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
384 (+ (ly:self-alignment-interface::y-aligned-on-self @var{grob})
385 (ly:self-alignment-interface::y-aligned-on-support-refpoints @var{grob}))
390 Calculation of extent and offset of grob is now controlled via the
391 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
392 properties, for example
395 \override TextScript #'Y-offset = #-6
399 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
403 Each grob property can be a procedure. If this is the case, it is
404 assumed to be a routine that calculates said property. This is a
405 major internal cleanup, which also provides advanced tweakability for
406 power users. For example,
409 \override Beam #'direction
411 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
417 With this code fragment, the direction of a beam is decided to be up
418 or down, depending on the number of stems in the beam.
422 Support for figured bass has been rewritten. Now it supports
423 continuation lines, slashed figures, and its figures, brackets, and
424 alignments may tuned separately.
426 @lilypond[ragged-right,fragment]
428 \relative { c4 c c c }
430 \set useBassFigureExtenders = ##t
431 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
435 This rewrite was sponsored by Trent Johnston and John Mandereau.
438 Subproperties, like the @code{details} field of @code{Slur} and
439 @code{Tie} may now be tuned with @code{\override}. For example,
442 \override Stem #'details #'beamed-lengths = #'(4 4 3)
446 shortens the stems in beams.
449 The default paper size may now be set from the command line using
453 Beamlets may stick out of the side of beams.
456 @lilypond[fragment,ragged-right,relative=2]
458 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
459 \set stemLeftBeamCount = #2
462 \set stemRightBeamCount = #3
467 This feature was sponsored by Trevor Bača.
472 Vertical alignments of staves can now be tuned easily for individual
475 @lilypond[ragged-right]
476 #(set-global-staff-size 13)
483 #"Score.NonMusicalPaperColumn"
484 #'line-break-system-details
485 #'((fixed-alignment-extra-space . 15))
497 This feature was sponsored by Nicolas Sceaux.
500 Vertical spacing for page layout can now be tuned for each system
501 individually. The dimensions that can be tuned can be visualized.
504 #(set-default-paper-size "a7" 'landscape)
507 \paper { annotatespacing = ##t }
511 These features were sponsored by Trevor Bača and Nicolas Sceaux.
514 The slope of a stem-tremolo may be set manually
516 @lilypond[fragment,relative=1,ragged-right]
518 \once \override StemTremolo #'slope = #0.45
522 This feature was sponsored by Sven Axelsson.
525 Laissez vibrer ties can be created with @code{\laissezVibrer},
527 @lilypond[fragment,ragged-right,relative=1]
528 <c e g>\laissezVibrer r <d f>\laissezVibrer
531 This feature was sponsored by Henrik Frisk.
534 The order of words in @code{\markup} commands may now be reversed by
535 setting the @code{text-direction} property. This is useful for
536 Right-to-Left languages like Hebrew.
538 This feature was sponsored by Aaron Mehl.
541 Texts over multi measure rests can stretch the corresponding measure,
542 if the appropriate @code{spring-and-rods} callback is set.
544 @lilypond[relative=2,fragment,ragged-right]
545 \override MultiMeasureRestText #'springs-and-rods
546 = #ly:multi-measure-rest::set-text-rods
547 c1 R1 R1^"Very long long long text"
550 This feature was sponsored by Kris Shaffer.
553 @item @textanchor{tie-chords}
554 Formatting of ties in chords has been improved. Ties no longer collide
555 with note heads and stems. In addition, it is possible to manually
556 specify tie formatting
558 @lilypond[relative=2, fragment,ragged-right]
559 <a c d f> ~ <a c d f>
561 \override TieColumn #'tie-configuration =
562 #'((0 . -1) '() (5.5 . 1) (7 . 1))
563 <b d f g> ~ <b d f g>
566 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
567 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
571 Formatting of isolated, single ties has been improved. Now, ties avoid
572 staff lines, flags and dots, without compromising their shape.
574 @lilypond[fragment,ragged-right]
577 c16 c2...~ c16 ~ c2... |
578 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
582 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
583 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
587 @item @textanchor{repeat-counter}
588 With the @code{countPercentRepeats} property,
589 percent repeats get incremental numbers to indicate the accumulated repeat count.
591 @lilypond[relative=2,fragment,ragged-right]
592 \set countPercentRepeats = ##t
593 \repeat percent 4 { c1 }
595 \repeat percent 4 { c2 c2 }
598 This feature was sponsored by Yoshinobu Ishizaki
601 Text scripts such as fingering instructions and dynamics avoid
602 collisions with slurs
604 @lilypond[fragment,relative=1]
606 b_1( f'_1_2_3 c_3_4_5 a)
608 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
613 Tuplets can be made to reach the next non-tuplet note by setting the
614 @code{tupletFullLength} property,
616 @lilypond[fragment,relative=2]
618 \remove Forbid_line_break_engraver
622 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
623 \set tupletFullLength = ##t
624 \times 2/3 { c8[ c c] }
629 This feature was sponsored by Trevor Bača.
632 When @code{strict-note-spacing} is set, notes are spaced without regard
633 for clefs, bar lines, and grace notes. For example,
635 @lilypond[fragment,relative=2]
636 \override Score.SpacingSpanner #'strict-note-spacing = ##t
637 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
640 This feature was sponsored by Trevor Bača.
643 Beams support the @code{break-overshoot} property, for example
645 @lilypond[relative=2,fragment]
646 \set allowBeamBreak = ##t
647 \override Beam #'break-overshoot = #'(1.0 . 2.0)
651 This feature was sponsored by Trevor Bača.
654 Proportional notation is supported. Notes can be spaced proportional
655 to their time-difference by assigning a duration to
656 @code{proportionalNotationDuration}. For example,
658 @lilypond[relative=2,fragment,ragged-right]
660 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
661 \new Staff { c8[ c c c c c] c4 c2 r2 }
662 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
666 This feature was sponsored by Trevor Bača.
669 Symbol sizes (e.g. accidentals) are disregarded for spacing if
670 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
673 @lilypond[relative=2,fragment]
675 \override Score.SpacingSpanner #'uniform-stretching = ##t
676 \new Staff { c16[ c c c c c c c c c16] }
678 \times 6/7 { c16 c c cis c c c }
684 This feature was sponsored by Trevor Bača.
687 Endings of broken tuplet brackets can be tuned. For example, you can
688 add arrows to the brackets,
690 @lilypond[fragment,ragged-right,relative=2]
691 \override TupletBracket
693 (markup #:arrow-head X LEFT #f)
694 (markup #:arrow-head X RIGHT #f))
696 c c c \bar "empty" \break c c
700 This feature was sponsored by Trevor Bača.
703 @item @textanchor{arrow-glyph}
704 Arrow heads were added to the Feta font.
709 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
710 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
715 These glyphs have been sponsored by Trevor Bača.
719 Nested tuplets are automatically positioned,
721 @lilypond[fragment,ragged-right,relative=2]
722 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
725 \times 3/5 { a a a a a }
729 This feature was sponsored by Trevor Bača.
732 Music expressions can be displayed, in LilyPond notation, using the
733 new @code{\displayLilyMusic} function. For instance:
735 \displayLilyMusic \transpose c a, { c d e f }
742 This feature was contributed by Nicolas Sceaux.
745 The current bar number may be checked with @code{\barNumberCheck}, eg.
752 will print a warning if it doesn't happen in measure 22.
755 If @code{showLastLength} is set, only the last few measures of a piece
756 are rendered, which speeds up correcting scores. For example, setting
759 showLastLength = R1*5
764 will render only the last five measures (assuming 4/4 time signature)
767 @item @textanchor{simple-melismata}
768 Melismata can be specified simply in the lyrics now, eg.
770 @lilypond[relative=1,verbatim,fragment]
778 This feature was sponsored by Nancho Alvarez
781 Suggested accidentals (for notating musica ficta) may be switched on
782 with @code{suggestAccidentals}
784 @lilypond[verbatim,fragment,relative=2]
785 \set suggestAccidentals = ##t
789 This feature was sponsored by Nancho Alvarez.
792 The setting @code{whichBar} and time-bookkeeping is now split into a
793 @code{Default_bar_line_engraver} and @code{Timing_translator}
796 @item @textanchor{pitched-trill}
797 Explicit pitches may be added to trills,
799 @lilypond[relative,verbatim,fragment]
800 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
803 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
806 Markup now supports formatting of text paragraphs, using
807 @code{\wordwrap} and @code{\justify}.
809 This feature was sponsored by Sven Axelsson.
813 For older news, go to
814 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
815 or @uref{../,go back} to the Documentation index.