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}
51 Music may for multiple parts can be interleaved, similar to MUP input.
52 This is done with the \parallelMusic function,
54 @lilypond[verbatim,raggedright]
55 \parallelMusic #'(voiceA voiceB) {
57 r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
59 r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
63 \context Staff = "up" <<
66 \context Staff = "down" <<
72 This feature was contributed by Nicolas Sceaux.
74 @item Alignments of staves may be tuned per system.
76 #(set-global-staff-size 13)
78 \relative c'' \new StaffGroup <<
83 #"Score.NonMusicalPaperColumn"
84 #'line-break-system-details
85 #'((alignment-offsets . (0 -5 -20)))
88 #"Score.NonMusicalPaperColumn"
89 #'line-break-system-details
90 #'((alignment-offsets . (0 -15 -20)))
96 This feature was sponsored by Trevor Bača.
98 @item Individual systems may be positioned manually,
102 tagline = "lily was here"
105 #(set-default-paper-size "a7" 'landscape)
115 #"Score.NonMusicalPaperColumn"
116 #'line-break-system-details
124 annotateheaders = ##t
129 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
131 @item A linebreaking configuration can now be saved as a @file{.ly}
132 file automatically. This allows vertical alignments to be stretched to
133 fit pages in a second formatting run. See
134 @inputfileref{input/regression,page-layout-twopass.ly} for an
137 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
139 @item The tie formatting for chords has been further polished. More
140 cases are handled gracefully, and all scoring parameters may now be
141 changed through the @code{details} property of the @code{Tie} grob.
143 This refinement was sponsored by Steve Doonan.
145 @item Positions of staff lines may now be set individually, for
148 @lilypond[raggedright]
149 \new Staff \relative c' {
150 \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 7)
155 This feature was sponsored by Andrea Valle.
158 @item A MusicXML importer is included now.
160 It was sponsored by among others, Mark van den Borre,
161 and Muziekacademie Lede.
164 Stem direction on the center staff line are now interpolated between
165 neighbors. This results in less stem direction changes, leading to a
166 more even appearance. For example,
168 @lilypond[raggedright]
176 This feature was sponsored by Mike Rolish and Basil Crow.
179 Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
182 @lilypond[raggedright]
185 \override TupletBracket #'bracket-visibility = ##f
186 \override TupletBracket #'staff-padding = ##f
187 \override Slur #'details #'region-size = #6
191 c( \stemDown g' \stemNeutral c,)
196 This feature was sponsored by Trent Johnston.
199 @item Tuplet brackets and numbers are implemented as separate grobs,
200 @code{TupletBracket} and @code{TupletNumber}.
202 This rewrite was sponsored by Trent Johnston.
204 @item String arguments for music functions may be specified without
205 @code{#} marks. This allows syntactical constructs (like \clef and
206 \bar) to be expressed in generic music functions.
208 @item Ties in chords are also formatted using a scoring based
209 formatting. This reduces the number of collisions for ties in chords,
211 @lilypond[raggedright,fragment,relative=2]
212 <b d f g> ~ <b d f g>
215 Here, the tie for the D is flipped, in spite the default rule for
218 This rewrite was sponsored by Steve Doonan.
220 @item With the @code{\tweak} music function, layout objects that are directly
221 connected to input may be tuned easily,
223 @lilypond[relative=2,fragment,verbatim,raggedright]
225 \tweak #'font-size #3 c
226 \tweak #'color #red d
227 \tweak #'style #'cross g
228 \tweak #'duration-log #1 a
232 This feature was sponsored by Sean Reed and Bertalan Fodor.
234 @item Generic music functions may now also be used on articulations
235 and chord elements, eg.
239 e-\keepWithTag #'bla -\tag #'bla ^2 >
242 This feature was sponsored by Sean Reed and Bertalan Fodor.
245 @item Spaces between lyrics and distance between syllables with
246 hyphens may now be separately tuned through the
247 @code{LyricSpace} grob.
249 This feature has been sponsored by Bertalan Fodor.
251 @item Texts set in a TrueType font are now kerned. This requires CVS
254 @lilypond[relative=2,fragment,raggedright]
259 @item Using the @TeX{} no longer requires linking or dynamically
260 opening the kpathsea library, making the backend more easily usable on
263 This fix was sponsored by Black Trash Productions.
265 @item The horizontal location of rehearsal marks can be adjusted by
266 setting the @code{rehearsalMarkAlignSymbol} property,
268 @lilypond[raggedright]
273 \set Score.rehearsalMarkAlignSymbol = #'key-signature
277 \set Score.rehearsalMarkAlignSymbol = #'clef
285 This feature was sponsored by Trevor Bača.
289 It's now possible to easily create deeply nested system start
292 @lilypond[raggedright]
295 \set StaffGroup.systemStartDelimiterHierarchy
296 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
306 In addition, there is now also support for ``square'' system start
309 This feature was sponsored by Trevor Bača.
312 Tie formatting now uses scoring. This opens the road to formatting
313 which handles complex situations require tradeoffs between different
316 This refactoring has been sponsored by Steve Doonan.
319 Each grob property may also be a ``grob closure.'' This means that it
320 is possible to combine functions. For example, the @code{Y-offset} of
321 a @code{InstrumentName} grob is defined to be
324 ,(ly:make-simple-closure
326 ,(ly:make-simple-closure
327 (,Self_alignment_interface::y_aligned_on_self))
328 ,(ly:make-simple-closure
329 (,Side_position_interface::y_aligned_on_support_refpoints)))
333 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
337 (+ (Self_alignment_interface::y_aligned_on_self @var{grob})
338 (Self_alignment_interface::y_aligned_on_support_refpoints @var{grob}))
343 Calculation of extent and offset of grob is now controlled via the
344 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
345 properties, for example
348 \override TextScript #'Y-offset = #-6
352 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
356 Each grob property can be a procedure. If this is the case, it is
357 assumed to be a routine that calculates said property. This is a
358 major internal cleanup, which also provides advanced tweakability for
359 power users. For example,
362 \override Beam #'direction
364 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
370 With this code fragment, the direction of a beam is decided to be up
371 or down, depending on the number of stems in the beam.
375 Support for figured bass has been rewritten. Now it supports
376 continuation lines, slashed figures, and its figures, brackets, and
377 alignments may tuned separately.
379 @lilypond[raggedright,fragment]
381 \relative { c4 c c c }
383 \set useBassFigureExtenders = ##t
384 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
388 This rewrite was sponsored by Trent Johnston and John Mandereau.
391 Subproperties, like the @code{details} field of @code{Slur} and
392 @code{Tie} may now be tuned with @code{\override}. For example,
395 \override Stem #'details #'beamed-lengths = #'(4 4 3)
399 shortens the stems in beams.
402 The default paper size may now be set from the command line using
406 Beamlets may stick out of the side of beams.
409 @lilypond[fragment,raggedright,relative=2]
411 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
412 \set stemLeftBeamCount = #2
415 \set stemRightBeamCount = #3
420 This feature was sponsored by Trevor Bača.
425 Vertical alignments of staves can now be tuned easily for individual
428 @lilypond[raggedright]
429 #(set-global-staff-size 13)
436 #"Score.NonMusicalPaperColumn"
437 #'line-break-system-details
438 #'((fixed-alignment-extra-space . 15))
450 This feature was sponsored by Nicolas Sceaux.
453 Vertical spacing for page layout can now be tuned for each system
454 individually. The dimensions that can be tuned can be visualized.
457 #(set-default-paper-size "a7" 'landscape)
460 \paper { annotatespacing = ##t }
464 These features were sponsored by Trevor Bača and Nicolas Sceaux.
467 The slope of a stem-tremolo may be set manually
469 @lilypond[fragment,relative=1,raggedright]
471 \once \override StemTremolo #'slope = #0.45
475 This feature was sponsored by Sven Axelsson.
478 Laissez vibrer ties can be created with @code{\laissezVibrer},
480 @lilypond[fragment,raggedright,relative=1]
481 <c e g>\laissezVibrer r <d f>\laissezVibrer
484 This feature was sponsored by Henrik Frisk.
487 The order of words in @code{\markup} commands may now be reversed by
488 setting the @code{text-direction} property. This is useful for
489 Right-to-Left languages like Hebrew.
491 This feature was sponsored by Aaron Mehl.
494 Texts over multi measure rests can stretch the corresponding measure,
495 if the appropriate @code{spring-and-rods} callback is set.
497 @lilypond[relative=2,fragment,raggedright]
498 \override MultiMeasureRestText #'springs-and-rods
499 = #Multi_measure_rest::set_text_rods
500 c1 R1 R1^"Very long long long text"
503 This feature was sponsored by Kris Shaffer.
506 @item @textanchor{tie-chords}
507 Formatting of ties in chords has been improved. Ties no longer collide
508 with note heads and stems. In addition, it is possible to manually
509 specify tie formatting
511 @lilypond[relative=2, fragment,raggedright]
512 <a c d f> ~ <a c d f>
514 \override TieColumn #'tie-configuration =
515 #'((0 . -1) '() (5.5 . 1) (7 . 1))
516 <b d f g> ~ <b d f g>
519 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
520 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
524 Formatting of isolated, single ties has been improved. Now, ties avoid
525 staff lines, flags and dots, without compromising their shape.
527 @lilypond[fragment,raggedright]
530 c16 c2...~ c16 ~ c2... |
531 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
535 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
536 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
540 @item @textanchor{repeat-counter}
541 With the @code{countPercentRepeats} property,
542 percent repeats get incremental numbers to indicate the accumulated repeat count.
544 @lilypond[relative=2,fragment,raggedright]
545 \set countPercentRepeats = ##t
546 \repeat percent 4 { c1 }
548 \repeat percent 4 { c2 c2 }
551 This feature was sponsored by Yoshinobu Ishizaki
554 Text scripts such as fingering instructions and dynamics avoid
555 collisions with slurs
557 @lilypond[fragment,relative=1]
559 b_1( f'_1_2_3 c_3_4_5 a)
561 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
566 Tuplets can be made to reach the next non-tuplet note by setting the
567 @code{tupletFullLength} property,
569 @lilypond[fragment,relative=2]
571 \remove Forbid_line_break_engraver
575 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
576 \set tupletFullLength = ##t
577 \times 2/3 { c8[ c c] }
582 This feature was sponsored by Trevor Bača.
585 When @code{strict-note-spacing} is set, notes are spaced without regard
586 for clefs, bar lines, and grace notes. For example,
588 @lilypond[fragment,relative=2]
589 \override Score.SpacingSpanner #'strict-note-spacing = ##t
590 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
593 This feature was sponsored by Trevor Bača.
596 Beams support the @code{break-overshoot} property, for example
598 @lilypond[relative=2,fragment]
599 \set allowBeamBreak = ##t
600 \override Beam #'break-overshoot = #'(1.0 . 2.0)
604 This feature was sponsored by Trevor Bača.
607 Proportional notation is supported. Notes can be spaced proportional
608 to their time-difference by assigning a duration to
609 @code{proportionalNotationDuration}. For example,
611 @lilypond[relative=2,fragment,raggedright]
613 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
614 \new Staff { c8[ c c c c c] c4 c2 r2 }
615 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
619 This feature was sponsored by Trevor Bača.
622 Symbol sizes (e.g. accidentals) are disregarded for spacing if
623 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
626 @lilypond[relative=2,fragment]
628 \override Score.SpacingSpanner #'uniform-stretching = ##t
629 \new Staff { c16[ c c c c c c c c c16] }
631 \times 6/7 { c16 c c cis c c c }
637 This feature was sponsored by Trevor Bača.
640 Endings of broken tuplet brackets can be tuned. For example, you can
641 add arrows to the brackets,
643 @lilypond[fragment,raggedright,relative=2]
644 \override TupletBracket
646 (markup #:arrow-head X LEFT #f)
647 (markup #:arrow-head X RIGHT #f))
649 c c c \bar "empty" \break c c
653 This feature was sponsored by Trevor Bača.
656 @item @textanchor{arrow-glyph}
657 Arrow heads were added to the Feta font.
662 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
663 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
668 These glyphs have been sponsored by Trevor Bača.
672 Nested tuplets are automatically positioned,
674 @lilypond[fragment,raggedright,relative=2]
675 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
678 \times 3/5 { a a a a a }
682 This feature was sponsored by Trevor Bača.
685 Music expressions can be displayed, in LilyPond notation, using the
686 new @code{\displayLilyMusic} function. For instance:
688 \displayLilyMusic \transpose c a, { c d e f }
695 This feature was contributed by Nicolas Sceaux.
698 The current bar number may be checked with @code{\barNumberCheck}, eg.
705 will print a warning if it doesn't happen in measure 22.
708 If @code{showLastLength} is set, only the last few measures of a piece
709 are rendered, which speeds up correcting scores. For example, setting
712 showLastLength = R1*5
717 will render only the last five measures (assuming 4/4 time signature)
720 @item @textanchor{simple-melismata}
721 Melismata can be specified simply in the lyrics now, eg.
723 @lilypond[relative=1,verbatim,fragment]
731 This feature was sponsored by Nancho Alvarez
734 Suggested accidentals (for notating musica ficta) may be switched on
735 with @code{suggestAccidentals}
737 @lilypond[verbatim,fragment,relative=2]
738 \set suggestAccidentals = ##t
742 This feature was sponsored by Nancho Alvarez.
745 The setting @code{whichBar} and time-bookkeeping is now split into a
746 @code{Default_bar_line_engraver} and @code{Timing_translator}
749 @item @textanchor{pitched-trill}
750 Explicit pitches may be added to trills,
752 @lilypond[relative,verbatim,fragment]
753 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
756 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
759 Markup now supports formatting of text paragraphs, using
760 @code{\wordwrap} and @code{\justify}.
762 This feature was sponsored by Sven Axelsson.
766 For older news, go to
767 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
768 or @uref{../,go back} to the Documentation index.