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.
69 @item Items directly connected with a music input element may be
70 parenthesized, for example,
72 @lilypond[verbatim,ragged-right,fragment,relative=2]
74 <d \parenthesize fis a>
77 This feature was sponsored by Ramana Kumar.
80 variables in the @code{\paper} and @code{\layout} block are now
81 separated with dashes, i.e.
91 The same holds for analogous options in lilypond-book.
94 Music for multiple parts can be interleaved, similar to MUP input.
95 This is done with the @code{\parallelMusic} function,
97 @lilypond[verbatim,ragged-right]
98 \parallelMusic #'(voiceA voiceB) {
99 r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
101 r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
112 This feature was contributed by Nicolas Sceaux.
114 @item Alignments of staves may be tuned per system.
116 #(set-global-staff-size 13)
118 \relative c'' \new StaffGroup <<
123 #"Score.NonMusicalPaperColumn"
124 #'line-break-system-details
125 #'((alignment-offsets . (0 -5 -20)))
128 #"Score.NonMusicalPaperColumn"
129 #'line-break-system-details
130 #'((alignment-offsets . (0 -15 -20)))
136 This feature was sponsored by Trevor Bača.
138 @item Individual systems may be positioned manually,
142 tagline = "lily was here"
145 #(set-default-paper-size "a7" 'landscape)
155 #"Score.NonMusicalPaperColumn"
156 #'line-break-system-details
164 annotateheaders = ##t
169 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
171 @item A linebreaking configuration can now be saved as a @file{.ly}
172 file automatically. This allows vertical alignments to be stretched to
173 fit pages in a second formatting run. See
174 @inputfileref{input/regression,page-layout-twopass.ly} for an
177 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
179 @item The tie formatting for chords has been further polished. More
180 cases are handled gracefully, and all scoring parameters may now be
181 changed through the @code{details} property of the @code{Tie} grob.
183 This refinement was sponsored by Steve Doonan.
185 @item Positions of staff lines may now be set individually, for
188 @lilypond[ragged-right]
189 \new Staff \relative c' {
190 \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 7)
195 This feature was sponsored by Andrea Valle.
198 @item A MusicXML importer is included now.
200 It was sponsored by among others, Mark van den Borre,
201 and Muziekacademie Lede.
204 Stem direction on the center staff line are now interpolated between
205 neighbors. This results in less stem direction changes, leading to a
206 more even appearance. For example,
208 @lilypond[ragged-right]
216 This feature was sponsored by Mike Rolish and Basil Crow.
219 Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
222 @lilypond[ragged-right]
225 \override TupletBracket #'bracket-visibility = ##f
226 \override TupletBracket #'staff-padding = ##f
227 \override Slur #'details #'region-size = #6
231 c( \stemDown g' \stemNeutral c,)
236 This feature was sponsored by Trent Johnston.
239 @item Tuplet brackets and numbers are implemented as separate grobs,
240 @code{TupletBracket} and @code{TupletNumber}.
242 This rewrite was sponsored by Trent Johnston.
244 @item String arguments for music functions may be specified without
245 @code{#} marks. Now, \clef and \bar are also music functions.
247 @item Ties in chords are also formatted using a scoring based
248 formatting. This reduces the number of collisions for ties in chords,
250 @lilypond[ragged-right,fragment,relative=2]
251 <b d f g> ~ <b d f g>
254 Here, the tie for the D is flipped, in spite the default rule for
257 This rewrite was sponsored by Steve Doonan.
259 @item With the @code{\tweak} music function, layout objects that are directly
260 connected to input may be tuned easily,
262 @lilypond[relative=2,fragment,verbatim,ragged-right]
264 \tweak #'font-size #3 c
265 \tweak #'color #red d
266 \tweak #'style #'cross g
267 \tweak #'duration-log #1 a
271 This feature was sponsored by Sean Reed and Bertalan Fodor.
273 @item Generic music functions may now also be used on articulations
274 and chord elements, eg.
278 e-\keepWithTag #'bla -\tag #'bla ^2 >
281 This feature was sponsored by Sean Reed and Bertalan Fodor.
284 @item Spaces between lyrics and distance between syllables with
285 hyphens may now be separately tuned through the
286 @code{LyricSpace} grob.
288 This feature has been sponsored by Bertalan Fodor.
290 @item Texts set in a TrueType font are now kerned. This requires CVS
293 @lilypond[relative=2,fragment,ragged-right]
298 @item Using the @TeX{} no longer requires linking or dynamically
299 opening the kpathsea library, making the backend more easily usable on
302 This fix was sponsored by Black Trash Productions.
304 @item The horizontal location of rehearsal marks can be adjusted by
305 setting the @code{rehearsalMarkAlignSymbol} property,
307 @lilypond[ragged-right]
312 \set Score.rehearsalMarkAlignSymbol = #'key-signature
316 \set Score.rehearsalMarkAlignSymbol = #'clef
324 This feature was sponsored by Trevor Bača.
328 It's now possible to easily create deeply nested system start
331 @lilypond[ragged-right]
334 \set StaffGroup.systemStartDelimiterHierarchy
335 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
345 In addition, there is now also support for ``square'' system start
348 This feature was sponsored by Trevor Bača.
351 Tie formatting now uses scoring. This opens the road to formatting
352 which handles complex situations require tradeoffs between different
355 This refactoring has been sponsored by Steve Doonan.
358 Each grob property may also be a ``grob closure.'' This means that it
359 is possible to combine functions. For example, the @code{Y-offset} of
360 a @code{InstrumentName} grob is defined to be
363 ,(ly:make-simple-closure
365 ,(ly:make-simple-closure
366 (,ly:self-alignment-interface::y-aligned-on-self))
367 ,(ly:make-simple-closure
368 (,ly:side-position-interface::y-aligned-on-support-refpoints)))
372 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
376 (+ (ly:self-alignment-interface::y-aligned-on-self @var{grob})
377 (ly:self-alignment-interface::y-aligned-on-support-refpoints @var{grob}))
382 Calculation of extent and offset of grob is now controlled via the
383 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
384 properties, for example
387 \override TextScript #'Y-offset = #-6
391 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
395 Each grob property can be a procedure. If this is the case, it is
396 assumed to be a routine that calculates said property. This is a
397 major internal cleanup, which also provides advanced tweakability for
398 power users. For example,
401 \override Beam #'direction
403 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
409 With this code fragment, the direction of a beam is decided to be up
410 or down, depending on the number of stems in the beam.
414 Support for figured bass has been rewritten. Now it supports
415 continuation lines, slashed figures, and its figures, brackets, and
416 alignments may tuned separately.
418 @lilypond[ragged-right,fragment]
420 \relative { c4 c c c }
422 \set useBassFigureExtenders = ##t
423 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
427 This rewrite was sponsored by Trent Johnston and John Mandereau.
430 Subproperties, like the @code{details} field of @code{Slur} and
431 @code{Tie} may now be tuned with @code{\override}. For example,
434 \override Stem #'details #'beamed-lengths = #'(4 4 3)
438 shortens the stems in beams.
441 The default paper size may now be set from the command line using
445 Beamlets may stick out of the side of beams.
448 @lilypond[fragment,ragged-right,relative=2]
450 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
451 \set stemLeftBeamCount = #2
454 \set stemRightBeamCount = #3
459 This feature was sponsored by Trevor Bača.
464 Vertical alignments of staves can now be tuned easily for individual
467 @lilypond[ragged-right]
468 #(set-global-staff-size 13)
475 #"Score.NonMusicalPaperColumn"
476 #'line-break-system-details
477 #'((fixed-alignment-extra-space . 15))
489 This feature was sponsored by Nicolas Sceaux.
492 Vertical spacing for page layout can now be tuned for each system
493 individually. The dimensions that can be tuned can be visualized.
496 #(set-default-paper-size "a7" 'landscape)
499 \paper { annotatespacing = ##t }
503 These features were sponsored by Trevor Bača and Nicolas Sceaux.
506 The slope of a stem-tremolo may be set manually
508 @lilypond[fragment,relative=1,ragged-right]
510 \once \override StemTremolo #'slope = #0.45
514 This feature was sponsored by Sven Axelsson.
517 Laissez vibrer ties can be created with @code{\laissezVibrer},
519 @lilypond[fragment,ragged-right,relative=1]
520 <c e g>\laissezVibrer r <d f>\laissezVibrer
523 This feature was sponsored by Henrik Frisk.
526 The order of words in @code{\markup} commands may now be reversed by
527 setting the @code{text-direction} property. This is useful for
528 Right-to-Left languages like Hebrew.
530 This feature was sponsored by Aaron Mehl.
533 Texts over multi measure rests can stretch the corresponding measure,
534 if the appropriate @code{spring-and-rods} callback is set.
536 @lilypond[relative=2,fragment,ragged-right]
537 \override MultiMeasureRestText #'springs-and-rods
538 = #ly:multi-measure-rest::set-text-rods
539 c1 R1 R1^"Very long long long text"
542 This feature was sponsored by Kris Shaffer.
545 @item @textanchor{tie-chords}
546 Formatting of ties in chords has been improved. Ties no longer collide
547 with note heads and stems. In addition, it is possible to manually
548 specify tie formatting
550 @lilypond[relative=2, fragment,ragged-right]
551 <a c d f> ~ <a c d f>
553 \override TieColumn #'tie-configuration =
554 #'((0 . -1) '() (5.5 . 1) (7 . 1))
555 <b d f g> ~ <b d f g>
558 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
559 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
563 Formatting of isolated, single ties has been improved. Now, ties avoid
564 staff lines, flags and dots, without compromising their shape.
566 @lilypond[fragment,ragged-right]
569 c16 c2...~ c16 ~ c2... |
570 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
574 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
575 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
579 @item @textanchor{repeat-counter}
580 With the @code{countPercentRepeats} property,
581 percent repeats get incremental numbers to indicate the accumulated repeat count.
583 @lilypond[relative=2,fragment,ragged-right]
584 \set countPercentRepeats = ##t
585 \repeat percent 4 { c1 }
587 \repeat percent 4 { c2 c2 }
590 This feature was sponsored by Yoshinobu Ishizaki
593 Text scripts such as fingering instructions and dynamics avoid
594 collisions with slurs
596 @lilypond[fragment,relative=1]
598 b_1( f'_1_2_3 c_3_4_5 a)
600 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
605 Tuplets can be made to reach the next non-tuplet note by setting the
606 @code{tupletFullLength} property,
608 @lilypond[fragment,relative=2]
610 \remove Forbid_line_break_engraver
614 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
615 \set tupletFullLength = ##t
616 \times 2/3 { c8[ c c] }
621 This feature was sponsored by Trevor Bača.
624 When @code{strict-note-spacing} is set, notes are spaced without regard
625 for clefs, bar lines, and grace notes. For example,
627 @lilypond[fragment,relative=2]
628 \override Score.SpacingSpanner #'strict-note-spacing = ##t
629 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
632 This feature was sponsored by Trevor Bača.
635 Beams support the @code{break-overshoot} property, for example
637 @lilypond[relative=2,fragment]
638 \set allowBeamBreak = ##t
639 \override Beam #'break-overshoot = #'(1.0 . 2.0)
643 This feature was sponsored by Trevor Bača.
646 Proportional notation is supported. Notes can be spaced proportional
647 to their time-difference by assigning a duration to
648 @code{proportionalNotationDuration}. For example,
650 @lilypond[relative=2,fragment,ragged-right]
652 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
653 \new Staff { c8[ c c c c c] c4 c2 r2 }
654 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
658 This feature was sponsored by Trevor Bača.
661 Symbol sizes (e.g. accidentals) are disregarded for spacing if
662 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
665 @lilypond[relative=2,fragment]
667 \override Score.SpacingSpanner #'uniform-stretching = ##t
668 \new Staff { c16[ c c c c c c c c c16] }
670 \times 6/7 { c16 c c cis c c c }
676 This feature was sponsored by Trevor Bača.
679 Endings of broken tuplet brackets can be tuned. For example, you can
680 add arrows to the brackets,
682 @lilypond[fragment,ragged-right,relative=2]
683 \override TupletBracket
685 (markup #:arrow-head X LEFT #f)
686 (markup #:arrow-head X RIGHT #f))
688 c c c \bar "empty" \break c c
692 This feature was sponsored by Trevor Bača.
695 @item @textanchor{arrow-glyph}
696 Arrow heads were added to the Feta font.
701 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
702 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
707 These glyphs have been sponsored by Trevor Bača.
711 Nested tuplets are automatically positioned,
713 @lilypond[fragment,ragged-right,relative=2]
714 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
717 \times 3/5 { a a a a a }
721 This feature was sponsored by Trevor Bača.
724 Music expressions can be displayed, in LilyPond notation, using the
725 new @code{\displayLilyMusic} function. For instance:
727 \displayLilyMusic \transpose c a, { c d e f }
734 This feature was contributed by Nicolas Sceaux.
737 The current bar number may be checked with @code{\barNumberCheck}, eg.
744 will print a warning if it doesn't happen in measure 22.
747 If @code{showLastLength} is set, only the last few measures of a piece
748 are rendered, which speeds up correcting scores. For example, setting
751 showLastLength = R1*5
756 will render only the last five measures (assuming 4/4 time signature)
759 @item @textanchor{simple-melismata}
760 Melismata can be specified simply in the lyrics now, eg.
762 @lilypond[relative=1,verbatim,fragment]
770 This feature was sponsored by Nancho Alvarez
773 Suggested accidentals (for notating musica ficta) may be switched on
774 with @code{suggestAccidentals}
776 @lilypond[verbatim,fragment,relative=2]
777 \set suggestAccidentals = ##t
781 This feature was sponsored by Nancho Alvarez.
784 The setting @code{whichBar} and time-bookkeeping is now split into a
785 @code{Default_bar_line_engraver} and @code{Timing_translator}
788 @item @textanchor{pitched-trill}
789 Explicit pitches may be added to trills,
791 @lilypond[relative,verbatim,fragment]
792 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
795 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
798 Markup now supports formatting of text paragraphs, using
799 @code{\wordwrap} and @code{\justify}.
801 This feature was sponsored by Sven Axelsson.
805 For older news, go to
806 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
807 or @uref{../,go back} to the Documentation index.