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
40 @unnumbered New features in 2.7 since 2.6
43 This document is also available in @uref{NEWS.pdf,PDF}. It's part of
44 the @uref{../,LilyPond Documentation}
56 * only show verbatim input for syntax/input changes
58 * try to be as brief possible in those cases
60 * don't try to provide real-world examples, they often get too big,
61 which scares away people.
63 * Write complete sentences.
65 * only show user-visible changes.
69 @item LilyPond PostScript output is now also compatible with GSView, a
70 PostScript viewer for the Windows platform.
72 @item The property @code{Score.skipTypesetting} is also respected
73 by the MIDI output now.
75 This feature was contributed by Johannes Schindelin.
77 @item A score may now be specified to take a fixed number of
78 systems, by setting the @code{system-count} variable in the
81 This feature was contributed by Joe Neeman.
83 @item Ties may now be attached to the left side of a note with
84 @code{\repeatTie}, for use with volta repeats.
86 @lilypond[relative=2,fragment,ragged-right]
90 This feature was sponsored by Steve Doonan.
92 @item Newly created contexts may also be named with the following
96 \new Voice = "alto" ...
99 @item Thicknesses of tie and slurs may be tuned separately for the
100 endings and the middle part.
102 @item Items directly connected with a music input element may be
103 parenthesized, for example,
105 @lilypond[verbatim,ragged-right,fragment,relative=2]
107 <d \parenthesize f a>
110 This feature was sponsored by Ramana Kumar.
113 variables in the @code{\paper} and @code{\layout} block are now
114 separated with dashes, i.e.
124 The same holds for analogous options in lilypond-book.
127 Music for multiple parts can be interleaved, similar to MUP input.
128 This is done with the @code{\parallelMusic} function,
130 @lilypond[verbatim,ragged-right]
131 \parallelMusic #'(voiceA voiceB) {
132 r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
134 r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
145 This feature was contributed by Nicolas Sceaux.
147 @item Alignments of staves may be tuned per system.
149 #(set-global-staff-size 13)
153 \relative c'' \new StaffGroup <<
158 #"Score.NonMusicalPaperColumn"
159 #'line-break-system-details
160 #'((alignment-offsets . (0 -5 -20)))
163 #"Score.NonMusicalPaperColumn"
164 #'line-break-system-details
165 #'((alignment-offsets . (0 -15 -20)))
171 This feature was sponsored by Trevor Bača.
173 @item Individual systems may be positioned manually,
177 tagline = "lily was here"
180 #(set-default-paper-size "a7" 'landscape)
182 head-separation = 0.0
183 foot-separation = 0.0
190 #"Score.NonMusicalPaperColumn"
191 #'line-break-system-details
199 annotate-headers = ##t
204 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
206 @item A linebreaking configuration can now be saved as a @file{.ly}
207 file automatically. This allows vertical alignments to be stretched to
208 fit pages in a second formatting run. See
209 @inputfileref{input/regression,page-layout-twopass.ly} for an
212 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
214 @item The tie formatting for chords has been further polished. More
215 cases are handled gracefully, and all scoring parameters may now be
216 changed through the @code{details} property of the @code{Tie} grob.
218 This refinement was sponsored by Steve Doonan.
220 @item Positions of staff lines may now be set individually, for
223 @lilypond[ragged-right]
224 \new Staff \relative c' {
225 \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 7)
230 This feature was sponsored by Andrea Valle.
233 @item A MusicXML importer is included now.
235 It was sponsored by among others, Mark van den Borre,
236 and Muziekacademie Lede.
239 Stem direction on the center staff line can now be interpolated
240 between neighbors. This results in less stem direction changes,
241 leading to a more even appearance. For example,
243 @lilypond[ragged-right]
245 \consists "Melody_engraver"
246 \override Stem #'neutral-direction = #'()
255 This feature was sponsored by Mike Rolish and Basil Crow.
258 Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
261 @lilypond[ragged-right]
264 \override TupletBracket #'bracket-visibility = ##f
265 \override TupletBracket #'staff-padding = ##f
266 \override Slur #'details #'region-size = #6
270 c( \stemDown g' \stemNeutral c,)
275 This feature was sponsored by Trent Johnston.
278 @item Tuplet brackets and numbers are implemented as separate grobs,
279 @code{TupletBracket} and @code{TupletNumber}.
281 This rewrite was sponsored by Trent Johnston.
283 @item String arguments for music functions may be specified without
284 @code{#} marks. Now, \clef and \bar are also music functions.
286 @item Ties in chords are also formatted using a scoring based
287 formatting. This reduces the number of collisions for ties in chords,
289 @lilypond[ragged-right,fragment,relative=2]
290 <b d f g> ~ <b d f g>
293 Here, the tie for the D is flipped, in spite the default rule for
296 This rewrite was sponsored by Steve Doonan.
298 @item With the @code{\tweak} music function, layout objects that are directly
299 connected to input may be tuned easily,
301 @lilypond[relative=2,fragment,verbatim,ragged-right]
303 \tweak #'font-size #3 c
304 \tweak #'color #red d
305 \tweak #'style #'cross g
306 \tweak #'duration-log #1 a
310 This feature was sponsored by Sean Reed and Bertalan Fodor.
312 @item Generic music functions may now also be used on articulations
313 and chord elements, eg.
317 e-\keepWithTag #'bla -\tag #'bla ^2 >
320 This feature was sponsored by Sean Reed and Bertalan Fodor.
323 @item Spaces between lyrics and distance between syllables with
324 hyphens may now be separately tuned through the
325 @code{LyricSpace} grob.
327 This feature has been sponsored by Bertalan Fodor.
329 @item Texts set in a TrueType font are now kerned. This requires CVS
332 @lilypond[relative=2,fragment,ragged-right]
337 @item Using the @TeX{} no longer requires linking or dynamically
338 opening the kpathsea library, making the backend more easily usable on
341 This fix was sponsored by Black Trash Productions.
343 @item The horizontal location of rehearsal marks can be adjusted by
344 setting the @code{rehearsalMarkAlignSymbol} property,
346 @lilypond[ragged-right]
351 \override Score.RehearsalMark #'break-align-symbol = #'key-signature
355 \override Score.RehearsalMark #'break-align-symbol = #'clef
363 This feature was sponsored by Trevor Bača.
367 It's now possible to easily create deeply nested system start
370 @lilypond[ragged-right]
373 \set StaffGroup.systemStartDelimiterHierarchy
374 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
384 In addition, there is now also support for ``square'' system start
387 This feature was sponsored by Trevor Bača.
390 Tie formatting now uses scoring. This opens the road to formatting
391 which handles complex situations require tradeoffs between different
394 This refactoring has been sponsored by Steve Doonan.
397 Each grob property may also be a ``grob closure.'' This means that it
398 is possible to combine functions. For example, the @code{Y-offset} of
399 a @code{InstrumentName} grob is defined to be
402 ,(ly:make-simple-closure
404 ,(ly:make-simple-closure
405 (,ly:self-alignment-interface::y-aligned-on-self))
406 ,(ly:make-simple-closure
407 (,ly:side-position-interface::y-aligned-on-support-refpoints)))
411 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
415 (+ (ly:self-alignment-interface::y-aligned-on-self @var{grob})
416 (ly:self-alignment-interface::y-aligned-on-support-refpoints @var{grob}))
421 Calculation of extent and offset of grob is now controlled via the
422 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
423 properties, for example
426 \override TextScript #'Y-offset = #-6
430 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
434 Each grob property can be a procedure. If this is the case, it is
435 assumed to be a routine that calculates said property. This is a
436 major internal cleanup, which also provides advanced tweakability for
437 power users. For example,
440 \override Beam #'direction
442 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
448 With this code fragment, the direction of a beam is decided to be up
449 or down, depending on the number of stems in the beam.
453 Support for figured bass has been rewritten. Now it supports
454 continuation lines, slashed figures, and its figures, brackets, and
455 alignments may tuned separately.
457 @lilypond[ragged-right,fragment]
459 \relative { c4 c c c }
461 \set useBassFigureExtenders = ##t
462 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
466 This rewrite was sponsored by Trent Johnston and John Mandereau.
469 Subproperties, like the @code{details} field of @code{Slur} and
470 @code{Tie} may now be tuned with @code{\override}. For example,
473 \override Stem #'details #'beamed-lengths = #'(4 4 3)
477 shortens the stems in beams.
480 The default paper size may now be set from the command line using
484 Beamlets may stick out of the side of beams.
487 @lilypond[fragment,ragged-right,relative=2]
489 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
490 \set stemLeftBeamCount = #2
493 \set stemRightBeamCount = #3
498 This feature was sponsored by Trevor Bača.
503 Vertical alignments of staves can now be tuned easily for individual
506 @lilypond[ragged-right]
507 #(set-global-staff-size 13)
514 #"Score.NonMusicalPaperColumn"
515 #'line-break-system-details
516 #'((fixed-alignment-extra-space . 15))
528 This feature was sponsored by Nicolas Sceaux.
531 Vertical spacing for page layout can now be tuned for each system
532 individually. The dimensions that can be tuned can be visualized.
535 #(set-default-paper-size "a7" 'landscape)
538 \paper { annotate-spacing = ##t }
542 These features were sponsored by Trevor Bača and Nicolas Sceaux.
545 The slope of a stem-tremolo may be set manually
547 @lilypond[fragment,relative=1,ragged-right]
549 \once \override StemTremolo #'slope = #0.45
553 This feature was sponsored by Sven Axelsson.
556 Laissez vibrer ties can be created with @code{\laissezVibrer},
558 @lilypond[fragment,ragged-right,relative=1]
559 <c e g>\laissezVibrer r <d f>\laissezVibrer
562 This feature was sponsored by Henrik Frisk.
565 The order of words in @code{\markup} commands may now be reversed by
566 setting the @code{text-direction} property. This is useful for
567 Right-to-Left languages like Hebrew.
569 This feature was sponsored by Aaron Mehl.
572 Texts over multi measure rests can stretch the corresponding measure,
573 if the appropriate @code{spring-and-rods} callback is set.
575 @lilypond[relative=2,fragment,ragged-right]
576 \override MultiMeasureRestText #'springs-and-rods
577 = #ly:multi-measure-rest::set-text-rods
578 c1 R1 R1^"Very long long long text"
581 This feature was sponsored by Kris Shaffer.
584 @item @textanchor{tie-chords}
585 Formatting of ties in chords has been improved. Ties no longer collide
586 with note heads and stems. In addition, it is possible to manually
587 specify tie formatting
589 @lilypond[relative=2, fragment,ragged-right]
590 <a c d f> ~ <a c d f>
592 \override TieColumn #'tie-configuration =
593 #'((0 . -1) '() (5.5 . 1) (7 . 1))
594 <b d f g> ~ <b d f g>
597 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
598 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
602 Formatting of isolated, single ties has been improved. Now, ties avoid
603 staff lines, flags and dots, without compromising their shape.
605 @lilypond[fragment,ragged-right]
608 c16 c2...~ c16 ~ c2... |
609 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
613 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
614 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
618 @item @textanchor{repeat-counter}
619 With the @code{countPercentRepeats} property,
620 percent repeats get incremental numbers to indicate the accumulated repeat count.
622 @lilypond[relative=2,fragment,ragged-right]
623 \set countPercentRepeats = ##t
624 \repeat percent 4 { c1 }
626 \repeat percent 4 { c2 c2 }
629 This feature was sponsored by Yoshinobu Ishizaki
632 Text scripts such as fingering instructions and dynamics avoid
633 collisions with slurs
635 @lilypond[fragment,relative=1]
637 b_1( f'_1_2_3 c_3_4_5 a)
639 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
644 Tuplets can be made to reach the next non-tuplet note by setting the
645 @code{tupletFullLength} property,
647 @lilypond[fragment,relative=2]
649 \remove Forbid_line_break_engraver
653 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
654 \set tupletFullLength = ##t
655 \times 2/3 { c8[ c c] }
660 This feature was sponsored by Trevor Bača.
663 When @code{strict-note-spacing} is set, notes are spaced without regard
664 for clefs, bar lines, and grace notes. For example,
666 @lilypond[fragment,relative=2]
667 \override Score.SpacingSpanner #'strict-note-spacing = ##t
668 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
671 This feature was sponsored by Trevor Bača.
674 Beams support the @code{break-overshoot} property, for example
676 @lilypond[relative=2,fragment]
677 \set allowBeamBreak = ##t
678 \override Beam #'break-overshoot = #'(1.0 . 2.0)
682 This feature was sponsored by Trevor Bača.
685 Proportional notation is supported. Notes can be spaced proportional
686 to their time-difference by assigning a duration to
687 @code{proportionalNotationDuration}. For example,
689 @lilypond[relative=2,fragment,ragged-right]
691 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
692 \new Staff { c8[ c c c c c] c4 c2 r2 }
693 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
697 This feature was sponsored by Trevor Bača.
700 Symbol sizes (e.g. accidentals) are disregarded for spacing if
701 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
704 @lilypond[relative=2,fragment]
706 \override Score.SpacingSpanner #'uniform-stretching = ##t
707 \new Staff { c16[ c c c c c c c c c16] }
709 \times 6/7 { c16 c c cis c c c }
715 This feature was sponsored by Trevor Bača.
718 Endings of broken tuplet brackets can be tuned. For example, you can
719 add arrows to the brackets,
721 @lilypond[fragment,ragged-right,relative=2]
722 \override TupletBracket
724 (markup #:arrow-head X LEFT #f)
725 (markup #:arrow-head X RIGHT #f))
727 c c c \bar "empty" \break c c
731 This feature was sponsored by Trevor Bača.
734 @item @textanchor{arrow-glyph}
735 Arrow heads were added to the Feta font.
740 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
741 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
746 These glyphs have been sponsored by Trevor Bača.
750 Nested tuplets are automatically positioned,
752 @lilypond[fragment,ragged-right,relative=2]
753 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
756 \times 3/5 { a a a a a }
760 This feature was sponsored by Trevor Bača.
763 Music expressions can be displayed, in LilyPond notation, using the
764 new @code{\displayLilyMusic} function. For instance:
766 \displayLilyMusic \transpose c a, { c d e f }
773 This feature was contributed by Nicolas Sceaux.
776 The current bar number may be checked with @code{\barNumberCheck}, eg.
783 will print a warning if it doesn't happen in measure 22.
786 If @code{showLastLength} is set, only the last few measures of a piece
787 are rendered, which speeds up correcting scores. For example, setting
790 showLastLength = R1*5
795 will render only the last five measures (assuming 4/4 time signature)
798 @item @textanchor{simple-melismata}
799 Melismata can be specified simply in the lyrics now, eg.
801 @lilypond[relative=1,verbatim,fragment]
809 This feature was sponsored by Nancho Alvarez
812 Suggested accidentals (for notating musica ficta) may be switched on
813 with @code{suggestAccidentals}
815 @lilypond[verbatim,fragment,relative=2]
816 \set suggestAccidentals = ##t
820 This feature was sponsored by Nancho Alvarez.
823 The setting @code{whichBar} and time-bookkeeping is now split into a
824 @code{Default_bar_line_engraver} and @code{Timing_translator}
827 @item @textanchor{pitched-trill}
828 Explicit pitches may be added to trills,
830 @lilypond[relative,verbatim,fragment]
831 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
834 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
837 Markup now supports formatting of text paragraphs, using
838 @code{\wordwrap} and @code{\justify}.
840 This feature was sponsored by Sven Axelsson.
844 For older news, go to
845 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
846 or @uref{../,go back} to the Documentation index.