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.
65 Music may for multiple parts can be interleaved, similar to MUP input.
66 This is done with the @code{\parallelMusic} function,
68 @lilypond[verbatim,raggedright]
69 \parallelMusic #'(voiceA voiceB) {
70 r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
72 r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
83 This feature was contributed by Nicolas Sceaux.
85 @item Alignments of staves may be tuned per system.
87 #(set-global-staff-size 13)
89 \relative c'' \new StaffGroup <<
94 #"Score.NonMusicalPaperColumn"
95 #'line-break-system-details
96 #'((alignment-offsets . (0 -5 -20)))
99 #"Score.NonMusicalPaperColumn"
100 #'line-break-system-details
101 #'((alignment-offsets . (0 -15 -20)))
107 This feature was sponsored by Trevor Bača.
109 @item Individual systems may be positioned manually,
113 tagline = "lily was here"
116 #(set-default-paper-size "a7" 'landscape)
126 #"Score.NonMusicalPaperColumn"
127 #'line-break-system-details
135 annotateheaders = ##t
140 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
142 @item A linebreaking configuration can now be saved as a @file{.ly}
143 file automatically. This allows vertical alignments to be stretched to
144 fit pages in a second formatting run. See
145 @inputfileref{input/regression,page-layout-twopass.ly} for an
148 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
150 @item The tie formatting for chords has been further polished. More
151 cases are handled gracefully, and all scoring parameters may now be
152 changed through the @code{details} property of the @code{Tie} grob.
154 This refinement was sponsored by Steve Doonan.
156 @item Positions of staff lines may now be set individually, for
159 @lilypond[raggedright]
160 \new Staff \relative c' {
161 \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 7)
166 This feature was sponsored by Andrea Valle.
169 @item A MusicXML importer is included now.
171 It was sponsored by among others, Mark van den Borre,
172 and Muziekacademie Lede.
175 Stem direction on the center staff line are now interpolated between
176 neighbors. This results in less stem direction changes, leading to a
177 more even appearance. For example,
179 @lilypond[raggedright]
187 This feature was sponsored by Mike Rolish and Basil Crow.
190 Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
193 @lilypond[raggedright]
196 \override TupletBracket #'bracket-visibility = ##f
197 \override TupletBracket #'staff-padding = ##f
198 \override Slur #'details #'region-size = #6
202 c( \stemDown g' \stemNeutral c,)
207 This feature was sponsored by Trent Johnston.
210 @item Tuplet brackets and numbers are implemented as separate grobs,
211 @code{TupletBracket} and @code{TupletNumber}.
213 This rewrite was sponsored by Trent Johnston.
215 @item String arguments for music functions may be specified without
216 @code{#} marks. This allows syntactical constructs (like \clef and
217 \bar) to be expressed in generic music functions.
219 @item Ties in chords are also formatted using a scoring based
220 formatting. This reduces the number of collisions for ties in chords,
222 @lilypond[raggedright,fragment,relative=2]
223 <b d f g> ~ <b d f g>
226 Here, the tie for the D is flipped, in spite the default rule for
229 This rewrite was sponsored by Steve Doonan.
231 @item With the @code{\tweak} music function, layout objects that are directly
232 connected to input may be tuned easily,
234 @lilypond[relative=2,fragment,verbatim,raggedright]
236 \tweak #'font-size #3 c
237 \tweak #'color #red d
238 \tweak #'style #'cross g
239 \tweak #'duration-log #1 a
243 This feature was sponsored by Sean Reed and Bertalan Fodor.
245 @item Generic music functions may now also be used on articulations
246 and chord elements, eg.
250 e-\keepWithTag #'bla -\tag #'bla ^2 >
253 This feature was sponsored by Sean Reed and Bertalan Fodor.
256 @item Spaces between lyrics and distance between syllables with
257 hyphens may now be separately tuned through the
258 @code{LyricSpace} grob.
260 This feature has been sponsored by Bertalan Fodor.
262 @item Texts set in a TrueType font are now kerned. This requires CVS
265 @lilypond[relative=2,fragment,raggedright]
270 @item Using the @TeX{} no longer requires linking or dynamically
271 opening the kpathsea library, making the backend more easily usable on
274 This fix was sponsored by Black Trash Productions.
276 @item The horizontal location of rehearsal marks can be adjusted by
277 setting the @code{rehearsalMarkAlignSymbol} property,
279 @lilypond[raggedright]
284 \set Score.rehearsalMarkAlignSymbol = #'key-signature
288 \set Score.rehearsalMarkAlignSymbol = #'clef
296 This feature was sponsored by Trevor Bača.
300 It's now possible to easily create deeply nested system start
303 @lilypond[raggedright]
306 \set StaffGroup.systemStartDelimiterHierarchy
307 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
317 In addition, there is now also support for ``square'' system start
320 This feature was sponsored by Trevor Bača.
323 Tie formatting now uses scoring. This opens the road to formatting
324 which handles complex situations require tradeoffs between different
327 This refactoring has been sponsored by Steve Doonan.
330 Each grob property may also be a ``grob closure.'' This means that it
331 is possible to combine functions. For example, the @code{Y-offset} of
332 a @code{InstrumentName} grob is defined to be
335 ,(ly:make-simple-closure
337 ,(ly:make-simple-closure
338 (,Self_alignment_interface::y_aligned_on_self))
339 ,(ly:make-simple-closure
340 (,Side_position_interface::y_aligned_on_support_refpoints)))
344 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
348 (+ (Self_alignment_interface::y_aligned_on_self @var{grob})
349 (Self_alignment_interface::y_aligned_on_support_refpoints @var{grob}))
354 Calculation of extent and offset of grob is now controlled via the
355 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
356 properties, for example
359 \override TextScript #'Y-offset = #-6
363 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
367 Each grob property can be a procedure. If this is the case, it is
368 assumed to be a routine that calculates said property. This is a
369 major internal cleanup, which also provides advanced tweakability for
370 power users. For example,
373 \override Beam #'direction
375 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
381 With this code fragment, the direction of a beam is decided to be up
382 or down, depending on the number of stems in the beam.
386 Support for figured bass has been rewritten. Now it supports
387 continuation lines, slashed figures, and its figures, brackets, and
388 alignments may tuned separately.
390 @lilypond[raggedright,fragment]
392 \relative { c4 c c c }
394 \set useBassFigureExtenders = ##t
395 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
399 This rewrite was sponsored by Trent Johnston and John Mandereau.
402 Subproperties, like the @code{details} field of @code{Slur} and
403 @code{Tie} may now be tuned with @code{\override}. For example,
406 \override Stem #'details #'beamed-lengths = #'(4 4 3)
410 shortens the stems in beams.
413 The default paper size may now be set from the command line using
417 Beamlets may stick out of the side of beams.
420 @lilypond[fragment,raggedright,relative=2]
422 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
423 \set stemLeftBeamCount = #2
426 \set stemRightBeamCount = #3
431 This feature was sponsored by Trevor Bača.
436 Vertical alignments of staves can now be tuned easily for individual
439 @lilypond[raggedright]
440 #(set-global-staff-size 13)
447 #"Score.NonMusicalPaperColumn"
448 #'line-break-system-details
449 #'((fixed-alignment-extra-space . 15))
461 This feature was sponsored by Nicolas Sceaux.
464 Vertical spacing for page layout can now be tuned for each system
465 individually. The dimensions that can be tuned can be visualized.
468 #(set-default-paper-size "a7" 'landscape)
471 \paper { annotatespacing = ##t }
475 These features were sponsored by Trevor Bača and Nicolas Sceaux.
478 The slope of a stem-tremolo may be set manually
480 @lilypond[fragment,relative=1,raggedright]
482 \once \override StemTremolo #'slope = #0.45
486 This feature was sponsored by Sven Axelsson.
489 Laissez vibrer ties can be created with @code{\laissezVibrer},
491 @lilypond[fragment,raggedright,relative=1]
492 <c e g>\laissezVibrer r <d f>\laissezVibrer
495 This feature was sponsored by Henrik Frisk.
498 The order of words in @code{\markup} commands may now be reversed by
499 setting the @code{text-direction} property. This is useful for
500 Right-to-Left languages like Hebrew.
502 This feature was sponsored by Aaron Mehl.
505 Texts over multi measure rests can stretch the corresponding measure,
506 if the appropriate @code{spring-and-rods} callback is set.
508 @lilypond[relative=2,fragment,raggedright]
509 \override MultiMeasureRestText #'springs-and-rods
510 = #Multi_measure_rest::set_text_rods
511 c1 R1 R1^"Very long long long text"
514 This feature was sponsored by Kris Shaffer.
517 @item @textanchor{tie-chords}
518 Formatting of ties in chords has been improved. Ties no longer collide
519 with note heads and stems. In addition, it is possible to manually
520 specify tie formatting
522 @lilypond[relative=2, fragment,raggedright]
523 <a c d f> ~ <a c d f>
525 \override TieColumn #'tie-configuration =
526 #'((0 . -1) '() (5.5 . 1) (7 . 1))
527 <b d f g> ~ <b d f g>
530 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
531 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
535 Formatting of isolated, single ties has been improved. Now, ties avoid
536 staff lines, flags and dots, without compromising their shape.
538 @lilypond[fragment,raggedright]
541 c16 c2...~ c16 ~ c2... |
542 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
546 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
547 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
551 @item @textanchor{repeat-counter}
552 With the @code{countPercentRepeats} property,
553 percent repeats get incremental numbers to indicate the accumulated repeat count.
555 @lilypond[relative=2,fragment,raggedright]
556 \set countPercentRepeats = ##t
557 \repeat percent 4 { c1 }
559 \repeat percent 4 { c2 c2 }
562 This feature was sponsored by Yoshinobu Ishizaki
565 Text scripts such as fingering instructions and dynamics avoid
566 collisions with slurs
568 @lilypond[fragment,relative=1]
570 b_1( f'_1_2_3 c_3_4_5 a)
572 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
577 Tuplets can be made to reach the next non-tuplet note by setting the
578 @code{tupletFullLength} property,
580 @lilypond[fragment,relative=2]
582 \remove Forbid_line_break_engraver
586 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
587 \set tupletFullLength = ##t
588 \times 2/3 { c8[ c c] }
593 This feature was sponsored by Trevor Bača.
596 When @code{strict-note-spacing} is set, notes are spaced without regard
597 for clefs, bar lines, and grace notes. For example,
599 @lilypond[fragment,relative=2]
600 \override Score.SpacingSpanner #'strict-note-spacing = ##t
601 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
604 This feature was sponsored by Trevor Bača.
607 Beams support the @code{break-overshoot} property, for example
609 @lilypond[relative=2,fragment]
610 \set allowBeamBreak = ##t
611 \override Beam #'break-overshoot = #'(1.0 . 2.0)
615 This feature was sponsored by Trevor Bača.
618 Proportional notation is supported. Notes can be spaced proportional
619 to their time-difference by assigning a duration to
620 @code{proportionalNotationDuration}. For example,
622 @lilypond[relative=2,fragment,raggedright]
624 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
625 \new Staff { c8[ c c c c c] c4 c2 r2 }
626 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
630 This feature was sponsored by Trevor Bača.
633 Symbol sizes (e.g. accidentals) are disregarded for spacing if
634 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
637 @lilypond[relative=2,fragment]
639 \override Score.SpacingSpanner #'uniform-stretching = ##t
640 \new Staff { c16[ c c c c c c c c c16] }
642 \times 6/7 { c16 c c cis c c c }
648 This feature was sponsored by Trevor Bača.
651 Endings of broken tuplet brackets can be tuned. For example, you can
652 add arrows to the brackets,
654 @lilypond[fragment,raggedright,relative=2]
655 \override TupletBracket
657 (markup #:arrow-head X LEFT #f)
658 (markup #:arrow-head X RIGHT #f))
660 c c c \bar "empty" \break c c
664 This feature was sponsored by Trevor Bača.
667 @item @textanchor{arrow-glyph}
668 Arrow heads were added to the Feta font.
673 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
674 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
679 These glyphs have been sponsored by Trevor Bača.
683 Nested tuplets are automatically positioned,
685 @lilypond[fragment,raggedright,relative=2]
686 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
689 \times 3/5 { a a a a a }
693 This feature was sponsored by Trevor Bača.
696 Music expressions can be displayed, in LilyPond notation, using the
697 new @code{\displayLilyMusic} function. For instance:
699 \displayLilyMusic \transpose c a, { c d e f }
706 This feature was contributed by Nicolas Sceaux.
709 The current bar number may be checked with @code{\barNumberCheck}, eg.
716 will print a warning if it doesn't happen in measure 22.
719 If @code{showLastLength} is set, only the last few measures of a piece
720 are rendered, which speeds up correcting scores. For example, setting
723 showLastLength = R1*5
728 will render only the last five measures (assuming 4/4 time signature)
731 @item @textanchor{simple-melismata}
732 Melismata can be specified simply in the lyrics now, eg.
734 @lilypond[relative=1,verbatim,fragment]
742 This feature was sponsored by Nancho Alvarez
745 Suggested accidentals (for notating musica ficta) may be switched on
746 with @code{suggestAccidentals}
748 @lilypond[verbatim,fragment,relative=2]
749 \set suggestAccidentals = ##t
753 This feature was sponsored by Nancho Alvarez.
756 The setting @code{whichBar} and time-bookkeeping is now split into a
757 @code{Default_bar_line_engraver} and @code{Timing_translator}
760 @item @textanchor{pitched-trill}
761 Explicit pitches may be added to trills,
763 @lilypond[relative,verbatim,fragment]
764 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
767 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
770 Markup now supports formatting of text paragraphs, using
771 @code{\wordwrap} and @code{\justify}.
773 This feature was sponsored by Sven Axelsson.
777 For older news, go to
778 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
779 or @uref{../,go back} to the Documentation index.