2 \input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
7 @macro inputfileref{DIR,NAME}
8 @uref{../../\DIR\/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
10 @macro usermanref{NAME}
11 @inforef{\NAME\,,../user/lilypond/lilypond}@c
16 @macro inputfileref{DIR,NAME}
19 @macro usermanref{NAME}
20 See user manual, \NAME\
25 @macro textanchor{NAME}
32 @documentencoding utf-8
39 @unnumbered New features in 2.7 since 2.6
42 This document is also available in @uref{NEWS.pdf,PDF}. It's part of
43 the @uref{../,LilyPond Documentation}
55 * only show verbatim input for syntax/input changes
57 * try to be as brief possible in those cases
59 * don't try to provide real-world examples, they often get too big,
60 which scares away people.
62 * Write complete sentences.
64 * only show user-visible changes.
68 @item LilyPond PostScript output is now also compatible with GSView, a
69 PostScript viewer for the Windows platform.
71 @item The property @code{Score.skipTypesetting} is also respected
72 by the MIDI output now.
74 This feature was contributed by Johannes Schindelin.
76 @item A score may now be specified to take a fixed number of
77 systems, by setting the @code{system-count} variable in the
80 This feature was contributed by Joe Neeman.
82 @item Ties may now be attached to the left side of a note with
83 @code{\repeatTie}, for use with volta repeats.
85 @lilypond[relative=2,fragment,ragged-right]
89 This feature was sponsored by Steve Doonan.
91 @item Newly created contexts may also be named with the following
95 \new Voice = "alto" ...
98 @item Thicknesses of tie and slurs may be tuned separately for the
99 endings and the middle part.
101 @item Items directly connected with a music input element may be
102 parenthesized, for example,
104 @lilypond[verbatim,ragged-right,fragment,relative=2]
106 <d \parenthesize f a>
109 This feature was sponsored by Ramana Kumar.
112 variables in the @code{\paper} and @code{\layout} block are now
113 separated with dashes, i.e.
123 The same holds for analogous options in lilypond-book.
126 Music for multiple parts can be interleaved, similar to MUP input.
127 This is done with the @code{\parallelMusic} function,
129 @lilypond[verbatim,ragged-right]
130 \parallelMusic #'(voiceA voiceB) {
131 r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
133 r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
144 This feature was contributed by Nicolas Sceaux.
146 @item Alignments of staves may be tuned per system.
148 #(set-global-staff-size 13)
150 \relative c'' \new StaffGroup <<
155 #"Score.NonMusicalPaperColumn"
156 #'line-break-system-details
157 #'((alignment-offsets . (0 -5 -20)))
160 #"Score.NonMusicalPaperColumn"
161 #'line-break-system-details
162 #'((alignment-offsets . (0 -15 -20)))
168 This feature was sponsored by Trevor Bača.
170 @item Individual systems may be positioned manually,
174 tagline = "lily was here"
177 #(set-default-paper-size "a7" 'landscape)
179 head-separation = 0.0
180 foot-separation = 0.0
187 #"Score.NonMusicalPaperColumn"
188 #'line-break-system-details
196 annotate-headers = ##t
201 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
203 @item A linebreaking configuration can now be saved as a @file{.ly}
204 file automatically. This allows vertical alignments to be stretched to
205 fit pages in a second formatting run. See
206 @inputfileref{input/regression,page-layout-twopass.ly} for an
209 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
211 @item The tie formatting for chords has been further polished. More
212 cases are handled gracefully, and all scoring parameters may now be
213 changed through the @code{details} property of the @code{Tie} grob.
215 This refinement was sponsored by Steve Doonan.
217 @item Positions of staff lines may now be set individually, for
220 @lilypond[ragged-right]
221 \new Staff \relative c' {
222 \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 7)
227 This feature was sponsored by Andrea Valle.
230 @item A MusicXML importer is included now.
232 It was sponsored by among others, Mark van den Borre,
233 and Muziekacademie Lede.
236 Stem direction on the center staff line can now be interpolated
237 between neighbors. This results in less stem direction changes,
238 leading to a more even appearance. For example,
240 @lilypond[ragged-right]
242 \consists "Melody_engraver"
243 \revert Stem #'neutral-direction
252 This feature was sponsored by Mike Rolish and Basil Crow.
255 Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
258 @lilypond[ragged-right]
261 \override TupletBracket #'bracket-visibility = ##f
262 \override TupletBracket #'staff-padding = ##f
263 \override Slur #'details #'region-size = #6
267 c( \stemDown g' \stemNeutral c,)
272 This feature was sponsored by Trent Johnston.
275 @item Tuplet brackets and numbers are implemented as separate grobs,
276 @code{TupletBracket} and @code{TupletNumber}.
278 This rewrite was sponsored by Trent Johnston.
280 @item String arguments for music functions may be specified without
281 @code{#} marks. Now, \clef and \bar are also music functions.
283 @item Ties in chords are also formatted using a scoring based
284 formatting. This reduces the number of collisions for ties in chords,
286 @lilypond[ragged-right,fragment,relative=2]
287 <b d f g> ~ <b d f g>
290 Here, the tie for the D is flipped, in spite the default rule for
293 This rewrite was sponsored by Steve Doonan.
295 @item With the @code{\tweak} music function, layout objects that are directly
296 connected to input may be tuned easily,
298 @lilypond[relative=2,fragment,verbatim,ragged-right]
300 \tweak #'font-size #3 c
301 \tweak #'color #red d
302 \tweak #'style #'cross g
303 \tweak #'duration-log #1 a
307 This feature was sponsored by Sean Reed and Bertalan Fodor.
309 @item Generic music functions may now also be used on articulations
310 and chord elements, eg.
314 e-\keepWithTag #'bla -\tag #'bla ^2 >
317 This feature was sponsored by Sean Reed and Bertalan Fodor.
320 @item Spaces between lyrics and distance between syllables with
321 hyphens may now be separately tuned through the
322 @code{LyricSpace} grob.
324 This feature has been sponsored by Bertalan Fodor.
326 @item Texts set in a TrueType font are now kerned. This requires CVS
329 @lilypond[relative=2,fragment,ragged-right]
334 @item Using the @TeX{} no longer requires linking or dynamically
335 opening the kpathsea library, making the backend more easily usable on
338 This fix was sponsored by Black Trash Productions.
340 @item The horizontal location of rehearsal marks can be adjusted by
341 setting the @code{rehearsalMarkAlignSymbol} property,
343 @lilypond[ragged-right]
348 \override Score.RehearsalMark #'break-align-symbol = #'key-signature
352 \override Score.RehearsalMark #'break-align-symbol = #'clef
360 This feature was sponsored by Trevor Bača.
364 It's now possible to easily create deeply nested system start
367 @lilypond[ragged-right]
370 \set StaffGroup.systemStartDelimiterHierarchy
371 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
381 In addition, there is now also support for ``square'' system start
384 This feature was sponsored by Trevor Bača.
387 Tie formatting now uses scoring. This opens the road to formatting
388 which handles complex situations require tradeoffs between different
391 This refactoring has been sponsored by Steve Doonan.
394 Each grob property may also be a ``grob closure.'' This means that it
395 is possible to combine functions. For example, the @code{Y-offset} of
396 a @code{InstrumentName} grob is defined to be
399 ,(ly:make-simple-closure
401 ,(ly:make-simple-closure
402 (,ly:self-alignment-interface::y-aligned-on-self))
403 ,(ly:make-simple-closure
404 (,ly:side-position-interface::y-aligned-on-support-refpoints)))
408 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
412 (+ (ly:self-alignment-interface::y-aligned-on-self @var{grob})
413 (ly:self-alignment-interface::y-aligned-on-support-refpoints @var{grob}))
418 Calculation of extent and offset of grob is now controlled via the
419 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
420 properties, for example
423 \override TextScript #'Y-offset = #-6
427 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
431 Each grob property can be a procedure. If this is the case, it is
432 assumed to be a routine that calculates said property. This is a
433 major internal cleanup, which also provides advanced tweakability for
434 power users. For example,
437 \override Beam #'direction
439 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
445 With this code fragment, the direction of a beam is decided to be up
446 or down, depending on the number of stems in the beam.
450 Support for figured bass has been rewritten. Now it supports
451 continuation lines, slashed figures, and its figures, brackets, and
452 alignments may tuned separately.
454 @lilypond[ragged-right,fragment]
456 \relative { c4 c c c }
458 \set useBassFigureExtenders = ##t
459 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
463 This rewrite was sponsored by Trent Johnston and John Mandereau.
466 Subproperties, like the @code{details} field of @code{Slur} and
467 @code{Tie} may now be tuned with @code{\override}. For example,
470 \override Stem #'details #'beamed-lengths = #'(4 4 3)
474 shortens the stems in beams.
477 The default paper size may now be set from the command line using
481 Beamlets may stick out of the side of beams.
484 @lilypond[fragment,ragged-right,relative=2]
486 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
487 \set stemLeftBeamCount = #2
490 \set stemRightBeamCount = #3
495 This feature was sponsored by Trevor Bača.
500 Vertical alignments of staves can now be tuned easily for individual
503 @lilypond[ragged-right]
504 #(set-global-staff-size 13)
511 #"Score.NonMusicalPaperColumn"
512 #'line-break-system-details
513 #'((fixed-alignment-extra-space . 15))
525 This feature was sponsored by Nicolas Sceaux.
528 Vertical spacing for page layout can now be tuned for each system
529 individually. The dimensions that can be tuned can be visualized.
532 #(set-default-paper-size "a7" 'landscape)
535 \paper { annotate-spacing = ##t }
539 These features were sponsored by Trevor Bača and Nicolas Sceaux.
542 The slope of a stem-tremolo may be set manually
544 @lilypond[fragment,relative=1,ragged-right]
546 \once \override StemTremolo #'slope = #0.45
550 This feature was sponsored by Sven Axelsson.
553 Laissez vibrer ties can be created with @code{\laissezVibrer},
555 @lilypond[fragment,ragged-right,relative=1]
556 <c e g>\laissezVibrer r <d f>\laissezVibrer
559 This feature was sponsored by Henrik Frisk.
562 The order of words in @code{\markup} commands may now be reversed by
563 setting the @code{text-direction} property. This is useful for
564 Right-to-Left languages like Hebrew.
566 This feature was sponsored by Aaron Mehl.
569 Texts over multi measure rests can stretch the corresponding measure,
570 if the appropriate @code{spring-and-rods} callback is set.
572 @lilypond[relative=2,fragment,ragged-right]
573 \override MultiMeasureRestText #'springs-and-rods
574 = #ly:multi-measure-rest::set-text-rods
575 c1 R1 R1^"Very long long long text"
578 This feature was sponsored by Kris Shaffer.
581 @item @textanchor{tie-chords}
582 Formatting of ties in chords has been improved. Ties no longer collide
583 with note heads and stems. In addition, it is possible to manually
584 specify tie formatting
586 @lilypond[relative=2, fragment,ragged-right]
587 <a c d f> ~ <a c d f>
589 \override TieColumn #'tie-configuration =
590 #'((0 . -1) '() (5.5 . 1) (7 . 1))
591 <b d f g> ~ <b d f g>
594 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
595 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
599 Formatting of isolated, single ties has been improved. Now, ties avoid
600 staff lines, flags and dots, without compromising their shape.
602 @lilypond[fragment,ragged-right]
605 c16 c2...~ c16 ~ c2... |
606 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
610 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
611 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
615 @item @textanchor{repeat-counter}
616 With the @code{countPercentRepeats} property,
617 percent repeats get incremental numbers to indicate the accumulated repeat count.
619 @lilypond[relative=2,fragment,ragged-right]
620 \set countPercentRepeats = ##t
621 \repeat percent 4 { c1 }
623 \repeat percent 4 { c2 c2 }
626 This feature was sponsored by Yoshinobu Ishizaki
629 Text scripts such as fingering instructions and dynamics avoid
630 collisions with slurs
632 @lilypond[fragment,relative=1]
634 b_1( f'_1_2_3 c_3_4_5 a)
636 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
641 Tuplets can be made to reach the next non-tuplet note by setting the
642 @code{tupletFullLength} property,
644 @lilypond[fragment,relative=2]
646 \remove Forbid_line_break_engraver
650 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
651 \set tupletFullLength = ##t
652 \times 2/3 { c8[ c c] }
657 This feature was sponsored by Trevor Bača.
660 When @code{strict-note-spacing} is set, notes are spaced without regard
661 for clefs, bar lines, and grace notes. For example,
663 @lilypond[fragment,relative=2]
664 \override Score.SpacingSpanner #'strict-note-spacing = ##t
665 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
668 This feature was sponsored by Trevor Bača.
671 Beams support the @code{break-overshoot} property, for example
673 @lilypond[relative=2,fragment]
674 \set allowBeamBreak = ##t
675 \override Beam #'break-overshoot = #'(1.0 . 2.0)
679 This feature was sponsored by Trevor Bača.
682 Proportional notation is supported. Notes can be spaced proportional
683 to their time-difference by assigning a duration to
684 @code{proportionalNotationDuration}. For example,
686 @lilypond[relative=2,fragment,ragged-right]
688 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
689 \new Staff { c8[ c c c c c] c4 c2 r2 }
690 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
694 This feature was sponsored by Trevor Bača.
697 Symbol sizes (e.g. accidentals) are disregarded for spacing if
698 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
701 @lilypond[relative=2,fragment]
703 \override Score.SpacingSpanner #'uniform-stretching = ##t
704 \new Staff { c16[ c c c c c c c c c16] }
706 \times 6/7 { c16 c c cis c c c }
712 This feature was sponsored by Trevor Bača.
715 Endings of broken tuplet brackets can be tuned. For example, you can
716 add arrows to the brackets,
718 @lilypond[fragment,ragged-right,relative=2]
719 \override TupletBracket
721 (markup #:arrow-head X LEFT #f)
722 (markup #:arrow-head X RIGHT #f))
724 c c c \bar "empty" \break c c
728 This feature was sponsored by Trevor Bača.
731 @item @textanchor{arrow-glyph}
732 Arrow heads were added to the Feta font.
737 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
738 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
743 These glyphs have been sponsored by Trevor Bača.
747 Nested tuplets are automatically positioned,
749 @lilypond[fragment,ragged-right,relative=2]
750 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
753 \times 3/5 { a a a a a }
757 This feature was sponsored by Trevor Bača.
760 Music expressions can be displayed, in LilyPond notation, using the
761 new @code{\displayLilyMusic} function. For instance:
763 \displayLilyMusic \transpose c a, { c d e f }
770 This feature was contributed by Nicolas Sceaux.
773 The current bar number may be checked with @code{\barNumberCheck}, eg.
780 will print a warning if it doesn't happen in measure 22.
783 If @code{showLastLength} is set, only the last few measures of a piece
784 are rendered, which speeds up correcting scores. For example, setting
787 showLastLength = R1*5
792 will render only the last five measures (assuming 4/4 time signature)
795 @item @textanchor{simple-melismata}
796 Melismata can be specified simply in the lyrics now, eg.
798 @lilypond[relative=1,verbatim,fragment]
806 This feature was sponsored by Nancho Alvarez
809 Suggested accidentals (for notating musica ficta) may be switched on
810 with @code{suggestAccidentals}
812 @lilypond[verbatim,fragment,relative=2]
813 \set suggestAccidentals = ##t
817 This feature was sponsored by Nancho Alvarez.
820 The setting @code{whichBar} and time-bookkeeping is now split into a
821 @code{Default_bar_line_engraver} and @code{Timing_translator}
824 @item @textanchor{pitched-trill}
825 Explicit pitches may be added to trills,
827 @lilypond[relative,verbatim,fragment]
828 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
831 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
834 Markup now supports formatting of text paragraphs, using
835 @code{\wordwrap} and @code{\justify}.
837 This feature was sponsored by Sven Axelsson.
841 For older news, go to
842 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
843 or @uref{../,go back} to the Documentation index.