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}.
48 @item String arguments for music functions may be specified without
49 @code{#} marks. This allows syntactical constructs (like \clef and
50 \bar) to be expressed in generic music functions.
52 @item Ties in chords are also formatted using a scoring based
53 formatting. This reduces the number of collisions for ties in chords,
55 @lilypond[raggedright,fragment,relative=2]
59 Here, the tie for the D is flipped, in spite the default rule for
62 This rewrite was sponsored by Steve Doonan.
64 @item With the @code{\tweak} music function, layout objects that are directly
65 connected to input may be tuned easily,
67 @lilypond[relative=2,fragment,verbatim,raggedright]
69 \tweak #'font-size #3 c
71 \tweak #'style #'cross g
72 \tweak #'duration-log #1 a
76 This feature was sponsored by Sean Reed and Bertalan Fodor.
78 @item Generic music functions may now also be used on articulations
79 and chord elements, eg.
83 e-\keepWithTag #'bla -\tag #'bla ^2 >
86 This feature was sponsored by Sean Reed and Bertalan Fodor.
89 @item Spaces between lyrics and distance between syllables with
90 hyphens may now be separately tuned through the
91 @code{LyricSpace} grob.
93 This feature has been sponsored by Bertalan Fodor.
95 @item A MusicXML importer is included now.
97 @item Texts set in a TrueType font are now kerned. This requires CVS
100 @item Using the @TeX{} no longer requires linking or dynamically
101 opening the kpathsea library, making the backend more easily usable on
104 This fix was sponsored by Black Trash Productions.
106 @item The horizontal location of rehearsal marks can be adjusted by
107 setting the @code{rehearsalMarkAlignSymbol} property,
109 @lilypond[raggedright]
114 \set Score.rehearsalMarkAlignSymbol = #'key-signature
118 \set Score.rehearsalMarkAlignSymbol = #'clef
126 This feature was sponsored by Trevor Bača.
130 It's now possible to easily create deeply nested system start
133 @lilypond[raggedright]
136 \set StaffGroup.systemStartDelimiterHierarchy
137 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
147 In addition, there is now also support for ``square'' system start
150 This feature was sponsored by Trevor Bača.
153 Tie formatting now uses scoring. This opens the road to formatting
154 which handles complex situations require tradeoffs between different
157 This refactoring has been sponsored by Steve Doonan.
160 Each grob property may also be a ``grob closure.'' This means that it
161 is possible to combine functions. For example, the @code{Y-offset} of
162 a @code{InstrumentName} grob is defined to be
165 ,(ly:make-simple-closure
167 ,(ly:make-simple-closure
168 (,Self_alignment_interface::y_aligned_on_self))
169 ,(ly:make-simple-closure
170 (,Side_position_interface::y_aligned_on_support_refpoints)))
174 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
178 (+ (Self_alignment_interface::y_aligned_on_self @var{grob})
179 (Self_alignment_interface::y_aligned_on_support_refpoints @var{grob}))
184 Calculation of extent and offset of grob is now controlled via the
185 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
186 properties, for example
189 \override TextScript #'Y-offset = #-6
193 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
197 Each grob property can be a procedure. If this is the case, it is
198 assumed to be a routine that calculates said property. This is a
199 major internal cleanup, which also provides advanced tweakability for
200 power users. For example,
203 \override Beam #'direction
205 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
211 With this code fragment, the direction of a beam is decided to be up
212 or down, depending on the number of stems in the beam.
216 Support for figured bass has been rewritten. Now it supports
217 continuation lines, slashed figures, and its figures, brackets, and alignments may
220 @lilypond[raggedright,fragment]
222 \relative { c4 c c c }
224 \set useBassFigureExtenders = ##t
225 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
229 This rewrite was sponsored by Trent Johnston and John Mandereau.
232 Subproperties, like the @code{details} field of @code{Slur} and
233 @code{Tie} may now be tuned with @code{\override}. For example,
236 \override Stem #'details #'beamed-lengths = #'(4 4 3)
240 shortens the stems in beams.
243 The default paper size may now be set from the command line using
247 Beamlets may stick out of the side of beams.
250 @lilypond[fragment,raggedright,relative=2]
252 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
253 \set stemLeftBeamCount = #2
256 \set stemRightBeamCount = #3
261 This feature was sponsored by Trevor Bača.
266 Vertical alignments of staves can now be tuned easily for individual
269 @lilypond[raggedright]
270 #(set-global-staff-size 13)
277 #"Score.NonMusicalPaperColumn"
278 #'line-break-system-details
279 #'((fixed-alignment-extra-space . 15))
291 This feature was sponsored by Nicolas Sceaux.
294 Vertical spacing for page layout can now be tuned for each system
295 individually. The dimensions that can be tuned can be visualized.
298 #(set-default-paper-size "a7" 'landscape)
301 \paper { annotatespacing = ##t }
305 These features were sponsored by Trevor Bača and Nicolas Sceaux.
308 The slope of a stem-tremolo may be set manually
310 @lilypond[fragment,relative=1,raggedright]
312 \once \override StemTremolo #'slope = #0.45
316 This feature was sponsored by Sven Axelsson.
319 Laissez vibrer ties can be created with @code{\laissezVibrer},
321 @lilypond[fragment,raggedright,relative=1]
322 <c e g>\laissezVibrer r <d f>\laissezVibrer
325 This feature was sponsored by Henrik Frisk.
328 The order of words in @code{\markup} commands may now be reversed by
329 setting the @code{text-direction} property. This is useful for
330 Right-to-Left languages like Hebrew.
332 This feature was sponsored by Aaron Mehl.
335 Texts over multi measure rests can stretch the corresponding measure,
336 if the appropriate @code{spring-and-rods} callback is set.
338 @lilypond[relative=2,fragment,raggedright]
339 \override MultiMeasureRestText #'springs-and-rods
340 = #Multi_measure_rest::set_text_rods
341 c1 R1 R1^"Very long long long text"
344 This feature was sponsored by Kris Shaffer.
347 @item @textanchor{tie-chords}
348 Formatting of ties in chords has been improved. Ties no longer collide
349 with note heads and stems. In addition, it is possible to manually
350 specify tie formatting
352 @lilypond[relative=2, fragment,raggedright]
353 <a c d f> ~ <a c d f>
355 \override TieColumn #'tie-configuration =
356 #'((0 . -1) (2 . -1) (5.5 . 1) (7 . 1))
357 <b d f g> ~ <b d f g>
360 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
361 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
365 Formatting of isolated, single ties has been improved. Now, ties avoid
366 staff lines, flags and dots, without compromising their shape.
368 @lilypond[fragment,raggedright]
371 c16 c2...~ c16 ~ c2... |
372 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
376 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
377 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
381 @item @textanchor{repeat-counter}
382 With the @code{countPercentRepeats} property,
383 percent repeats get incremental numbers to indicate the accumulated repeat count.
385 @lilypond[relative=2,fragment,raggedright]
386 \set countPercentRepeats = ##t
387 \repeat percent 4 { c1 }
389 \repeat percent 4 { c2 c2 }
392 This feature was sponsored by Yoshinobu Ishizaki
395 Text scripts such as fingering instructions and dynamics avoid
396 collisions with slurs
398 @lilypond[fragment,relative=1]
400 b_1( f'_1_2_3 c_3_4_5 a)
402 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
407 Tuplets can be made to reach the next non-tuplet note by setting the
408 @code{tupletFullLength} property,
410 @lilypond[fragment,relative=2]
412 \remove Forbid_line_break_engraver
416 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
417 \set tupletFullLength = ##t
418 \times 2/3 { c8[ c c] }
423 This feature was sponsored by Trevor Bača.
426 When @code{strict-note-spacing} is set, notes are spaced without regard
427 for clefs, bar lines, and grace notes. For example,
429 @lilypond[fragment,relative=2]
430 \override Score.SpacingSpanner #'strict-note-spacing = ##t
431 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
434 This feature was sponsored by Trevor Bača.
437 Beams support the @code{break-overshoot} property, for example
439 @lilypond[relative=2,fragment]
440 \set allowBeamBreak = ##t
441 \override Beam #'break-overshoot = #'(1.0 . 2.0)
445 This feature was sponsored by Trevor Bača.
448 Proportional notation is supported. Notes can be spaced proportional
449 to their time-difference by assigning a duration to
450 @code{proportionalNotationDuration}. For example,
452 @lilypond[relative=2,fragment,raggedright]
454 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
455 \new Staff { c8[ c c c c c] c4 c2 r2 }
456 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
460 This feature was sponsored by Trevor Bača.
463 Symbol sizes (e.g. accidentals) are disregarded for spacing if
464 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
467 @lilypond[relative=2,fragment]
469 \override Score.SpacingSpanner #'uniform-stretching = ##t
470 \new Staff { c16[ c c c c c c c c c16] }
472 \times 6/7 { c16 c c cis c c c }
478 This feature was sponsored by Trevor Bača.
481 Endings of broken tuplet brackets can be tuned. For example, you can
482 add arrows to the brackets,
484 @lilypond[fragment,raggedright,relative=2]
485 \override TupletBracket
487 (markup #:arrow-head X LEFT #f)
488 (markup #:arrow-head X RIGHT #f))
490 c c c \bar "empty" \break c c
494 This feature was sponsored by Trevor Bača.
497 @item @textanchor{arrow-glyph}
498 Arrow heads were added to the Feta font.
503 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
504 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
509 These glyphs have been sponsored by Trevor Bača.
513 Nested tuplets are automatically positioned,
515 @lilypond[fragment,raggedright,relative=2]
516 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
519 \times 3/5 { a a a a a }
523 This feature was sponsored by Trevor Bača.
526 Music expressions can be displayed, in LilyPond notation, using the
527 new @code{\displayLilyMusic} function. For instance:
529 \displayLilyMusic \transpose c a, { c d e f }
536 This feature was contributed by Nicolas Sceaux.
539 The current bar number may be checked with @code{\barNumberCheck}, eg.
546 will print a warning if it doesn't happen in measure 22.
549 If @code{showLastLength} is set, only the last few measures of a piece
550 are rendered, which speeds up correcting scores. For example, setting
553 showLastLength = R1*5
558 will render only the last five measures (assuming 4/4 time signature)
561 @item @textanchor{simple-melismata}
562 Melismata can be specified simply in the lyrics now, eg.
564 @lilypond[relative=1,verbatim,fragment]
572 This feature was sponsored by Nancho Alvarez
575 Suggested accidentals (for notating musica ficta) may be switched on
576 with @code{suggestAccidentals}
578 @lilypond[verbatim,fragment,relative=2]
579 \set suggestAccidentals = ##t
583 This feature was sponsored by Nancho Alvarez.
586 The setting @code{whichBar} and time-bookkeeping is now split into a
587 @code{Default_bar_line_engraver} and @code{Timing_translator}
590 @item @textanchor{pitched-trill}
591 Explicit pitches may be added to trills,
593 @lilypond[relative,verbatim,fragment]
594 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
597 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
600 Markup now supports formatting of text paragraphs, using
601 @code{\wordwrap} and @code{\justify}.
603 This feature was sponsored by Sven Axelsson.
607 For older news, go to
608 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html}.