@node Top
@top
@end ifnottex
-@unnumbered New features in 2.7 since 2.6
+@unnumbered New features in 2.9 since 2.8
@ifhtml
This document is also available in @uref{NEWS.pdf,PDF}. It's part of
@end ignore
-@item LilyPond PostScript output is now also compatible with GSView, a
-PostScript viewer for the Windows platform.
-
-@item The property @code{Score.skipTypesetting} is also respected
-by the MIDI output now.
-
-This feature was contributed by Johannes Schindelin.
-
-@item A score may now be specified to take a fixed number of
-systems, by setting the @code{system-count} variable in the
-@code{\layout} block.
-
-This feature was contributed by Joe Neeman.
-
-@item Ties may now be attached to the left side of a note with
-@code{\repeatTie}, for use with volta repeats.
-
-@lilypond[relative=2,fragment,ragged-right]
-r4 <c e g>\repeatTie
-@end lilypond
-
-This feature was sponsored by Steve Doonan.
-
-@item Newly created contexts may also be named with the following
-syntax,
-
-@verbatim
-\new Voice = "alto" ...
-@end verbatim
-
-@item Thicknesses of tie and slurs may be tuned separately for the
-endings and the middle part.
-
-@item Items directly connected with a music input element may be
-parenthesized, for example,
-
-@lilypond[verbatim,ragged-right,fragment,relative=2]
-c4-\parenthesize -.
-<d \parenthesize f a>
-@end lilypond
-
-This feature was sponsored by Ramana Kumar.
-
-@item Multi-word
- variables in the @code{\paper} and @code{\layout} block are now
- separated with dashes, i.e.
-
-@verbatim
-\paper {
- ragged-right = ##t
- top-margin = 5 \cm
-}
-@end verbatim
-
-@noindent
-The same holds for analogous options in lilypond-book.
-
-@item
-Music for multiple parts can be interleaved, similar to MUP input.
-This is done with the @code{\parallelMusic} function,
-
-@lilypond[verbatim,ragged-right]
-\parallelMusic #'(voiceA voiceB) {
- r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
- c'2 c'2 |
- r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
- c'2 c'2 |
-}
-\new StaffGroup <<
- \new Staff
- \new Voice \voiceA
- \new Staff
- \new Voice \voiceB
->>
-@end lilypond
-
-This feature was contributed by Nicolas Sceaux.
-
-@item Alignments of staves may be tuned per system.
-@lilypond[]
-#(set-global-staff-size 13)
-\paper {
- line-width = 8\cm
-}
-\relative c'' \new StaffGroup <<
- \new Staff { c1 c }
- \new Staff { c c }
- \new Staff {
- \overrideProperty
- #"Score.NonMusicalPaperColumn"
- #'line-break-system-details
- #'((alignment-offsets . (0 -5 -20)))
- c1 \break
- \overrideProperty
- #"Score.NonMusicalPaperColumn"
- #'line-break-system-details
- #'((alignment-offsets . (0 -15 -20)))
- c1
- }
->>
-@end lilypond
-
-This feature was sponsored by Trevor Bača.
-
-@item Individual systems may be positioned manually,
-
-@lilypond[]
-\header{
- tagline = "lily was here"
-}
-
-#(set-default-paper-size "a7" 'landscape)
-\paper {
- head-separation = 0.0
- foot-separation = 0.0
- }
-\book {
- \score {
- \relative c'' {
- c1\break
- \overrideProperty
- #"Score.NonMusicalPaperColumn"
- #'line-break-system-details
- #'((Y-offset . 24.5)
- (X-offset . -7.5))
- c1
- }
- }
- \paper {
- annotate-page = ##t
- annotate-headers = ##t
- }
-}
-@end lilypond
-
-This feature was sponsored by Trevor Bača and Nicolas Sceaux.
-
-@item A linebreaking configuration can now be saved as a @file{.ly}
-file automatically. This allows vertical alignments to be stretched to
-fit pages in a second formatting run. See
-@inputfileref{input/regression,page-layout-twopass.ly} for an
-example.
-
-This feature was sponsored by Trevor Bača and Nicolas Sceaux.
-
-@item The tie formatting for chords has been further polished. More
-cases are handled gracefully, and all scoring parameters may now be
-changed through the @code{details} property of the @code{Tie} grob.
-
-This refinement was sponsored by Steve Doonan.
-
-@item Positions of staff lines may now be set individually, for
-example
-
-@lilypond[ragged-right]
-\new Staff \relative c' {
- \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 7)
- g c f b e a
-}
-@end lilypond
-
-This feature was sponsored by Andrea Valle.
-
-
-@item A MusicXML importer is included now.
-
-It was sponsored by among others, Mark van den Borre,
-and Muziekacademie Lede.
-
-@item
-Stem direction on the center staff line can now be interpolated
-between neighbors. This results in less stem direction changes,
-leading to a more even appearance. For example,
-
-@lilypond[ragged-right]
-\new Voice \with {
- \consists "Melody_engraver"
- \override Stem #'neutral-direction = #'()
-}
-\relative c'' {
- c4 b c b
- c c c r
- b a b a
-}
-@end lilypond
-
-This feature was sponsored by Mike Rolish and Basil Crow.
-
-@item
-Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
-staff.
-
-@lilypond[ragged-right]
-\relative {
- \slurUp
- \override TupletBracket #'bracket-visibility = ##f
- \override TupletBracket #'staff-padding = ##f
- \override Slur #'details #'region-size = #6
-
- \times 2/3
- {
- c( \stemDown g' \stemNeutral c,)
- }
-}
-@end lilypond
-
-This feature was sponsored by Trent Johnston.
-
-
-@item Tuplet brackets and numbers are implemented as separate grobs,
-@code{TupletBracket} and @code{TupletNumber}.
-
-This rewrite was sponsored by Trent Johnston.
-
-@item String arguments for music functions may be specified without
-@code{#} marks. Now, \clef and \bar are also music functions.
-
-@item Ties in chords are also formatted using a scoring based
-formatting. This reduces the number of collisions for ties in chords,
-
-@lilypond[ragged-right,fragment,relative=2]
- <b d f g> ~ <b d f g>
-@end lilypond
-
-Here, the tie for the D is flipped, in spite the default rule for
-tie directions.
-
-This rewrite was sponsored by Steve Doonan.
-
-@item With the @code{\tweak} music function, layout objects that are directly
-connected to input may be tuned easily,
-
-@lilypond[relative=2,fragment,verbatim,ragged-right]
-<
- \tweak #'font-size #3 c
- \tweak #'color #red d
- \tweak #'style #'cross g
- \tweak #'duration-log #1 a
->4
-@end lilypond
-
-This feature was sponsored by Sean Reed and Bertalan Fodor.
-
-@item Generic music functions may now also be used on articulations
-and chord elements, eg.
-
-@verbatim
- < \displayMusic c
- e-\keepWithTag #'bla -\tag #'bla ^2 >
-@end verbatim
-
-This feature was sponsored by Sean Reed and Bertalan Fodor.
-
-
-@item Spaces between lyrics and distance between syllables with
-hyphens may now be separately tuned through the
-@code{LyricSpace} grob.
-
-This feature has been sponsored by Bertalan Fodor.
-
-@item Texts set in a TrueType font are now kerned. This requires CVS
-Pango or Pango 1.12.
-
-@lilypond[relative=2,fragment,ragged-right]
- c4^"VAVAVAffififl"
-@end lilypond
-
-
-@item Using the @TeX{} no longer requires linking or dynamically
-opening the kpathsea library, making the backend more easily usable on
-various systems.
-
-This fix was sponsored by Black Trash Productions.
-
-@item The horizontal location of rehearsal marks can be adjusted by
-setting the @code{rehearsalMarkAlignSymbol} property,
-
-@lilypond[ragged-right]
-\relative {
- c1
- \key cis \major
- \clef alto
- \override Score.RehearsalMark #'break-align-symbol = #'key-signature
- \mark "on-key"
- cis
- \key ces \major
- \override Score.RehearsalMark #'break-align-symbol = #'clef
- \clef treble
- \mark "on clef"
- ces
-}
-@end lilypond
-
-
-This feature was sponsored by Trevor Bača.
-
-
-@item
-It's now possible to easily create deeply nested system start
-delimiters,
-
-@lilypond[ragged-right]
-\new StaffGroup
-\relative <<
- \set StaffGroup.systemStartDelimiterHierarchy
- = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
- \new Staff { c1 }
- \new Staff { c1 }
- \new Staff { c1 }
- \new Staff { c1 }
- \new Staff { c1 }
->>
-@end lilypond
-
-
-In addition, there is now also support for ``square'' system start
-brackets.
-
-This feature was sponsored by Trevor Bača.
-
-@item
-Tie formatting now uses scoring. This opens the road to formatting
-which handles complex situations require tradeoffs between different
-beauty factors.
-
-This refactoring has been sponsored by Steve Doonan.
-
-@item
-Each grob property may also be a ``grob closure.'' This means that it
-is possible to combine functions. For example, the @code{Y-offset} of
-a @code{InstrumentName} grob is defined to be
-
-@verbatim
-,(ly:make-simple-closure
- `(,+
- ,(ly:make-simple-closure
- (,ly:self-alignment-interface::y-aligned-on-self))
- ,(ly:make-simple-closure
- (,ly:side-position-interface::y-aligned-on-support-refpoints)))
-@end verbatim
-
-@noindent
-During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
-as
-
-@example
-(+ (ly:self-alignment-interface::y-aligned-on-self @var{grob})
- (ly:self-alignment-interface::y-aligned-on-support-refpoints @var{grob}))
-@end example
-
-
-@item
-Calculation of extent and offset of grob is now controlled via the
-@code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
-properties, for example
-
-@verbatim
-\override TextScript #'Y-offset = #-6
-@end verbatim
-
-@noindent
-hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
-grobs.
-
-@item
-Each grob property can be a procedure. If this is the case, it is
-assumed to be a routine that calculates said property. This is a
-major internal cleanup, which also provides advanced tweakability for
-power users. For example,
-
-@verbatim
-\override Beam #'direction
- = #(lambda (grob)
- (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
- DOWN
- UP))
-@end verbatim
-
-@noindent
-With this code fragment, the direction of a beam is decided to be up
-or down, depending on the number of stems in the beam.
-
-
-@item
-Support for figured bass has been rewritten. Now it supports
-continuation lines, slashed figures, and its figures, brackets, and
-alignments may tuned separately.
-
-@lilypond[ragged-right,fragment]
-<<
- \relative { c4 c c c }
- \figures {
- \set useBassFigureExtenders = ##t
- <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
-} >>
-@end lilypond
-
-This rewrite was sponsored by Trent Johnston and John Mandereau.
-
-@item
-Subproperties, like the @code{details} field of @code{Slur} and
-@code{Tie} may now be tuned with @code{\override}. For example,
-
-@verbatim
-\override Stem #'details #'beamed-lengths = #'(4 4 3)
-@end verbatim
-
-@noindent
-shortens the stems in beams.
-
-@item
-The default paper size may now be set from the command line using
-@code{-dpaper-size}.
-
-@item
-Beamlets may stick out of the side of beams.
-
-
-@lilypond[fragment,ragged-right,relative=2]
-{
- \override Beam #'break-overshoot = #'(-0.5 . 0.5)
- \set stemLeftBeamCount = #2
- c8[
- c16
- \set stemRightBeamCount = #3
- c ]
-}
-@end lilypond
-
-This feature was sponsored by Trevor Bača.
-
-
-
-@item
-Vertical alignments of staves can now be tuned easily for individual
-systems.
-
-@lilypond[ragged-right]
-#(set-global-staff-size 13)
-\relative c'' <<
- \new PianoStaff <<
- \new Voice {
- c1
-
- \overrideProperty
- #"Score.NonMusicalPaperColumn"
- #'line-break-system-details
- #'((fixed-alignment-extra-space . 15))
- c
-
- }
- {
- c1\break
- c\break
- }
- >>
->>
-@end lilypond
-
-This feature was sponsored by Nicolas Sceaux.
-
-@item
-Vertical spacing for page layout can now be tuned for each system
-individually. The dimensions that can be tuned can be visualized.
-
-@lilypond[verbatim]
-#(set-default-paper-size "a7" 'landscape)
-\book {
- \score { { c4 } }
- \paper { annotate-spacing = ##t }
-}
-@end lilypond
-
-These features were sponsored by Trevor Bača and Nicolas Sceaux.
-
-@item
-The slope of a stem-tremolo may be set manually
-
-@lilypond[fragment,relative=1,ragged-right]
-c8:16[
-\once \override StemTremolo #'slope = #0.45
-c:16 c:16 c:16 ]
-@end lilypond
-
-This feature was sponsored by Sven Axelsson.
-
-@item
-Laissez vibrer ties can be created with @code{\laissezVibrer},
-
-@lilypond[fragment,ragged-right,relative=1]
- <c e g>\laissezVibrer r <d f>\laissezVibrer
-@end lilypond
-
-This feature was sponsored by Henrik Frisk.
-
-@item
-The order of words in @code{\markup} commands may now be reversed by
-setting the @code{text-direction} property. This is useful for
-Right-to-Left languages like Hebrew.
-
-This feature was sponsored by Aaron Mehl.
-
-@item
-Texts over multi measure rests can stretch the corresponding measure,
-if the appropriate @code{spring-and-rods} callback is set.
-
-@lilypond[relative=2,fragment,ragged-right]
-\override MultiMeasureRestText #'springs-and-rods
- = #ly:multi-measure-rest::set-text-rods
-c1 R1 R1^"Very long long long text"
-@end lilypond
-
-This feature was sponsored by Kris Shaffer.
-
-
-@item @textanchor{tie-chords}
-Formatting of ties in chords has been improved. Ties no longer collide
-with note heads and stems. In addition, it is possible to manually
-specify tie formatting
-
-@lilypond[relative=2, fragment,ragged-right]
- <a c d f> ~ <a c d f>
-
- \override TieColumn #'tie-configuration =
- #'((0 . -1) '() (5.5 . 1) (7 . 1))
- <b d f g> ~ <b d f g>
-@end lilypond
-
-This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
-Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
-Dell¡.
-
-@item
-Formatting of isolated, single ties has been improved. Now, ties avoid
-staff lines, flags and dots, without compromising their shape.
-
-@lilypond[fragment,ragged-right]
-\relative c'' {
- \stemUp
- c16 c2...~ c16 ~ c2... |
- c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
-}
-@end lilypond
-
-This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
-Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
-Dell¡.
-
-
-@item @textanchor{repeat-counter}
-With the @code{countPercentRepeats} property,
-percent repeats get incremental numbers to indicate the accumulated repeat count.
-
-@lilypond[relative=2,fragment,ragged-right]
-\set countPercentRepeats = ##t
-\repeat percent 4 { c1 }
-\time 2/4
-\repeat percent 4 { c2 c2 }
-@end lilypond
-
-This feature was sponsored by Yoshinobu Ishizaki
-
-@item
-Text scripts such as fingering instructions and dynamics avoid
-collisions with slurs
-
-@lilypond[fragment,relative=1]
-{
- b_1( f'_1_2_3 c_3_4_5 a)
- b( f'\p b,)
- c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
-}
-@end lilypond
-
-@item
-Tuplets can be made to reach the next non-tuplet note by setting the
-@code{tupletFullLength} property,
-
-@lilypond[fragment,relative=2]
-\new Voice \with {
- \remove Forbid_line_break_engraver
- allowBeamBreak = ##t
-}
-{
- \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
- \set tupletFullLength = ##t
- \times 2/3 { c8[ c c] }
- c4
-}
-@end lilypond
-
-This feature was sponsored by Trevor Bača.
-
-@item
-When @code{strict-note-spacing} is set, notes are spaced without regard
-for clefs, bar lines, and grace notes. For example,
-
-@lilypond[fragment,relative=2]
-\override Score.SpacingSpanner #'strict-note-spacing = ##t
-\new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
-@end lilypond
-
-This feature was sponsored by Trevor Bača.
-
-@item
-Beams support the @code{break-overshoot} property, for example
-
-@lilypond[relative=2,fragment]
-\set allowBeamBreak = ##t
-\override Beam #'break-overshoot = #'(1.0 . 2.0)
-c2.. c8[ \break c]
-@end lilypond
-
-This feature was sponsored by Trevor Bača.
-
-@item
-Proportional notation is supported. Notes can be spaced proportional
-to their time-difference by assigning a duration to
-@code{proportionalNotationDuration}. For example,
-
-@lilypond[relative=2,fragment,ragged-right]
-<<
- \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
- \new Staff { c8[ c c c c c] c4 c2 r2 }
- \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
->>
-@end lilypond
-
-This feature was sponsored by Trevor Bača.
-
-@item
-Symbol sizes (e.g. accidentals) are disregarded for spacing if
-@code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
-
-
-@lilypond[relative=2,fragment]
-<<
- \override Score.SpacingSpanner #'uniform-stretching = ##t
- \new Staff { c16[ c c c c c c c c c16] }
- \new Staff {
- \times 6/7 { c16 c c cis c c c }
- c8[ c32 c32 c16]
- }
->>
-@end lilypond
-
-This feature was sponsored by Trevor Bača.
-
-@item
-Endings of broken tuplet brackets can be tuned. For example, you can
-add arrows to the brackets,
-
-@lilypond[fragment,ragged-right,relative=2]
-\override TupletBracket
- #'edge-text = #(cons
- (markup #:arrow-head X LEFT #f)
- (markup #:arrow-head X RIGHT #f))
-\times 4/5 {
- c c c \bar "empty" \break c c
-}
-@end lilypond
-
-This feature was sponsored by Trevor Bača.
-
-
-@item @textanchor{arrow-glyph}
-Arrow heads were added to the Feta font.
-
-@lilypond[]
-\lyrics {
- \markup {
- filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
- open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
- }
-}
-@end lilypond
-
-These glyphs have been sponsored by Trevor Bača.
-
-
-@item
-Nested tuplets are automatically positioned,
-
-@lilypond[fragment,ragged-right,relative=2]
-\set tupletNumberFormatFunction = #fraction-tuplet-formatter
-\times 4/6 {
- a4 a
- \times 3/5 { a a a a a }
-}
-@end lilypond
-
-This feature was sponsored by Trevor Bača.
-
-@item
-Music expressions can be displayed, in LilyPond notation, using the
-new @code{\displayLilyMusic} function. For instance:
-@verbatim
-\displayLilyMusic \transpose c a, { c d e f }
-@end verbatim
-will print:
-@verbatim
-{ a, b, cis d }
-@end verbatim
-
-This feature was contributed by Nicolas Sceaux.
-
-@item
-The current bar number may be checked with @code{\barNumberCheck}, eg.
-
-@verbatim
-\barNumberCheck #22
-@end verbatim
-
-@noindent
-will print a warning if it doesn't happen in measure 22.
-
-@item
-If @code{showLastLength} is set, only the last few measures of a piece
-are rendered, which speeds up correcting scores. For example, setting
-
-@verbatim
-showLastLength = R1*5
-\score { ... }
-@end verbatim
-
-@noindent
-will render only the last five measures (assuming 4/4 time signature)
-of a piece.
-
-@item @textanchor{simple-melismata}
-Melismata can be specified simply in the lyrics now, eg.
-
-@lilypond[relative=1,verbatim,fragment]
-{
- c d( e) f e d
-} \addlyrics {
- Ky -- _ _ ri e
-}
-@end lilypond
-
-This feature was sponsored by Nancho Alvarez
-
-@item
-Suggested accidentals (for notating musica ficta) may be switched on
-with @code{suggestAccidentals}
-
-@lilypond[verbatim,fragment,relative=2]
-\set suggestAccidentals = ##t
-ais bis
-@end lilypond
-
-This feature was sponsored by Nancho Alvarez.
-
-@item
-The setting @code{whichBar} and time-bookkeeping is now split into a
-@code{Default_bar_line_engraver} and @code{Timing_translator}
-respectively.
-
-@item @textanchor{pitched-trill}
-Explicit pitches may be added to trills,
-
-@lilypond[relative,verbatim,fragment]
- \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
-@end lilypond
-
-This feature was sponsored by D. Josiah Boothby and Jamie Bullock
-
-@item
-Markup now supports formatting of text paragraphs, using
-@code{\wordwrap} and @code{\justify}.
-
-This feature was sponsored by Sven Axelsson.
-@end itemize
@ifhtml
For older news, go to
-@uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
+@uref{http://lilypond.org/doc/v2.8/Documentation/topdocs/NEWS.html},
or @uref{../,go back} to the Documentation index.