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}.
49 Stem direction on the center staff line are now interpolated between
50 neighbors. This results in less stem direction changes, leading to a
51 more even appearance. For example,
53 @lilypond[raggedright]
61 This feature was sponsored by Mike Rolish and Basil Crow.
64 Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
67 @lilypond[raggedright]
70 \override TupletBracket #'bracket-visibility = ##f
71 \override TupletBracket #'staff-padding = ##f
72 \override Slur #'details #'region-size = #6
76 c( \stemDown g' \stemNeutral c,)
81 This feature was sponsored by Trent Johnston.
83 @item Tuplet brackets and numbers are implemented as separate grobs,
84 @code{TupletBracket} and @code{TupletNumber}.
86 This rewrite was sponsored by Trent Johnston.
88 @item String arguments for music functions may be specified without
89 @code{#} marks. This allows syntactical constructs (like \clef and
90 \bar) to be expressed in generic music functions.
92 @item Ties in chords are also formatted using a scoring based
93 formatting. This reduces the number of collisions for ties in chords,
95 @lilypond[raggedright,fragment,relative=2]
99 Here, the tie for the D is flipped, in spite the default rule for
102 This rewrite was sponsored by Steve Doonan.
104 @item With the @code{\tweak} music function, layout objects that are directly
105 connected to input may be tuned easily,
107 @lilypond[relative=2,fragment,verbatim,raggedright]
109 \tweak #'font-size #3 c
110 \tweak #'color #red d
111 \tweak #'style #'cross g
112 \tweak #'duration-log #1 a
116 This feature was sponsored by Sean Reed and Bertalan Fodor.
118 @item Generic music functions may now also be used on articulations
119 and chord elements, eg.
123 e-\keepWithTag #'bla -\tag #'bla ^2 >
126 This feature was sponsored by Sean Reed and Bertalan Fodor.
129 @item Spaces between lyrics and distance between syllables with
130 hyphens may now be separately tuned through the
131 @code{LyricSpace} grob.
133 This feature has been sponsored by Bertalan Fodor.
135 @item A MusicXML importer is included now.
137 @item Texts set in a TrueType font are now kerned. This requires CVS
140 @item Using the @TeX{} no longer requires linking or dynamically
141 opening the kpathsea library, making the backend more easily usable on
144 This fix was sponsored by Black Trash Productions.
146 @item The horizontal location of rehearsal marks can be adjusted by
147 setting the @code{rehearsalMarkAlignSymbol} property,
149 @lilypond[raggedright]
154 \set Score.rehearsalMarkAlignSymbol = #'key-signature
158 \set Score.rehearsalMarkAlignSymbol = #'clef
166 This feature was sponsored by Trevor Bača.
170 It's now possible to easily create deeply nested system start
173 @lilypond[raggedright]
176 \set StaffGroup.systemStartDelimiterHierarchy
177 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
187 In addition, there is now also support for ``square'' system start
190 This feature was sponsored by Trevor Bača.
193 Tie formatting now uses scoring. This opens the road to formatting
194 which handles complex situations require tradeoffs between different
197 This refactoring has been sponsored by Steve Doonan.
200 Each grob property may also be a ``grob closure.'' This means that it
201 is possible to combine functions. For example, the @code{Y-offset} of
202 a @code{InstrumentName} grob is defined to be
205 ,(ly:make-simple-closure
207 ,(ly:make-simple-closure
208 (,Self_alignment_interface::y_aligned_on_self))
209 ,(ly:make-simple-closure
210 (,Side_position_interface::y_aligned_on_support_refpoints)))
214 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
218 (+ (Self_alignment_interface::y_aligned_on_self @var{grob})
219 (Self_alignment_interface::y_aligned_on_support_refpoints @var{grob}))
224 Calculation of extent and offset of grob is now controlled via the
225 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
226 properties, for example
229 \override TextScript #'Y-offset = #-6
233 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
237 Each grob property can be a procedure. If this is the case, it is
238 assumed to be a routine that calculates said property. This is a
239 major internal cleanup, which also provides advanced tweakability for
240 power users. For example,
243 \override Beam #'direction
245 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
251 With this code fragment, the direction of a beam is decided to be up
252 or down, depending on the number of stems in the beam.
256 Support for figured bass has been rewritten. Now it supports
257 continuation lines, slashed figures, and its figures, brackets, and alignments may
260 @lilypond[raggedright,fragment]
262 \relative { c4 c c c }
264 \set useBassFigureExtenders = ##t
265 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
269 This rewrite was sponsored by Trent Johnston and John Mandereau.
272 Subproperties, like the @code{details} field of @code{Slur} and
273 @code{Tie} may now be tuned with @code{\override}. For example,
276 \override Stem #'details #'beamed-lengths = #'(4 4 3)
280 shortens the stems in beams.
283 The default paper size may now be set from the command line using
287 Beamlets may stick out of the side of beams.
290 @lilypond[fragment,raggedright,relative=2]
292 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
293 \set stemLeftBeamCount = #2
296 \set stemRightBeamCount = #3
301 This feature was sponsored by Trevor Bača.
306 Vertical alignments of staves can now be tuned easily for individual
309 @lilypond[raggedright]
310 #(set-global-staff-size 13)
317 #"Score.NonMusicalPaperColumn"
318 #'line-break-system-details
319 #'((fixed-alignment-extra-space . 15))
331 This feature was sponsored by Nicolas Sceaux.
334 Vertical spacing for page layout can now be tuned for each system
335 individually. The dimensions that can be tuned can be visualized.
338 #(set-default-paper-size "a7" 'landscape)
341 \paper { annotatespacing = ##t }
345 These features were sponsored by Trevor Bača and Nicolas Sceaux.
348 The slope of a stem-tremolo may be set manually
350 @lilypond[fragment,relative=1,raggedright]
352 \once \override StemTremolo #'slope = #0.45
356 This feature was sponsored by Sven Axelsson.
359 Laissez vibrer ties can be created with @code{\laissezVibrer},
361 @lilypond[fragment,raggedright,relative=1]
362 <c e g>\laissezVibrer r <d f>\laissezVibrer
365 This feature was sponsored by Henrik Frisk.
368 The order of words in @code{\markup} commands may now be reversed by
369 setting the @code{text-direction} property. This is useful for
370 Right-to-Left languages like Hebrew.
372 This feature was sponsored by Aaron Mehl.
375 Texts over multi measure rests can stretch the corresponding measure,
376 if the appropriate @code{spring-and-rods} callback is set.
378 @lilypond[relative=2,fragment,raggedright]
379 \override MultiMeasureRestText #'springs-and-rods
380 = #Multi_measure_rest::set_text_rods
381 c1 R1 R1^"Very long long long text"
384 This feature was sponsored by Kris Shaffer.
387 @item @textanchor{tie-chords}
388 Formatting of ties in chords has been improved. Ties no longer collide
389 with note heads and stems. In addition, it is possible to manually
390 specify tie formatting
392 @lilypond[relative=2, fragment,raggedright]
393 <a c d f> ~ <a c d f>
395 \override TieColumn #'tie-configuration =
396 #'((0 . -1) (2 . -1) (5.5 . 1) (7 . 1))
397 <b d f g> ~ <b d f g>
400 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
401 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
405 Formatting of isolated, single ties has been improved. Now, ties avoid
406 staff lines, flags and dots, without compromising their shape.
408 @lilypond[fragment,raggedright]
411 c16 c2...~ c16 ~ c2... |
412 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
416 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
417 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
421 @item @textanchor{repeat-counter}
422 With the @code{countPercentRepeats} property,
423 percent repeats get incremental numbers to indicate the accumulated repeat count.
425 @lilypond[relative=2,fragment,raggedright]
426 \set countPercentRepeats = ##t
427 \repeat percent 4 { c1 }
429 \repeat percent 4 { c2 c2 }
432 This feature was sponsored by Yoshinobu Ishizaki
435 Text scripts such as fingering instructions and dynamics avoid
436 collisions with slurs
438 @lilypond[fragment,relative=1]
440 b_1( f'_1_2_3 c_3_4_5 a)
442 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
447 Tuplets can be made to reach the next non-tuplet note by setting the
448 @code{tupletFullLength} property,
450 @lilypond[fragment,relative=2]
452 \remove Forbid_line_break_engraver
456 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
457 \set tupletFullLength = ##t
458 \times 2/3 { c8[ c c] }
463 This feature was sponsored by Trevor Bača.
466 When @code{strict-note-spacing} is set, notes are spaced without regard
467 for clefs, bar lines, and grace notes. For example,
469 @lilypond[fragment,relative=2]
470 \override Score.SpacingSpanner #'strict-note-spacing = ##t
471 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
474 This feature was sponsored by Trevor Bača.
477 Beams support the @code{break-overshoot} property, for example
479 @lilypond[relative=2,fragment]
480 \set allowBeamBreak = ##t
481 \override Beam #'break-overshoot = #'(1.0 . 2.0)
485 This feature was sponsored by Trevor Bača.
488 Proportional notation is supported. Notes can be spaced proportional
489 to their time-difference by assigning a duration to
490 @code{proportionalNotationDuration}. For example,
492 @lilypond[relative=2,fragment,raggedright]
494 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
495 \new Staff { c8[ c c c c c] c4 c2 r2 }
496 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
500 This feature was sponsored by Trevor Bača.
503 Symbol sizes (e.g. accidentals) are disregarded for spacing if
504 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
507 @lilypond[relative=2,fragment]
509 \override Score.SpacingSpanner #'uniform-stretching = ##t
510 \new Staff { c16[ c c c c c c c c c16] }
512 \times 6/7 { c16 c c cis c c c }
518 This feature was sponsored by Trevor Bača.
521 Endings of broken tuplet brackets can be tuned. For example, you can
522 add arrows to the brackets,
524 @lilypond[fragment,raggedright,relative=2]
525 \override TupletBracket
527 (markup #:arrow-head X LEFT #f)
528 (markup #:arrow-head X RIGHT #f))
530 c c c \bar "empty" \break c c
534 This feature was sponsored by Trevor Bača.
537 @item @textanchor{arrow-glyph}
538 Arrow heads were added to the Feta font.
543 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
544 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
549 These glyphs have been sponsored by Trevor Bača.
553 Nested tuplets are automatically positioned,
555 @lilypond[fragment,raggedright,relative=2]
556 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
559 \times 3/5 { a a a a a }
563 This feature was sponsored by Trevor Bača.
566 Music expressions can be displayed, in LilyPond notation, using the
567 new @code{\displayLilyMusic} function. For instance:
569 \displayLilyMusic \transpose c a, { c d e f }
576 This feature was contributed by Nicolas Sceaux.
579 The current bar number may be checked with @code{\barNumberCheck}, eg.
586 will print a warning if it doesn't happen in measure 22.
589 If @code{showLastLength} is set, only the last few measures of a piece
590 are rendered, which speeds up correcting scores. For example, setting
593 showLastLength = R1*5
598 will render only the last five measures (assuming 4/4 time signature)
601 @item @textanchor{simple-melismata}
602 Melismata can be specified simply in the lyrics now, eg.
604 @lilypond[relative=1,verbatim,fragment]
612 This feature was sponsored by Nancho Alvarez
615 Suggested accidentals (for notating musica ficta) may be switched on
616 with @code{suggestAccidentals}
618 @lilypond[verbatim,fragment,relative=2]
619 \set suggestAccidentals = ##t
623 This feature was sponsored by Nancho Alvarez.
626 The setting @code{whichBar} and time-bookkeeping is now split into a
627 @code{Default_bar_line_engraver} and @code{Timing_translator}
630 @item @textanchor{pitched-trill}
631 Explicit pitches may be added to trills,
633 @lilypond[relative,verbatim,fragment]
634 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
637 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
640 Markup now supports formatting of text paragraphs, using
641 @code{\wordwrap} and @code{\justify}.
643 This feature was sponsored by Sven Axelsson.
647 For older news, go to
648 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html}.