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 The property @code{Score.skipTypesetting} is also respected
68 by the MIDI output now.
70 This feature was contributed by Johannes Schindelin.
72 @item A score may now be specified to take a fixed number of
73 systems, by setting the @code{system-count} variable in the
76 This feature was contributed by Joe Neeman.
78 @item Ties may now be attached to the left side of a note with
79 @code{\repeatTie}, for use with volta repeats.
81 @lilypond[relative=2,fragment,ragged-right]
85 This feature was sponsored by Steve Doonan.
87 @item Newly created contexts may also be named with the following
91 \new Voice = "alto" ...
94 @item Thicknesses of tie and slurs may be tuned separately for the
95 endings and the middle part.
97 @item Items directly connected with a music input element may be
98 parenthesized, for example,
100 @lilypond[verbatim,ragged-right,fragment,relative=2]
102 <d \parenthesize fis a>
105 This feature was sponsored by Ramana Kumar.
108 variables in the @code{\paper} and @code{\layout} block are now
109 separated with dashes, i.e.
119 The same holds for analogous options in lilypond-book.
122 Music for multiple parts can be interleaved, similar to MUP input.
123 This is done with the @code{\parallelMusic} function,
125 @lilypond[verbatim,ragged-right]
126 \parallelMusic #'(voiceA voiceB) {
127 r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
129 r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
140 This feature was contributed by Nicolas Sceaux.
142 @item Alignments of staves may be tuned per system.
144 #(set-global-staff-size 13)
146 \relative c'' \new StaffGroup <<
151 #"Score.NonMusicalPaperColumn"
152 #'line-break-system-details
153 #'((alignment-offsets . (0 -5 -20)))
156 #"Score.NonMusicalPaperColumn"
157 #'line-break-system-details
158 #'((alignment-offsets . (0 -15 -20)))
164 This feature was sponsored by Trevor Bača.
166 @item Individual systems may be positioned manually,
170 tagline = "lily was here"
173 #(set-default-paper-size "a7" 'landscape)
175 head-separation = 0.0
176 foot-separation = 0.0
183 #"Score.NonMusicalPaperColumn"
184 #'line-break-system-details
192 annotateheaders = ##t
197 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
199 @item A linebreaking configuration can now be saved as a @file{.ly}
200 file automatically. This allows vertical alignments to be stretched to
201 fit pages in a second formatting run. See
202 @inputfileref{input/regression,page-layout-twopass.ly} for an
205 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
207 @item The tie formatting for chords has been further polished. More
208 cases are handled gracefully, and all scoring parameters may now be
209 changed through the @code{details} property of the @code{Tie} grob.
211 This refinement was sponsored by Steve Doonan.
213 @item Positions of staff lines may now be set individually, for
216 @lilypond[ragged-right]
217 \new Staff \relative c' {
218 \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 7)
223 This feature was sponsored by Andrea Valle.
226 @item A MusicXML importer is included now.
228 It was sponsored by among others, Mark van den Borre,
229 and Muziekacademie Lede.
232 Stem direction on the center staff line are now interpolated between
233 neighbors. This results in less stem direction changes, leading to a
234 more even appearance. For example,
236 @lilypond[ragged-right]
244 This feature was sponsored by Mike Rolish and Basil Crow.
247 Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
250 @lilypond[ragged-right]
253 \override TupletBracket #'bracket-visibility = ##f
254 \override TupletBracket #'staff-padding = ##f
255 \override Slur #'details #'region-size = #6
259 c( \stemDown g' \stemNeutral c,)
264 This feature was sponsored by Trent Johnston.
267 @item Tuplet brackets and numbers are implemented as separate grobs,
268 @code{TupletBracket} and @code{TupletNumber}.
270 This rewrite was sponsored by Trent Johnston.
272 @item String arguments for music functions may be specified without
273 @code{#} marks. Now, \clef and \bar are also music functions.
275 @item Ties in chords are also formatted using a scoring based
276 formatting. This reduces the number of collisions for ties in chords,
278 @lilypond[ragged-right,fragment,relative=2]
279 <b d f g> ~ <b d f g>
282 Here, the tie for the D is flipped, in spite the default rule for
285 This rewrite was sponsored by Steve Doonan.
287 @item With the @code{\tweak} music function, layout objects that are directly
288 connected to input may be tuned easily,
290 @lilypond[relative=2,fragment,verbatim,ragged-right]
292 \tweak #'font-size #3 c
293 \tweak #'color #red d
294 \tweak #'style #'cross g
295 \tweak #'duration-log #1 a
299 This feature was sponsored by Sean Reed and Bertalan Fodor.
301 @item Generic music functions may now also be used on articulations
302 and chord elements, eg.
306 e-\keepWithTag #'bla -\tag #'bla ^2 >
309 This feature was sponsored by Sean Reed and Bertalan Fodor.
312 @item Spaces between lyrics and distance between syllables with
313 hyphens may now be separately tuned through the
314 @code{LyricSpace} grob.
316 This feature has been sponsored by Bertalan Fodor.
318 @item Texts set in a TrueType font are now kerned. This requires CVS
321 @lilypond[relative=2,fragment,ragged-right]
326 @item Using the @TeX{} no longer requires linking or dynamically
327 opening the kpathsea library, making the backend more easily usable on
330 This fix was sponsored by Black Trash Productions.
332 @item The horizontal location of rehearsal marks can be adjusted by
333 setting the @code{rehearsalMarkAlignSymbol} property,
335 @lilypond[ragged-right]
340 \set Score.rehearsalMarkAlignSymbol = #'key-signature
344 \set Score.rehearsalMarkAlignSymbol = #'clef
352 This feature was sponsored by Trevor Bača.
356 It's now possible to easily create deeply nested system start
359 @lilypond[ragged-right]
362 \set StaffGroup.systemStartDelimiterHierarchy
363 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
373 In addition, there is now also support for ``square'' system start
376 This feature was sponsored by Trevor Bača.
379 Tie formatting now uses scoring. This opens the road to formatting
380 which handles complex situations require tradeoffs between different
383 This refactoring has been sponsored by Steve Doonan.
386 Each grob property may also be a ``grob closure.'' This means that it
387 is possible to combine functions. For example, the @code{Y-offset} of
388 a @code{InstrumentName} grob is defined to be
391 ,(ly:make-simple-closure
393 ,(ly:make-simple-closure
394 (,ly:self-alignment-interface::y-aligned-on-self))
395 ,(ly:make-simple-closure
396 (,ly:side-position-interface::y-aligned-on-support-refpoints)))
400 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
404 (+ (ly:self-alignment-interface::y-aligned-on-self @var{grob})
405 (ly:self-alignment-interface::y-aligned-on-support-refpoints @var{grob}))
410 Calculation of extent and offset of grob is now controlled via the
411 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
412 properties, for example
415 \override TextScript #'Y-offset = #-6
419 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
423 Each grob property can be a procedure. If this is the case, it is
424 assumed to be a routine that calculates said property. This is a
425 major internal cleanup, which also provides advanced tweakability for
426 power users. For example,
429 \override Beam #'direction
431 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
437 With this code fragment, the direction of a beam is decided to be up
438 or down, depending on the number of stems in the beam.
442 Support for figured bass has been rewritten. Now it supports
443 continuation lines, slashed figures, and its figures, brackets, and
444 alignments may tuned separately.
446 @lilypond[ragged-right,fragment]
448 \relative { c4 c c c }
450 \set useBassFigureExtenders = ##t
451 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
455 This rewrite was sponsored by Trent Johnston and John Mandereau.
458 Subproperties, like the @code{details} field of @code{Slur} and
459 @code{Tie} may now be tuned with @code{\override}. For example,
462 \override Stem #'details #'beamed-lengths = #'(4 4 3)
466 shortens the stems in beams.
469 The default paper size may now be set from the command line using
473 Beamlets may stick out of the side of beams.
476 @lilypond[fragment,ragged-right,relative=2]
478 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
479 \set stemLeftBeamCount = #2
482 \set stemRightBeamCount = #3
487 This feature was sponsored by Trevor Bača.
492 Vertical alignments of staves can now be tuned easily for individual
495 @lilypond[ragged-right]
496 #(set-global-staff-size 13)
503 #"Score.NonMusicalPaperColumn"
504 #'line-break-system-details
505 #'((fixed-alignment-extra-space . 15))
517 This feature was sponsored by Nicolas Sceaux.
520 Vertical spacing for page layout can now be tuned for each system
521 individually. The dimensions that can be tuned can be visualized.
524 #(set-default-paper-size "a7" 'landscape)
527 \paper { annotatespacing = ##t }
531 These features were sponsored by Trevor Bača and Nicolas Sceaux.
534 The slope of a stem-tremolo may be set manually
536 @lilypond[fragment,relative=1,ragged-right]
538 \once \override StemTremolo #'slope = #0.45
542 This feature was sponsored by Sven Axelsson.
545 Laissez vibrer ties can be created with @code{\laissezVibrer},
547 @lilypond[fragment,ragged-right,relative=1]
548 <c e g>\laissezVibrer r <d f>\laissezVibrer
551 This feature was sponsored by Henrik Frisk.
554 The order of words in @code{\markup} commands may now be reversed by
555 setting the @code{text-direction} property. This is useful for
556 Right-to-Left languages like Hebrew.
558 This feature was sponsored by Aaron Mehl.
561 Texts over multi measure rests can stretch the corresponding measure,
562 if the appropriate @code{spring-and-rods} callback is set.
564 @lilypond[relative=2,fragment,ragged-right]
565 \override MultiMeasureRestText #'springs-and-rods
566 = #ly:multi-measure-rest::set-text-rods
567 c1 R1 R1^"Very long long long text"
570 This feature was sponsored by Kris Shaffer.
573 @item @textanchor{tie-chords}
574 Formatting of ties in chords has been improved. Ties no longer collide
575 with note heads and stems. In addition, it is possible to manually
576 specify tie formatting
578 @lilypond[relative=2, fragment,ragged-right]
579 <a c d f> ~ <a c d f>
581 \override TieColumn #'tie-configuration =
582 #'((0 . -1) '() (5.5 . 1) (7 . 1))
583 <b d f g> ~ <b d f g>
586 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
587 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
591 Formatting of isolated, single ties has been improved. Now, ties avoid
592 staff lines, flags and dots, without compromising their shape.
594 @lilypond[fragment,ragged-right]
597 c16 c2...~ c16 ~ c2... |
598 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
602 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
603 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
607 @item @textanchor{repeat-counter}
608 With the @code{countPercentRepeats} property,
609 percent repeats get incremental numbers to indicate the accumulated repeat count.
611 @lilypond[relative=2,fragment,ragged-right]
612 \set countPercentRepeats = ##t
613 \repeat percent 4 { c1 }
615 \repeat percent 4 { c2 c2 }
618 This feature was sponsored by Yoshinobu Ishizaki
621 Text scripts such as fingering instructions and dynamics avoid
622 collisions with slurs
624 @lilypond[fragment,relative=1]
626 b_1( f'_1_2_3 c_3_4_5 a)
628 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
633 Tuplets can be made to reach the next non-tuplet note by setting the
634 @code{tupletFullLength} property,
636 @lilypond[fragment,relative=2]
638 \remove Forbid_line_break_engraver
642 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
643 \set tupletFullLength = ##t
644 \times 2/3 { c8[ c c] }
649 This feature was sponsored by Trevor Bača.
652 When @code{strict-note-spacing} is set, notes are spaced without regard
653 for clefs, bar lines, and grace notes. For example,
655 @lilypond[fragment,relative=2]
656 \override Score.SpacingSpanner #'strict-note-spacing = ##t
657 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
660 This feature was sponsored by Trevor Bača.
663 Beams support the @code{break-overshoot} property, for example
665 @lilypond[relative=2,fragment]
666 \set allowBeamBreak = ##t
667 \override Beam #'break-overshoot = #'(1.0 . 2.0)
671 This feature was sponsored by Trevor Bača.
674 Proportional notation is supported. Notes can be spaced proportional
675 to their time-difference by assigning a duration to
676 @code{proportionalNotationDuration}. For example,
678 @lilypond[relative=2,fragment,ragged-right]
680 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
681 \new Staff { c8[ c c c c c] c4 c2 r2 }
682 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
686 This feature was sponsored by Trevor Bača.
689 Symbol sizes (e.g. accidentals) are disregarded for spacing if
690 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
693 @lilypond[relative=2,fragment]
695 \override Score.SpacingSpanner #'uniform-stretching = ##t
696 \new Staff { c16[ c c c c c c c c c16] }
698 \times 6/7 { c16 c c cis c c c }
704 This feature was sponsored by Trevor Bača.
707 Endings of broken tuplet brackets can be tuned. For example, you can
708 add arrows to the brackets,
710 @lilypond[fragment,ragged-right,relative=2]
711 \override TupletBracket
713 (markup #:arrow-head X LEFT #f)
714 (markup #:arrow-head X RIGHT #f))
716 c c c \bar "empty" \break c c
720 This feature was sponsored by Trevor Bača.
723 @item @textanchor{arrow-glyph}
724 Arrow heads were added to the Feta font.
729 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
730 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
735 These glyphs have been sponsored by Trevor Bača.
739 Nested tuplets are automatically positioned,
741 @lilypond[fragment,ragged-right,relative=2]
742 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
745 \times 3/5 { a a a a a }
749 This feature was sponsored by Trevor Bača.
752 Music expressions can be displayed, in LilyPond notation, using the
753 new @code{\displayLilyMusic} function. For instance:
755 \displayLilyMusic \transpose c a, { c d e f }
762 This feature was contributed by Nicolas Sceaux.
765 The current bar number may be checked with @code{\barNumberCheck}, eg.
772 will print a warning if it doesn't happen in measure 22.
775 If @code{showLastLength} is set, only the last few measures of a piece
776 are rendered, which speeds up correcting scores. For example, setting
779 showLastLength = R1*5
784 will render only the last five measures (assuming 4/4 time signature)
787 @item @textanchor{simple-melismata}
788 Melismata can be specified simply in the lyrics now, eg.
790 @lilypond[relative=1,verbatim,fragment]
798 This feature was sponsored by Nancho Alvarez
801 Suggested accidentals (for notating musica ficta) may be switched on
802 with @code{suggestAccidentals}
804 @lilypond[verbatim,fragment,relative=2]
805 \set suggestAccidentals = ##t
809 This feature was sponsored by Nancho Alvarez.
812 The setting @code{whichBar} and time-bookkeeping is now split into a
813 @code{Default_bar_line_engraver} and @code{Timing_translator}
816 @item @textanchor{pitched-trill}
817 Explicit pitches may be added to trills,
819 @lilypond[relative,verbatim,fragment]
820 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
823 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
826 Markup now supports formatting of text paragraphs, using
827 @code{\wordwrap} and @code{\justify}.
829 This feature was sponsored by Sven Axelsson.
833 For older news, go to
834 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
835 or @uref{../,go back} to the Documentation index.