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 Ties may now be attached to the left side of a note with
68 @code{\repeatTie}, for use with volta repeats.
70 @lilypond[relative=2,fragment,ragged-right]
74 This feature was sponsored by Steve Doonan.
76 @item Newly created contexts may also be named with the following
80 \new Voice = "alto" ...
83 @item Thicknesses of tie and slurs may be tuned separately for the
84 endings and the middle part.
86 @item Items directly connected with a music input element may be
87 parenthesized, for example,
89 @lilypond[verbatim,ragged-right,fragment,relative=2]
91 <d \parenthesize fis a>
94 This feature was sponsored by Ramana Kumar.
97 variables in the @code{\paper} and @code{\layout} block are now
98 separated with dashes, i.e.
108 The same holds for analogous options in lilypond-book.
111 Music for multiple parts can be interleaved, similar to MUP input.
112 This is done with the @code{\parallelMusic} function,
114 @lilypond[verbatim,ragged-right]
115 \parallelMusic #'(voiceA voiceB) {
116 r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
118 r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
129 This feature was contributed by Nicolas Sceaux.
131 @item Alignments of staves may be tuned per system.
133 #(set-global-staff-size 13)
135 \relative c'' \new StaffGroup <<
140 #"Score.NonMusicalPaperColumn"
141 #'line-break-system-details
142 #'((alignment-offsets . (0 -5 -20)))
145 #"Score.NonMusicalPaperColumn"
146 #'line-break-system-details
147 #'((alignment-offsets . (0 -15 -20)))
153 This feature was sponsored by Trevor Bača.
155 @item Individual systems may be positioned manually,
159 tagline = "lily was here"
162 #(set-default-paper-size "a7" 'landscape)
164 head-separation = 0.0
165 foot-separation = 0.0
172 #"Score.NonMusicalPaperColumn"
173 #'line-break-system-details
181 annotateheaders = ##t
186 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
188 @item A linebreaking configuration can now be saved as a @file{.ly}
189 file automatically. This allows vertical alignments to be stretched to
190 fit pages in a second formatting run. See
191 @inputfileref{input/regression,page-layout-twopass.ly} for an
194 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
196 @item The tie formatting for chords has been further polished. More
197 cases are handled gracefully, and all scoring parameters may now be
198 changed through the @code{details} property of the @code{Tie} grob.
200 This refinement was sponsored by Steve Doonan.
202 @item Positions of staff lines may now be set individually, for
205 @lilypond[ragged-right]
206 \new Staff \relative c' {
207 \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 7)
212 This feature was sponsored by Andrea Valle.
215 @item A MusicXML importer is included now.
217 It was sponsored by among others, Mark van den Borre,
218 and Muziekacademie Lede.
221 Stem direction on the center staff line are now interpolated between
222 neighbors. This results in less stem direction changes, leading to a
223 more even appearance. For example,
225 @lilypond[ragged-right]
233 This feature was sponsored by Mike Rolish and Basil Crow.
236 Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
239 @lilypond[ragged-right]
242 \override TupletBracket #'bracket-visibility = ##f
243 \override TupletBracket #'staff-padding = ##f
244 \override Slur #'details #'region-size = #6
248 c( \stemDown g' \stemNeutral c,)
253 This feature was sponsored by Trent Johnston.
256 @item Tuplet brackets and numbers are implemented as separate grobs,
257 @code{TupletBracket} and @code{TupletNumber}.
259 This rewrite was sponsored by Trent Johnston.
261 @item String arguments for music functions may be specified without
262 @code{#} marks. Now, \clef and \bar are also music functions.
264 @item Ties in chords are also formatted using a scoring based
265 formatting. This reduces the number of collisions for ties in chords,
267 @lilypond[ragged-right,fragment,relative=2]
268 <b d f g> ~ <b d f g>
271 Here, the tie for the D is flipped, in spite the default rule for
274 This rewrite was sponsored by Steve Doonan.
276 @item With the @code{\tweak} music function, layout objects that are directly
277 connected to input may be tuned easily,
279 @lilypond[relative=2,fragment,verbatim,ragged-right]
281 \tweak #'font-size #3 c
282 \tweak #'color #red d
283 \tweak #'style #'cross g
284 \tweak #'duration-log #1 a
288 This feature was sponsored by Sean Reed and Bertalan Fodor.
290 @item Generic music functions may now also be used on articulations
291 and chord elements, eg.
295 e-\keepWithTag #'bla -\tag #'bla ^2 >
298 This feature was sponsored by Sean Reed and Bertalan Fodor.
301 @item Spaces between lyrics and distance between syllables with
302 hyphens may now be separately tuned through the
303 @code{LyricSpace} grob.
305 This feature has been sponsored by Bertalan Fodor.
307 @item Texts set in a TrueType font are now kerned. This requires CVS
310 @lilypond[relative=2,fragment,ragged-right]
315 @item Using the @TeX{} no longer requires linking or dynamically
316 opening the kpathsea library, making the backend more easily usable on
319 This fix was sponsored by Black Trash Productions.
321 @item The horizontal location of rehearsal marks can be adjusted by
322 setting the @code{rehearsalMarkAlignSymbol} property,
324 @lilypond[ragged-right]
329 \set Score.rehearsalMarkAlignSymbol = #'key-signature
333 \set Score.rehearsalMarkAlignSymbol = #'clef
341 This feature was sponsored by Trevor Bača.
345 It's now possible to easily create deeply nested system start
348 @lilypond[ragged-right]
351 \set StaffGroup.systemStartDelimiterHierarchy
352 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
362 In addition, there is now also support for ``square'' system start
365 This feature was sponsored by Trevor Bača.
368 Tie formatting now uses scoring. This opens the road to formatting
369 which handles complex situations require tradeoffs between different
372 This refactoring has been sponsored by Steve Doonan.
375 Each grob property may also be a ``grob closure.'' This means that it
376 is possible to combine functions. For example, the @code{Y-offset} of
377 a @code{InstrumentName} grob is defined to be
380 ,(ly:make-simple-closure
382 ,(ly:make-simple-closure
383 (,ly:self-alignment-interface::y-aligned-on-self))
384 ,(ly:make-simple-closure
385 (,ly:side-position-interface::y-aligned-on-support-refpoints)))
389 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
393 (+ (ly:self-alignment-interface::y-aligned-on-self @var{grob})
394 (ly:self-alignment-interface::y-aligned-on-support-refpoints @var{grob}))
399 Calculation of extent and offset of grob is now controlled via the
400 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
401 properties, for example
404 \override TextScript #'Y-offset = #-6
408 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
412 Each grob property can be a procedure. If this is the case, it is
413 assumed to be a routine that calculates said property. This is a
414 major internal cleanup, which also provides advanced tweakability for
415 power users. For example,
418 \override Beam #'direction
420 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
426 With this code fragment, the direction of a beam is decided to be up
427 or down, depending on the number of stems in the beam.
431 Support for figured bass has been rewritten. Now it supports
432 continuation lines, slashed figures, and its figures, brackets, and
433 alignments may tuned separately.
435 @lilypond[ragged-right,fragment]
437 \relative { c4 c c c }
439 \set useBassFigureExtenders = ##t
440 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
444 This rewrite was sponsored by Trent Johnston and John Mandereau.
447 Subproperties, like the @code{details} field of @code{Slur} and
448 @code{Tie} may now be tuned with @code{\override}. For example,
451 \override Stem #'details #'beamed-lengths = #'(4 4 3)
455 shortens the stems in beams.
458 The default paper size may now be set from the command line using
462 Beamlets may stick out of the side of beams.
465 @lilypond[fragment,ragged-right,relative=2]
467 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
468 \set stemLeftBeamCount = #2
471 \set stemRightBeamCount = #3
476 This feature was sponsored by Trevor Bača.
481 Vertical alignments of staves can now be tuned easily for individual
484 @lilypond[ragged-right]
485 #(set-global-staff-size 13)
492 #"Score.NonMusicalPaperColumn"
493 #'line-break-system-details
494 #'((fixed-alignment-extra-space . 15))
506 This feature was sponsored by Nicolas Sceaux.
509 Vertical spacing for page layout can now be tuned for each system
510 individually. The dimensions that can be tuned can be visualized.
513 #(set-default-paper-size "a7" 'landscape)
516 \paper { annotatespacing = ##t }
520 These features were sponsored by Trevor Bača and Nicolas Sceaux.
523 The slope of a stem-tremolo may be set manually
525 @lilypond[fragment,relative=1,ragged-right]
527 \once \override StemTremolo #'slope = #0.45
531 This feature was sponsored by Sven Axelsson.
534 Laissez vibrer ties can be created with @code{\laissezVibrer},
536 @lilypond[fragment,ragged-right,relative=1]
537 <c e g>\laissezVibrer r <d f>\laissezVibrer
540 This feature was sponsored by Henrik Frisk.
543 The order of words in @code{\markup} commands may now be reversed by
544 setting the @code{text-direction} property. This is useful for
545 Right-to-Left languages like Hebrew.
547 This feature was sponsored by Aaron Mehl.
550 Texts over multi measure rests can stretch the corresponding measure,
551 if the appropriate @code{spring-and-rods} callback is set.
553 @lilypond[relative=2,fragment,ragged-right]
554 \override MultiMeasureRestText #'springs-and-rods
555 = #ly:multi-measure-rest::set-text-rods
556 c1 R1 R1^"Very long long long text"
559 This feature was sponsored by Kris Shaffer.
562 @item @textanchor{tie-chords}
563 Formatting of ties in chords has been improved. Ties no longer collide
564 with note heads and stems. In addition, it is possible to manually
565 specify tie formatting
567 @lilypond[relative=2, fragment,ragged-right]
568 <a c d f> ~ <a c d f>
570 \override TieColumn #'tie-configuration =
571 #'((0 . -1) '() (5.5 . 1) (7 . 1))
572 <b d f g> ~ <b d f g>
575 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
576 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
580 Formatting of isolated, single ties has been improved. Now, ties avoid
581 staff lines, flags and dots, without compromising their shape.
583 @lilypond[fragment,ragged-right]
586 c16 c2...~ c16 ~ c2... |
587 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
591 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
592 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
596 @item @textanchor{repeat-counter}
597 With the @code{countPercentRepeats} property,
598 percent repeats get incremental numbers to indicate the accumulated repeat count.
600 @lilypond[relative=2,fragment,ragged-right]
601 \set countPercentRepeats = ##t
602 \repeat percent 4 { c1 }
604 \repeat percent 4 { c2 c2 }
607 This feature was sponsored by Yoshinobu Ishizaki
610 Text scripts such as fingering instructions and dynamics avoid
611 collisions with slurs
613 @lilypond[fragment,relative=1]
615 b_1( f'_1_2_3 c_3_4_5 a)
617 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
622 Tuplets can be made to reach the next non-tuplet note by setting the
623 @code{tupletFullLength} property,
625 @lilypond[fragment,relative=2]
627 \remove Forbid_line_break_engraver
631 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
632 \set tupletFullLength = ##t
633 \times 2/3 { c8[ c c] }
638 This feature was sponsored by Trevor Bača.
641 When @code{strict-note-spacing} is set, notes are spaced without regard
642 for clefs, bar lines, and grace notes. For example,
644 @lilypond[fragment,relative=2]
645 \override Score.SpacingSpanner #'strict-note-spacing = ##t
646 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
649 This feature was sponsored by Trevor Bača.
652 Beams support the @code{break-overshoot} property, for example
654 @lilypond[relative=2,fragment]
655 \set allowBeamBreak = ##t
656 \override Beam #'break-overshoot = #'(1.0 . 2.0)
660 This feature was sponsored by Trevor Bača.
663 Proportional notation is supported. Notes can be spaced proportional
664 to their time-difference by assigning a duration to
665 @code{proportionalNotationDuration}. For example,
667 @lilypond[relative=2,fragment,ragged-right]
669 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
670 \new Staff { c8[ c c c c c] c4 c2 r2 }
671 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
675 This feature was sponsored by Trevor Bača.
678 Symbol sizes (e.g. accidentals) are disregarded for spacing if
679 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
682 @lilypond[relative=2,fragment]
684 \override Score.SpacingSpanner #'uniform-stretching = ##t
685 \new Staff { c16[ c c c c c c c c c16] }
687 \times 6/7 { c16 c c cis c c c }
693 This feature was sponsored by Trevor Bača.
696 Endings of broken tuplet brackets can be tuned. For example, you can
697 add arrows to the brackets,
699 @lilypond[fragment,ragged-right,relative=2]
700 \override TupletBracket
702 (markup #:arrow-head X LEFT #f)
703 (markup #:arrow-head X RIGHT #f))
705 c c c \bar "empty" \break c c
709 This feature was sponsored by Trevor Bača.
712 @item @textanchor{arrow-glyph}
713 Arrow heads were added to the Feta font.
718 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
719 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
724 These glyphs have been sponsored by Trevor Bača.
728 Nested tuplets are automatically positioned,
730 @lilypond[fragment,ragged-right,relative=2]
731 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
734 \times 3/5 { a a a a a }
738 This feature was sponsored by Trevor Bača.
741 Music expressions can be displayed, in LilyPond notation, using the
742 new @code{\displayLilyMusic} function. For instance:
744 \displayLilyMusic \transpose c a, { c d e f }
751 This feature was contributed by Nicolas Sceaux.
754 The current bar number may be checked with @code{\barNumberCheck}, eg.
761 will print a warning if it doesn't happen in measure 22.
764 If @code{showLastLength} is set, only the last few measures of a piece
765 are rendered, which speeds up correcting scores. For example, setting
768 showLastLength = R1*5
773 will render only the last five measures (assuming 4/4 time signature)
776 @item @textanchor{simple-melismata}
777 Melismata can be specified simply in the lyrics now, eg.
779 @lilypond[relative=1,verbatim,fragment]
787 This feature was sponsored by Nancho Alvarez
790 Suggested accidentals (for notating musica ficta) may be switched on
791 with @code{suggestAccidentals}
793 @lilypond[verbatim,fragment,relative=2]
794 \set suggestAccidentals = ##t
798 This feature was sponsored by Nancho Alvarez.
801 The setting @code{whichBar} and time-bookkeeping is now split into a
802 @code{Default_bar_line_engraver} and @code{Timing_translator}
805 @item @textanchor{pitched-trill}
806 Explicit pitches may be added to trills,
808 @lilypond[relative,verbatim,fragment]
809 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
812 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
815 Markup now supports formatting of text paragraphs, using
816 @code{\wordwrap} and @code{\justify}.
818 This feature was sponsored by Sven Axelsson.
822 For older news, go to
823 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
824 or @uref{../,go back} to the Documentation index.