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}
51 Music may for multiple parts can be interleaved, similar to MUP input.
52 This is done with the \parallelMusic function,
54 @lilypond[verbatim,raggedright]
55 \parallelMusic #'(voiceA voiceB) {
56 r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
58 r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
69 This feature was contributed by Nicolas Sceaux.
71 @item Alignments of staves may be tuned per system.
73 #(set-global-staff-size 13)
75 \relative c'' \new StaffGroup <<
80 #"Score.NonMusicalPaperColumn"
81 #'line-break-system-details
82 #'((alignment-offsets . (0 -5 -20)))
85 #"Score.NonMusicalPaperColumn"
86 #'line-break-system-details
87 #'((alignment-offsets . (0 -15 -20)))
93 This feature was sponsored by Trevor Bača.
95 @item Individual systems may be positioned manually,
99 tagline = "lily was here"
102 #(set-default-paper-size "a7" 'landscape)
112 #"Score.NonMusicalPaperColumn"
113 #'line-break-system-details
121 annotateheaders = ##t
126 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
128 @item A linebreaking configuration can now be saved as a @file{.ly}
129 file automatically. This allows vertical alignments to be stretched to
130 fit pages in a second formatting run. See
131 @inputfileref{input/regression,page-layout-twopass.ly} for an
134 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
136 @item The tie formatting for chords has been further polished. More
137 cases are handled gracefully, and all scoring parameters may now be
138 changed through the @code{details} property of the @code{Tie} grob.
140 This refinement was sponsored by Steve Doonan.
142 @item Positions of staff lines may now be set individually, for
145 @lilypond[raggedright]
146 \new Staff \relative c' {
147 \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 7)
152 This feature was sponsored by Andrea Valle.
155 @item A MusicXML importer is included now.
157 It was sponsored by among others, Mark van den Borre,
158 and Muziekacademie Lede.
161 Stem direction on the center staff line are now interpolated between
162 neighbors. This results in less stem direction changes, leading to a
163 more even appearance. For example,
165 @lilypond[raggedright]
173 This feature was sponsored by Mike Rolish and Basil Crow.
176 Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
179 @lilypond[raggedright]
182 \override TupletBracket #'bracket-visibility = ##f
183 \override TupletBracket #'staff-padding = ##f
184 \override Slur #'details #'region-size = #6
188 c( \stemDown g' \stemNeutral c,)
193 This feature was sponsored by Trent Johnston.
196 @item Tuplet brackets and numbers are implemented as separate grobs,
197 @code{TupletBracket} and @code{TupletNumber}.
199 This rewrite was sponsored by Trent Johnston.
201 @item String arguments for music functions may be specified without
202 @code{#} marks. This allows syntactical constructs (like \clef and
203 \bar) to be expressed in generic music functions.
205 @item Ties in chords are also formatted using a scoring based
206 formatting. This reduces the number of collisions for ties in chords,
208 @lilypond[raggedright,fragment,relative=2]
209 <b d f g> ~ <b d f g>
212 Here, the tie for the D is flipped, in spite the default rule for
215 This rewrite was sponsored by Steve Doonan.
217 @item With the @code{\tweak} music function, layout objects that are directly
218 connected to input may be tuned easily,
220 @lilypond[relative=2,fragment,verbatim,raggedright]
222 \tweak #'font-size #3 c
223 \tweak #'color #red d
224 \tweak #'style #'cross g
225 \tweak #'duration-log #1 a
229 This feature was sponsored by Sean Reed and Bertalan Fodor.
231 @item Generic music functions may now also be used on articulations
232 and chord elements, eg.
236 e-\keepWithTag #'bla -\tag #'bla ^2 >
239 This feature was sponsored by Sean Reed and Bertalan Fodor.
242 @item Spaces between lyrics and distance between syllables with
243 hyphens may now be separately tuned through the
244 @code{LyricSpace} grob.
246 This feature has been sponsored by Bertalan Fodor.
248 @item Texts set in a TrueType font are now kerned. This requires CVS
251 @lilypond[relative=2,fragment,raggedright]
256 @item Using the @TeX{} no longer requires linking or dynamically
257 opening the kpathsea library, making the backend more easily usable on
260 This fix was sponsored by Black Trash Productions.
262 @item The horizontal location of rehearsal marks can be adjusted by
263 setting the @code{rehearsalMarkAlignSymbol} property,
265 @lilypond[raggedright]
270 \set Score.rehearsalMarkAlignSymbol = #'key-signature
274 \set Score.rehearsalMarkAlignSymbol = #'clef
282 This feature was sponsored by Trevor Bača.
286 It's now possible to easily create deeply nested system start
289 @lilypond[raggedright]
292 \set StaffGroup.systemStartDelimiterHierarchy
293 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
303 In addition, there is now also support for ``square'' system start
306 This feature was sponsored by Trevor Bača.
309 Tie formatting now uses scoring. This opens the road to formatting
310 which handles complex situations require tradeoffs between different
313 This refactoring has been sponsored by Steve Doonan.
316 Each grob property may also be a ``grob closure.'' This means that it
317 is possible to combine functions. For example, the @code{Y-offset} of
318 a @code{InstrumentName} grob is defined to be
321 ,(ly:make-simple-closure
323 ,(ly:make-simple-closure
324 (,Self_alignment_interface::y_aligned_on_self))
325 ,(ly:make-simple-closure
326 (,Side_position_interface::y_aligned_on_support_refpoints)))
330 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
334 (+ (Self_alignment_interface::y_aligned_on_self @var{grob})
335 (Self_alignment_interface::y_aligned_on_support_refpoints @var{grob}))
340 Calculation of extent and offset of grob is now controlled via the
341 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
342 properties, for example
345 \override TextScript #'Y-offset = #-6
349 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
353 Each grob property can be a procedure. If this is the case, it is
354 assumed to be a routine that calculates said property. This is a
355 major internal cleanup, which also provides advanced tweakability for
356 power users. For example,
359 \override Beam #'direction
361 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
367 With this code fragment, the direction of a beam is decided to be up
368 or down, depending on the number of stems in the beam.
372 Support for figured bass has been rewritten. Now it supports
373 continuation lines, slashed figures, and its figures, brackets, and
374 alignments may tuned separately.
376 @lilypond[raggedright,fragment]
378 \relative { c4 c c c }
380 \set useBassFigureExtenders = ##t
381 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
385 This rewrite was sponsored by Trent Johnston and John Mandereau.
388 Subproperties, like the @code{details} field of @code{Slur} and
389 @code{Tie} may now be tuned with @code{\override}. For example,
392 \override Stem #'details #'beamed-lengths = #'(4 4 3)
396 shortens the stems in beams.
399 The default paper size may now be set from the command line using
403 Beamlets may stick out of the side of beams.
406 @lilypond[fragment,raggedright,relative=2]
408 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
409 \set stemLeftBeamCount = #2
412 \set stemRightBeamCount = #3
417 This feature was sponsored by Trevor Bača.
422 Vertical alignments of staves can now be tuned easily for individual
425 @lilypond[raggedright]
426 #(set-global-staff-size 13)
433 #"Score.NonMusicalPaperColumn"
434 #'line-break-system-details
435 #'((fixed-alignment-extra-space . 15))
447 This feature was sponsored by Nicolas Sceaux.
450 Vertical spacing for page layout can now be tuned for each system
451 individually. The dimensions that can be tuned can be visualized.
454 #(set-default-paper-size "a7" 'landscape)
457 \paper { annotatespacing = ##t }
461 These features were sponsored by Trevor Bača and Nicolas Sceaux.
464 The slope of a stem-tremolo may be set manually
466 @lilypond[fragment,relative=1,raggedright]
468 \once \override StemTremolo #'slope = #0.45
472 This feature was sponsored by Sven Axelsson.
475 Laissez vibrer ties can be created with @code{\laissezVibrer},
477 @lilypond[fragment,raggedright,relative=1]
478 <c e g>\laissezVibrer r <d f>\laissezVibrer
481 This feature was sponsored by Henrik Frisk.
484 The order of words in @code{\markup} commands may now be reversed by
485 setting the @code{text-direction} property. This is useful for
486 Right-to-Left languages like Hebrew.
488 This feature was sponsored by Aaron Mehl.
491 Texts over multi measure rests can stretch the corresponding measure,
492 if the appropriate @code{spring-and-rods} callback is set.
494 @lilypond[relative=2,fragment,raggedright]
495 \override MultiMeasureRestText #'springs-and-rods
496 = #Multi_measure_rest::set_text_rods
497 c1 R1 R1^"Very long long long text"
500 This feature was sponsored by Kris Shaffer.
503 @item @textanchor{tie-chords}
504 Formatting of ties in chords has been improved. Ties no longer collide
505 with note heads and stems. In addition, it is possible to manually
506 specify tie formatting
508 @lilypond[relative=2, fragment,raggedright]
509 <a c d f> ~ <a c d f>
511 \override TieColumn #'tie-configuration =
512 #'((0 . -1) '() (5.5 . 1) (7 . 1))
513 <b d f g> ~ <b d f g>
516 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
517 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
521 Formatting of isolated, single ties has been improved. Now, ties avoid
522 staff lines, flags and dots, without compromising their shape.
524 @lilypond[fragment,raggedright]
527 c16 c2...~ c16 ~ c2... |
528 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
532 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
533 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
537 @item @textanchor{repeat-counter}
538 With the @code{countPercentRepeats} property,
539 percent repeats get incremental numbers to indicate the accumulated repeat count.
541 @lilypond[relative=2,fragment,raggedright]
542 \set countPercentRepeats = ##t
543 \repeat percent 4 { c1 }
545 \repeat percent 4 { c2 c2 }
548 This feature was sponsored by Yoshinobu Ishizaki
551 Text scripts such as fingering instructions and dynamics avoid
552 collisions with slurs
554 @lilypond[fragment,relative=1]
556 b_1( f'_1_2_3 c_3_4_5 a)
558 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
563 Tuplets can be made to reach the next non-tuplet note by setting the
564 @code{tupletFullLength} property,
566 @lilypond[fragment,relative=2]
568 \remove Forbid_line_break_engraver
572 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
573 \set tupletFullLength = ##t
574 \times 2/3 { c8[ c c] }
579 This feature was sponsored by Trevor Bača.
582 When @code{strict-note-spacing} is set, notes are spaced without regard
583 for clefs, bar lines, and grace notes. For example,
585 @lilypond[fragment,relative=2]
586 \override Score.SpacingSpanner #'strict-note-spacing = ##t
587 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
590 This feature was sponsored by Trevor Bača.
593 Beams support the @code{break-overshoot} property, for example
595 @lilypond[relative=2,fragment]
596 \set allowBeamBreak = ##t
597 \override Beam #'break-overshoot = #'(1.0 . 2.0)
601 This feature was sponsored by Trevor Bača.
604 Proportional notation is supported. Notes can be spaced proportional
605 to their time-difference by assigning a duration to
606 @code{proportionalNotationDuration}. For example,
608 @lilypond[relative=2,fragment,raggedright]
610 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
611 \new Staff { c8[ c c c c c] c4 c2 r2 }
612 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
616 This feature was sponsored by Trevor Bača.
619 Symbol sizes (e.g. accidentals) are disregarded for spacing if
620 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
623 @lilypond[relative=2,fragment]
625 \override Score.SpacingSpanner #'uniform-stretching = ##t
626 \new Staff { c16[ c c c c c c c c c16] }
628 \times 6/7 { c16 c c cis c c c }
634 This feature was sponsored by Trevor Bača.
637 Endings of broken tuplet brackets can be tuned. For example, you can
638 add arrows to the brackets,
640 @lilypond[fragment,raggedright,relative=2]
641 \override TupletBracket
643 (markup #:arrow-head X LEFT #f)
644 (markup #:arrow-head X RIGHT #f))
646 c c c \bar "empty" \break c c
650 This feature was sponsored by Trevor Bača.
653 @item @textanchor{arrow-glyph}
654 Arrow heads were added to the Feta font.
659 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
660 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
665 These glyphs have been sponsored by Trevor Bača.
669 Nested tuplets are automatically positioned,
671 @lilypond[fragment,raggedright,relative=2]
672 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
675 \times 3/5 { a a a a a }
679 This feature was sponsored by Trevor Bača.
682 Music expressions can be displayed, in LilyPond notation, using the
683 new @code{\displayLilyMusic} function. For instance:
685 \displayLilyMusic \transpose c a, { c d e f }
692 This feature was contributed by Nicolas Sceaux.
695 The current bar number may be checked with @code{\barNumberCheck}, eg.
702 will print a warning if it doesn't happen in measure 22.
705 If @code{showLastLength} is set, only the last few measures of a piece
706 are rendered, which speeds up correcting scores. For example, setting
709 showLastLength = R1*5
714 will render only the last five measures (assuming 4/4 time signature)
717 @item @textanchor{simple-melismata}
718 Melismata can be specified simply in the lyrics now, eg.
720 @lilypond[relative=1,verbatim,fragment]
728 This feature was sponsored by Nancho Alvarez
731 Suggested accidentals (for notating musica ficta) may be switched on
732 with @code{suggestAccidentals}
734 @lilypond[verbatim,fragment,relative=2]
735 \set suggestAccidentals = ##t
739 This feature was sponsored by Nancho Alvarez.
742 The setting @code{whichBar} and time-bookkeeping is now split into a
743 @code{Default_bar_line_engraver} and @code{Timing_translator}
746 @item @textanchor{pitched-trill}
747 Explicit pitches may be added to trills,
749 @lilypond[relative,verbatim,fragment]
750 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
753 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
756 Markup now supports formatting of text paragraphs, using
757 @code{\wordwrap} and @code{\justify}.
759 This feature was sponsored by Sven Axelsson.
763 For older news, go to
764 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
765 or @uref{../,go back} to the Documentation index.