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.
61 * Write complete sentences.
63 * only show user-visible changes.
67 @item LilyPond PostScript output is now also compatible with GSView, a
68 PostScript viewer for the Windows platform.
70 @item The property @code{Score.skipTypesetting} is also respected
71 by the MIDI output now.
73 This feature was contributed by Johannes Schindelin.
75 @item A score may now be specified to take a fixed number of
76 systems, by setting the @code{system-count} variable in the
79 This feature was contributed by Joe Neeman.
81 @item Ties may now be attached to the left side of a note with
82 @code{\repeatTie}, for use with volta repeats.
84 @lilypond[relative=2,fragment,ragged-right]
88 This feature was sponsored by Steve Doonan.
90 @item Newly created contexts may also be named with the following
94 \new Voice = "alto" ...
97 @item Thicknesses of tie and slurs may be tuned separately for the
98 endings and the middle part.
100 @item Items directly connected with a music input element may be
101 parenthesized, for example,
103 @lilypond[verbatim,ragged-right,fragment,relative=2]
105 <d \parenthesize f a>
108 This feature was sponsored by Ramana Kumar.
111 variables in the @code{\paper} and @code{\layout} block are now
112 separated with dashes, i.e.
122 The same holds for analogous options in lilypond-book.
125 Music for multiple parts can be interleaved, similar to MUP input.
126 This is done with the @code{\parallelMusic} function,
128 @lilypond[verbatim,ragged-right]
129 \parallelMusic #'(voiceA voiceB) {
130 r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
132 r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
143 This feature was contributed by Nicolas Sceaux.
145 @item Alignments of staves may be tuned per system.
147 #(set-global-staff-size 13)
149 \relative c'' \new StaffGroup <<
154 #"Score.NonMusicalPaperColumn"
155 #'line-break-system-details
156 #'((alignment-offsets . (0 -5 -20)))
159 #"Score.NonMusicalPaperColumn"
160 #'line-break-system-details
161 #'((alignment-offsets . (0 -15 -20)))
167 This feature was sponsored by Trevor Bača.
169 @item Individual systems may be positioned manually,
173 tagline = "lily was here"
176 #(set-default-paper-size "a7" 'landscape)
178 head-separation = 0.0
179 foot-separation = 0.0
186 #"Score.NonMusicalPaperColumn"
187 #'line-break-system-details
195 annotate-headers = ##t
200 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
202 @item A linebreaking configuration can now be saved as a @file{.ly}
203 file automatically. This allows vertical alignments to be stretched to
204 fit pages in a second formatting run. See
205 @inputfileref{input/regression,page-layout-twopass.ly} for an
208 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
210 @item The tie formatting for chords has been further polished. More
211 cases are handled gracefully, and all scoring parameters may now be
212 changed through the @code{details} property of the @code{Tie} grob.
214 This refinement was sponsored by Steve Doonan.
216 @item Positions of staff lines may now be set individually, for
219 @lilypond[ragged-right]
220 \new Staff \relative c' {
221 \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 7)
226 This feature was sponsored by Andrea Valle.
229 @item A MusicXML importer is included now.
231 It was sponsored by among others, Mark van den Borre,
232 and Muziekacademie Lede.
235 Stem direction on the center staff line can now be interpolated
236 between neighbors. This results in less stem direction changes,
237 leading to a more even appearance. For example,
239 @lilypond[ragged-right]
241 \consists "Melody_engraver"
242 \revert Stem #'neutral-direction
251 This feature was sponsored by Mike Rolish and Basil Crow.
254 Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
257 @lilypond[ragged-right]
260 \override TupletBracket #'bracket-visibility = ##f
261 \override TupletBracket #'staff-padding = ##f
262 \override Slur #'details #'region-size = #6
266 c( \stemDown g' \stemNeutral c,)
271 This feature was sponsored by Trent Johnston.
274 @item Tuplet brackets and numbers are implemented as separate grobs,
275 @code{TupletBracket} and @code{TupletNumber}.
277 This rewrite was sponsored by Trent Johnston.
279 @item String arguments for music functions may be specified without
280 @code{#} marks. Now, \clef and \bar are also music functions.
282 @item Ties in chords are also formatted using a scoring based
283 formatting. This reduces the number of collisions for ties in chords,
285 @lilypond[ragged-right,fragment,relative=2]
286 <b d f g> ~ <b d f g>
289 Here, the tie for the D is flipped, in spite the default rule for
292 This rewrite was sponsored by Steve Doonan.
294 @item With the @code{\tweak} music function, layout objects that are directly
295 connected to input may be tuned easily,
297 @lilypond[relative=2,fragment,verbatim,ragged-right]
299 \tweak #'font-size #3 c
300 \tweak #'color #red d
301 \tweak #'style #'cross g
302 \tweak #'duration-log #1 a
306 This feature was sponsored by Sean Reed and Bertalan Fodor.
308 @item Generic music functions may now also be used on articulations
309 and chord elements, eg.
313 e-\keepWithTag #'bla -\tag #'bla ^2 >
316 This feature was sponsored by Sean Reed and Bertalan Fodor.
319 @item Spaces between lyrics and distance between syllables with
320 hyphens may now be separately tuned through the
321 @code{LyricSpace} grob.
323 This feature has been sponsored by Bertalan Fodor.
325 @item Texts set in a TrueType font are now kerned. This requires CVS
328 @lilypond[relative=2,fragment,ragged-right]
333 @item Using the @TeX{} no longer requires linking or dynamically
334 opening the kpathsea library, making the backend more easily usable on
337 This fix was sponsored by Black Trash Productions.
339 @item The horizontal location of rehearsal marks can be adjusted by
340 setting the @code{rehearsalMarkAlignSymbol} property,
342 @lilypond[ragged-right]
347 \set Score.rehearsalMarkAlignSymbol = #'key-signature
351 \set Score.rehearsalMarkAlignSymbol = #'clef
359 This feature was sponsored by Trevor Bača.
363 It's now possible to easily create deeply nested system start
366 @lilypond[ragged-right]
369 \set StaffGroup.systemStartDelimiterHierarchy
370 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
380 In addition, there is now also support for ``square'' system start
383 This feature was sponsored by Trevor Bača.
386 Tie formatting now uses scoring. This opens the road to formatting
387 which handles complex situations require tradeoffs between different
390 This refactoring has been sponsored by Steve Doonan.
393 Each grob property may also be a ``grob closure.'' This means that it
394 is possible to combine functions. For example, the @code{Y-offset} of
395 a @code{InstrumentName} grob is defined to be
398 ,(ly:make-simple-closure
400 ,(ly:make-simple-closure
401 (,ly:self-alignment-interface::y-aligned-on-self))
402 ,(ly:make-simple-closure
403 (,ly:side-position-interface::y-aligned-on-support-refpoints)))
407 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
411 (+ (ly:self-alignment-interface::y-aligned-on-self @var{grob})
412 (ly:self-alignment-interface::y-aligned-on-support-refpoints @var{grob}))
417 Calculation of extent and offset of grob is now controlled via the
418 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
419 properties, for example
422 \override TextScript #'Y-offset = #-6
426 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
430 Each grob property can be a procedure. If this is the case, it is
431 assumed to be a routine that calculates said property. This is a
432 major internal cleanup, which also provides advanced tweakability for
433 power users. For example,
436 \override Beam #'direction
438 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
444 With this code fragment, the direction of a beam is decided to be up
445 or down, depending on the number of stems in the beam.
449 Support for figured bass has been rewritten. Now it supports
450 continuation lines, slashed figures, and its figures, brackets, and
451 alignments may tuned separately.
453 @lilypond[ragged-right,fragment]
455 \relative { c4 c c c }
457 \set useBassFigureExtenders = ##t
458 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
462 This rewrite was sponsored by Trent Johnston and John Mandereau.
465 Subproperties, like the @code{details} field of @code{Slur} and
466 @code{Tie} may now be tuned with @code{\override}. For example,
469 \override Stem #'details #'beamed-lengths = #'(4 4 3)
473 shortens the stems in beams.
476 The default paper size may now be set from the command line using
480 Beamlets may stick out of the side of beams.
483 @lilypond[fragment,ragged-right,relative=2]
485 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
486 \set stemLeftBeamCount = #2
489 \set stemRightBeamCount = #3
494 This feature was sponsored by Trevor Bača.
499 Vertical alignments of staves can now be tuned easily for individual
502 @lilypond[ragged-right]
503 #(set-global-staff-size 13)
510 #"Score.NonMusicalPaperColumn"
511 #'line-break-system-details
512 #'((fixed-alignment-extra-space . 15))
524 This feature was sponsored by Nicolas Sceaux.
527 Vertical spacing for page layout can now be tuned for each system
528 individually. The dimensions that can be tuned can be visualized.
531 #(set-default-paper-size "a7" 'landscape)
534 \paper { annotate-spacing = ##t }
538 These features were sponsored by Trevor Bača and Nicolas Sceaux.
541 The slope of a stem-tremolo may be set manually
543 @lilypond[fragment,relative=1,ragged-right]
545 \once \override StemTremolo #'slope = #0.45
549 This feature was sponsored by Sven Axelsson.
552 Laissez vibrer ties can be created with @code{\laissezVibrer},
554 @lilypond[fragment,ragged-right,relative=1]
555 <c e g>\laissezVibrer r <d f>\laissezVibrer
558 This feature was sponsored by Henrik Frisk.
561 The order of words in @code{\markup} commands may now be reversed by
562 setting the @code{text-direction} property. This is useful for
563 Right-to-Left languages like Hebrew.
565 This feature was sponsored by Aaron Mehl.
568 Texts over multi measure rests can stretch the corresponding measure,
569 if the appropriate @code{spring-and-rods} callback is set.
571 @lilypond[relative=2,fragment,ragged-right]
572 \override MultiMeasureRestText #'springs-and-rods
573 = #ly:multi-measure-rest::set-text-rods
574 c1 R1 R1^"Very long long long text"
577 This feature was sponsored by Kris Shaffer.
580 @item @textanchor{tie-chords}
581 Formatting of ties in chords has been improved. Ties no longer collide
582 with note heads and stems. In addition, it is possible to manually
583 specify tie formatting
585 @lilypond[relative=2, fragment,ragged-right]
586 <a c d f> ~ <a c d f>
588 \override TieColumn #'tie-configuration =
589 #'((0 . -1) '() (5.5 . 1) (7 . 1))
590 <b d f g> ~ <b d f g>
593 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
594 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
598 Formatting of isolated, single ties has been improved. Now, ties avoid
599 staff lines, flags and dots, without compromising their shape.
601 @lilypond[fragment,ragged-right]
604 c16 c2...~ c16 ~ c2... |
605 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
609 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
610 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
614 @item @textanchor{repeat-counter}
615 With the @code{countPercentRepeats} property,
616 percent repeats get incremental numbers to indicate the accumulated repeat count.
618 @lilypond[relative=2,fragment,ragged-right]
619 \set countPercentRepeats = ##t
620 \repeat percent 4 { c1 }
622 \repeat percent 4 { c2 c2 }
625 This feature was sponsored by Yoshinobu Ishizaki
628 Text scripts such as fingering instructions and dynamics avoid
629 collisions with slurs
631 @lilypond[fragment,relative=1]
633 b_1( f'_1_2_3 c_3_4_5 a)
635 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
640 Tuplets can be made to reach the next non-tuplet note by setting the
641 @code{tupletFullLength} property,
643 @lilypond[fragment,relative=2]
645 \remove Forbid_line_break_engraver
649 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
650 \set tupletFullLength = ##t
651 \times 2/3 { c8[ c c] }
656 This feature was sponsored by Trevor Bača.
659 When @code{strict-note-spacing} is set, notes are spaced without regard
660 for clefs, bar lines, and grace notes. For example,
662 @lilypond[fragment,relative=2]
663 \override Score.SpacingSpanner #'strict-note-spacing = ##t
664 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
667 This feature was sponsored by Trevor Bača.
670 Beams support the @code{break-overshoot} property, for example
672 @lilypond[relative=2,fragment]
673 \set allowBeamBreak = ##t
674 \override Beam #'break-overshoot = #'(1.0 . 2.0)
678 This feature was sponsored by Trevor Bača.
681 Proportional notation is supported. Notes can be spaced proportional
682 to their time-difference by assigning a duration to
683 @code{proportionalNotationDuration}. For example,
685 @lilypond[relative=2,fragment,ragged-right]
687 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
688 \new Staff { c8[ c c c c c] c4 c2 r2 }
689 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
693 This feature was sponsored by Trevor Bača.
696 Symbol sizes (e.g. accidentals) are disregarded for spacing if
697 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
700 @lilypond[relative=2,fragment]
702 \override Score.SpacingSpanner #'uniform-stretching = ##t
703 \new Staff { c16[ c c c c c c c c c16] }
705 \times 6/7 { c16 c c cis c c c }
711 This feature was sponsored by Trevor Bača.
714 Endings of broken tuplet brackets can be tuned. For example, you can
715 add arrows to the brackets,
717 @lilypond[fragment,ragged-right,relative=2]
718 \override TupletBracket
720 (markup #:arrow-head X LEFT #f)
721 (markup #:arrow-head X RIGHT #f))
723 c c c \bar "empty" \break c c
727 This feature was sponsored by Trevor Bača.
730 @item @textanchor{arrow-glyph}
731 Arrow heads were added to the Feta font.
736 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
737 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
742 These glyphs have been sponsored by Trevor Bača.
746 Nested tuplets are automatically positioned,
748 @lilypond[fragment,ragged-right,relative=2]
749 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
752 \times 3/5 { a a a a a }
756 This feature was sponsored by Trevor Bača.
759 Music expressions can be displayed, in LilyPond notation, using the
760 new @code{\displayLilyMusic} function. For instance:
762 \displayLilyMusic \transpose c a, { c d e f }
769 This feature was contributed by Nicolas Sceaux.
772 The current bar number may be checked with @code{\barNumberCheck}, eg.
779 will print a warning if it doesn't happen in measure 22.
782 If @code{showLastLength} is set, only the last few measures of a piece
783 are rendered, which speeds up correcting scores. For example, setting
786 showLastLength = R1*5
791 will render only the last five measures (assuming 4/4 time signature)
794 @item @textanchor{simple-melismata}
795 Melismata can be specified simply in the lyrics now, eg.
797 @lilypond[relative=1,verbatim,fragment]
805 This feature was sponsored by Nancho Alvarez
808 Suggested accidentals (for notating musica ficta) may be switched on
809 with @code{suggestAccidentals}
811 @lilypond[verbatim,fragment,relative=2]
812 \set suggestAccidentals = ##t
816 This feature was sponsored by Nancho Alvarez.
819 The setting @code{whichBar} and time-bookkeeping is now split into a
820 @code{Default_bar_line_engraver} and @code{Timing_translator}
823 @item @textanchor{pitched-trill}
824 Explicit pitches may be added to trills,
826 @lilypond[relative,verbatim,fragment]
827 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
830 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
833 Markup now supports formatting of text paragraphs, using
834 @code{\wordwrap} and @code{\justify}.
836 This feature was sponsored by Sven Axelsson.
840 For older news, go to
841 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
842 or @uref{../,go back} to the Documentation index.