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}
50 @item Parallel editing is possible using the \parallelMusic function:
51 @lilypond[verbatim,raggedright]
52 \parallelMusic #'(voiceA voiceB voiceC) {
54 r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
55 r16 e'8. ~ e'4 r16 e'8. ~ e'4 |
58 r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
59 r16 d'8. ~ d'4 r16 d'8. ~ d'4 |
63 \context Staff = "up" <<
64 \new Voice { \voiceOne \voiceA }
65 \new Voice { \voiceTwo \voiceB }
67 \context Staff = "down" <<
68 \new Voice { \clef bass \voiceC }
73 @item Alignments of staves may be tuned per system.
75 #(set-global-staff-size 13)
77 \relative c'' \new StaffGroup <<
82 #"Score.NonMusicalPaperColumn"
83 #'line-break-system-details
84 #'((alignment-offsets . (0 -5 -20)))
87 #"Score.NonMusicalPaperColumn"
88 #'line-break-system-details
89 #'((alignment-offsets . (0 -15 -20)))
95 This feature was sponsored by Trevor Bača.
97 @item Individual systems may be positioned manually,
101 tagline = "lily was here"
104 #(set-default-paper-size "a7" 'landscape)
114 #"Score.NonMusicalPaperColumn"
115 #'line-break-system-details
123 annotateheaders = ##t
128 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
130 @item A linebreaking configuration can now be saved as a @file{.ly}
131 file automatically. This allows vertical alignments to be stretched to
132 fit pages in a second formatting run. See
133 @inputfileref{input/regression,page-layout-twopass.ly} for an
136 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
138 @item The tie formatting for chords has been further polished. More
139 cases are handled gracefully, and all scoring parameters may now be
140 changed through the @code{details} property of the @code{Tie} grob.
142 This refinement was sponsored by Steve Doonan.
144 @item Positions of staff lines may now be set individually, for
147 @lilypond[raggedright]
148 \new Staff \relative c' {
149 \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 7)
154 This feature was sponsored by Andrea Valle.
157 @item A MusicXML importer is included now.
159 It was sponsored by among others, Mark van den Borre,
160 and Muziekacademie Lede.
163 Stem direction on the center staff line are now interpolated between
164 neighbors. This results in less stem direction changes, leading to a
165 more even appearance. For example,
167 @lilypond[raggedright]
175 This feature was sponsored by Mike Rolish and Basil Crow.
178 Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
181 @lilypond[raggedright]
184 \override TupletBracket #'bracket-visibility = ##f
185 \override TupletBracket #'staff-padding = ##f
186 \override Slur #'details #'region-size = #6
190 c( \stemDown g' \stemNeutral c,)
195 This feature was sponsored by Trent Johnston.
198 @item Tuplet brackets and numbers are implemented as separate grobs,
199 @code{TupletBracket} and @code{TupletNumber}.
201 This rewrite was sponsored by Trent Johnston.
203 @item String arguments for music functions may be specified without
204 @code{#} marks. This allows syntactical constructs (like \clef and
205 \bar) to be expressed in generic music functions.
207 @item Ties in chords are also formatted using a scoring based
208 formatting. This reduces the number of collisions for ties in chords,
210 @lilypond[raggedright,fragment,relative=2]
211 <b d f g> ~ <b d f g>
214 Here, the tie for the D is flipped, in spite the default rule for
217 This rewrite was sponsored by Steve Doonan.
219 @item With the @code{\tweak} music function, layout objects that are directly
220 connected to input may be tuned easily,
222 @lilypond[relative=2,fragment,verbatim,raggedright]
224 \tweak #'font-size #3 c
225 \tweak #'color #red d
226 \tweak #'style #'cross g
227 \tweak #'duration-log #1 a
231 This feature was sponsored by Sean Reed and Bertalan Fodor.
233 @item Generic music functions may now also be used on articulations
234 and chord elements, eg.
238 e-\keepWithTag #'bla -\tag #'bla ^2 >
241 This feature was sponsored by Sean Reed and Bertalan Fodor.
244 @item Spaces between lyrics and distance between syllables with
245 hyphens may now be separately tuned through the
246 @code{LyricSpace} grob.
248 This feature has been sponsored by Bertalan Fodor.
250 @item Texts set in a TrueType font are now kerned. This requires CVS
253 @lilypond[relative=2,fragment,raggedright]
258 @item Using the @TeX{} no longer requires linking or dynamically
259 opening the kpathsea library, making the backend more easily usable on
262 This fix was sponsored by Black Trash Productions.
264 @item The horizontal location of rehearsal marks can be adjusted by
265 setting the @code{rehearsalMarkAlignSymbol} property,
267 @lilypond[raggedright]
272 \set Score.rehearsalMarkAlignSymbol = #'key-signature
276 \set Score.rehearsalMarkAlignSymbol = #'clef
284 This feature was sponsored by Trevor Bača.
288 It's now possible to easily create deeply nested system start
291 @lilypond[raggedright]
294 \set StaffGroup.systemStartDelimiterHierarchy
295 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
305 In addition, there is now also support for ``square'' system start
308 This feature was sponsored by Trevor Bača.
311 Tie formatting now uses scoring. This opens the road to formatting
312 which handles complex situations require tradeoffs between different
315 This refactoring has been sponsored by Steve Doonan.
318 Each grob property may also be a ``grob closure.'' This means that it
319 is possible to combine functions. For example, the @code{Y-offset} of
320 a @code{InstrumentName} grob is defined to be
323 ,(ly:make-simple-closure
325 ,(ly:make-simple-closure
326 (,Self_alignment_interface::y_aligned_on_self))
327 ,(ly:make-simple-closure
328 (,Side_position_interface::y_aligned_on_support_refpoints)))
332 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
336 (+ (Self_alignment_interface::y_aligned_on_self @var{grob})
337 (Self_alignment_interface::y_aligned_on_support_refpoints @var{grob}))
342 Calculation of extent and offset of grob is now controlled via the
343 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
344 properties, for example
347 \override TextScript #'Y-offset = #-6
351 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
355 Each grob property can be a procedure. If this is the case, it is
356 assumed to be a routine that calculates said property. This is a
357 major internal cleanup, which also provides advanced tweakability for
358 power users. For example,
361 \override Beam #'direction
363 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
369 With this code fragment, the direction of a beam is decided to be up
370 or down, depending on the number of stems in the beam.
374 Support for figured bass has been rewritten. Now it supports
375 continuation lines, slashed figures, and its figures, brackets, and
376 alignments may tuned separately.
378 @lilypond[raggedright,fragment]
380 \relative { c4 c c c }
382 \set useBassFigureExtenders = ##t
383 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
387 This rewrite was sponsored by Trent Johnston and John Mandereau.
390 Subproperties, like the @code{details} field of @code{Slur} and
391 @code{Tie} may now be tuned with @code{\override}. For example,
394 \override Stem #'details #'beamed-lengths = #'(4 4 3)
398 shortens the stems in beams.
401 The default paper size may now be set from the command line using
405 Beamlets may stick out of the side of beams.
408 @lilypond[fragment,raggedright,relative=2]
410 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
411 \set stemLeftBeamCount = #2
414 \set stemRightBeamCount = #3
419 This feature was sponsored by Trevor Bača.
424 Vertical alignments of staves can now be tuned easily for individual
427 @lilypond[raggedright]
428 #(set-global-staff-size 13)
435 #"Score.NonMusicalPaperColumn"
436 #'line-break-system-details
437 #'((fixed-alignment-extra-space . 15))
449 This feature was sponsored by Nicolas Sceaux.
452 Vertical spacing for page layout can now be tuned for each system
453 individually. The dimensions that can be tuned can be visualized.
456 #(set-default-paper-size "a7" 'landscape)
459 \paper { annotatespacing = ##t }
463 These features were sponsored by Trevor Bača and Nicolas Sceaux.
466 The slope of a stem-tremolo may be set manually
468 @lilypond[fragment,relative=1,raggedright]
470 \once \override StemTremolo #'slope = #0.45
474 This feature was sponsored by Sven Axelsson.
477 Laissez vibrer ties can be created with @code{\laissezVibrer},
479 @lilypond[fragment,raggedright,relative=1]
480 <c e g>\laissezVibrer r <d f>\laissezVibrer
483 This feature was sponsored by Henrik Frisk.
486 The order of words in @code{\markup} commands may now be reversed by
487 setting the @code{text-direction} property. This is useful for
488 Right-to-Left languages like Hebrew.
490 This feature was sponsored by Aaron Mehl.
493 Texts over multi measure rests can stretch the corresponding measure,
494 if the appropriate @code{spring-and-rods} callback is set.
496 @lilypond[relative=2,fragment,raggedright]
497 \override MultiMeasureRestText #'springs-and-rods
498 = #Multi_measure_rest::set_text_rods
499 c1 R1 R1^"Very long long long text"
502 This feature was sponsored by Kris Shaffer.
505 @item @textanchor{tie-chords}
506 Formatting of ties in chords has been improved. Ties no longer collide
507 with note heads and stems. In addition, it is possible to manually
508 specify tie formatting
510 @lilypond[relative=2, fragment,raggedright]
511 <a c d f> ~ <a c d f>
513 \override TieColumn #'tie-configuration =
514 #'((0 . -1) '() (5.5 . 1) (7 . 1))
515 <b d f g> ~ <b d f g>
518 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
519 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
523 Formatting of isolated, single ties has been improved. Now, ties avoid
524 staff lines, flags and dots, without compromising their shape.
526 @lilypond[fragment,raggedright]
529 c16 c2...~ c16 ~ c2... |
530 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
534 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
535 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
539 @item @textanchor{repeat-counter}
540 With the @code{countPercentRepeats} property,
541 percent repeats get incremental numbers to indicate the accumulated repeat count.
543 @lilypond[relative=2,fragment,raggedright]
544 \set countPercentRepeats = ##t
545 \repeat percent 4 { c1 }
547 \repeat percent 4 { c2 c2 }
550 This feature was sponsored by Yoshinobu Ishizaki
553 Text scripts such as fingering instructions and dynamics avoid
554 collisions with slurs
556 @lilypond[fragment,relative=1]
558 b_1( f'_1_2_3 c_3_4_5 a)
560 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
565 Tuplets can be made to reach the next non-tuplet note by setting the
566 @code{tupletFullLength} property,
568 @lilypond[fragment,relative=2]
570 \remove Forbid_line_break_engraver
574 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
575 \set tupletFullLength = ##t
576 \times 2/3 { c8[ c c] }
581 This feature was sponsored by Trevor Bača.
584 When @code{strict-note-spacing} is set, notes are spaced without regard
585 for clefs, bar lines, and grace notes. For example,
587 @lilypond[fragment,relative=2]
588 \override Score.SpacingSpanner #'strict-note-spacing = ##t
589 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
592 This feature was sponsored by Trevor Bača.
595 Beams support the @code{break-overshoot} property, for example
597 @lilypond[relative=2,fragment]
598 \set allowBeamBreak = ##t
599 \override Beam #'break-overshoot = #'(1.0 . 2.0)
603 This feature was sponsored by Trevor Bača.
606 Proportional notation is supported. Notes can be spaced proportional
607 to their time-difference by assigning a duration to
608 @code{proportionalNotationDuration}. For example,
610 @lilypond[relative=2,fragment,raggedright]
612 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
613 \new Staff { c8[ c c c c c] c4 c2 r2 }
614 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
618 This feature was sponsored by Trevor Bača.
621 Symbol sizes (e.g. accidentals) are disregarded for spacing if
622 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
625 @lilypond[relative=2,fragment]
627 \override Score.SpacingSpanner #'uniform-stretching = ##t
628 \new Staff { c16[ c c c c c c c c c16] }
630 \times 6/7 { c16 c c cis c c c }
636 This feature was sponsored by Trevor Bača.
639 Endings of broken tuplet brackets can be tuned. For example, you can
640 add arrows to the brackets,
642 @lilypond[fragment,raggedright,relative=2]
643 \override TupletBracket
645 (markup #:arrow-head X LEFT #f)
646 (markup #:arrow-head X RIGHT #f))
648 c c c \bar "empty" \break c c
652 This feature was sponsored by Trevor Bača.
655 @item @textanchor{arrow-glyph}
656 Arrow heads were added to the Feta font.
661 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
662 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
667 These glyphs have been sponsored by Trevor Bača.
671 Nested tuplets are automatically positioned,
673 @lilypond[fragment,raggedright,relative=2]
674 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
677 \times 3/5 { a a a a a }
681 This feature was sponsored by Trevor Bača.
684 Music expressions can be displayed, in LilyPond notation, using the
685 new @code{\displayLilyMusic} function. For instance:
687 \displayLilyMusic \transpose c a, { c d e f }
694 This feature was contributed by Nicolas Sceaux.
697 The current bar number may be checked with @code{\barNumberCheck}, eg.
704 will print a warning if it doesn't happen in measure 22.
707 If @code{showLastLength} is set, only the last few measures of a piece
708 are rendered, which speeds up correcting scores. For example, setting
711 showLastLength = R1*5
716 will render only the last five measures (assuming 4/4 time signature)
719 @item @textanchor{simple-melismata}
720 Melismata can be specified simply in the lyrics now, eg.
722 @lilypond[relative=1,verbatim,fragment]
730 This feature was sponsored by Nancho Alvarez
733 Suggested accidentals (for notating musica ficta) may be switched on
734 with @code{suggestAccidentals}
736 @lilypond[verbatim,fragment,relative=2]
737 \set suggestAccidentals = ##t
741 This feature was sponsored by Nancho Alvarez.
744 The setting @code{whichBar} and time-bookkeeping is now split into a
745 @code{Default_bar_line_engraver} and @code{Timing_translator}
748 @item @textanchor{pitched-trill}
749 Explicit pitches may be added to trills,
751 @lilypond[relative,verbatim,fragment]
752 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
755 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
758 Markup now supports formatting of text paragraphs, using
759 @code{\wordwrap} and @code{\justify}.
761 This feature was sponsored by Sven Axelsson.
765 For older news, go to
766 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
767 or @uref{../,go back} to the Documentation index.