@ifhtml
@macro inputfileref{DIR,NAME}
-@uref{../../../\DIR\/out-www/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
+@uref{../../\DIR\/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
@end macro
@macro usermanref{NAME}
-@inforef{\NAME\,,../../user/out-www/lilypond/lilypond}@c
+@inforef{\NAME\,,../user/lilypond/lilypond}@c
@end macro
@end ifhtml
@documentencoding utf-8
@documentlanguage en
+@finalout
+
@ifnottex
@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}.
+This document is also available in @uref{NEWS.pdf,PDF}. It's part of
+the @uref{../,LilyPond Documentation}
@end ifhtml
@itemize @bullet
-@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
+@ignore
-@verbatim
-,(ly:make-simple-closure
- `(,+
- ,(ly:make-simple-closure (list Self_alignment_interface::y_aligned_on_self))
- ,(ly:make-simple-closure (list Side_position_interface::y_aligned_on_support_refpoints)))
-@end verbatim
+HINTS
-@noindent
-During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
-as
+* only show verbatim input for syntax/input changes
-@example
-(+ (Self_alignment_interface::y_aligned_on_self @var{grob})
- (Self_alignment_interface::y_aligned_on_support_refpoints @var{grob}))
-@end example
+* try to be as brief possible in those cases
+* don't try to provide real-world examples, they often get too big,
+which scares away people.
-@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
+* Write complete sentences.
-@verbatim
-\override TextScript #'Y-offset = #-6
-@end verbatim
-
-@noindent
-hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
-grobs.
+* only show user-visible changes.
+@end ignore
@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.
+New sections with different spacing parameters can be started with
+@code{newSpacingSection}. This is useful when there are
+sections with a different notions of long and short notes.
+In the following example, the time signature change introduces a new
+section, and hence the 16ths notes are spaced wider.
-@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[relative,fragment]
+ \time 2/4
+ c4 c8 c
+ c8 c c4 c16[ c c8] c4
-@lilypond[raggedright,fragment]
-<<
-\relative { c4 c c c }
-\figures {
- \set useBassFigureExtenders = ##t
- <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
-} >>
+ \newSpacingSection
+ \time 4/16
+ c16[ c c8]
@end lilypond
-This rewrite was sponsored by Trent Johnston and John Mandereau.
+This feature was sponsored by Trevor Bača, Michael Meixner and Vivian
+Barty-Taylor.
@item
-Subproperties, like the @code{details} field of @code{Slur} and
-@code{Tie} may now be tuned with @code{\override}. For example,
+A new, automated testing technique has been added. It will detect
+changes in the formatting automatically, which will make it easier to
+spot regression errors in the future.
-@verbatim
-\override Stem #'details #'beamed-lengths = #'(4 4 3)
-@end verbatim
-
-@noindent
-shortens the stems in beams.
+View @uref{../../test-results.html,test results}.
@item
-The default paper size may now be set from the command line using
-@code{-dpaper-size}.
+Figured bass can also be added to @code{Staff} contexts directly. In
+this case, their vertical position is adjusted automatically.
-@item
-Beamlets may stick out of the side of beams.
-
-
-@lilypond[fragment,raggedright,relative=2]
-{
- \override Beam #'break-overshoot = #'(-0.5 . 0.5)
- \set stemLeftBeamCount = #2
- c8[
- c16
- \set stemRightBeamCount = #3
- c ]
-}
-@end lilypond
+@lilypond[ragged-right,fragment]
+<<
+ \new Staff = someUniqueName
+ \relative c'' {
+ c4 c'8 r8 c,4 c'
+ }
-This feature was sponsored by Trevor Bača.
-
-
-
-@item
-Vertical alignments of staves can now be tuned easily for individual
-systems.
-
-@lilypond[raggedright]
-#(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
- }
- >>
+ %% send to existing Staff.
+ \context Staff = someUniqueName
+ \figuremode {
+ <4>4 <6 10>8 s8
+
+ \set Staff.useBassFigureExtenders = ##t
+ <4 6>4 <4 6>
+ }
>>
@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 { annotatespacing = ##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,raggedright]
-c8:16[
-\once \override StemTremolo #'slope = #0.45
-c:16 c:16 c:16 ]
-@end lilypond
-
-This feature was sponsored by Sven Axelsson.
+This feature was sponsored by Trent Johnston.
@item
-Laissez vibrer ties can be created with @code{\laissezVibrer},
+Beams may be put on isolated stems, and beamlets may be paired by
+setting the @code{max-beam-connect} property,
-@lilypond[fragment,raggedright,relative=1]
- <c e g>\laissezVibrer r <d f>\laissezVibrer
+@lilypond[ragged-right,relative=2,fragment]
+ \override Stem #'max-beam-connect = #1
+ c16[ c16] c32[]
@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.
+This feature was sponsored by Trevor Bača.
@item
-Texts over multi measure rests can stretch the corresponding measure,
-if the appropriate @code{spring-and-rods} callback is set.
+Beaming patterns obey the @code{beatGrouping} property.
-@lilypond[relative=2,fragment,raggedright]
-\override MultiMeasureRestText #'springs-and-rods
- = #Multi_measure_rest::set_text_rods
-c1 R1 R1^"Very long long long text"
+@lilypond[ragged-right,relative=2,fragment]
+ \time 5/16
+ \set beatGrouping = #'(2 3)
+ c8[^"(2+3)" c16 c8]
+ \set beatGrouping = #'(3 2)
+ c8[^"(3+2)" c16 c8]
@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
+This feature was sponsored by Trevor Bača.
-@lilypond[relative=2, fragment,raggedright]
- <a c d f> ~ <a c d f>
-
- \override TieColumn #'tie-configuration =
- #'((0 . -1) (2 . -1) (5.5 . 1) (7 . 1))
- <b d f g> ~ <b d f g>
-@end lilypond
+@item
+With the command @code{\transposedCueDuring} a cue's transposition can
+be changed locally. This can be used to prevent excessive ledger
+lines on cues.
-This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
-Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
-Dell¡.
+This feature was contributed by Werner Lemberg
@item
-Formatting of isolated, single ties has been improved. Now, ties avoid
-staff lines, flags and dots, without compromising their shape.
+By setting @code{hairpinToBarline}, hairpins will stop at
+the barline preceding the ending note.
-@lilypond[fragment,raggedright]
-\relative c'' {
- \stemUp
- c16 c2...~ c16 ~ c2... |
- c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
-}
+@lilypond[relative=2,fragment,ragged-right]
+\set hairpinToBarline = ##t
+\override Hairpin #'bound-padding = #1.0
+c4\< c2. c4\!
@end lilypond
-This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
-Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
-Dell¡.
-
+This feature was sponsored by Andrew Sidwell and Trevor Bača.
-@item @textanchor{repeat-counter}
-With the @code{countPercentRepeats} property,
-percent repeats get incremental numbers to indicate the accumulated repeat count.
-
-@lilypond[relative=2,fragment,raggedright]
-\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]
+Objects may be rotated using the @code{rotation} property.
+@lilypond[ragged-right,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)
+ \override Hairpin #'rotation = #'(20 -1 0)
+ g4\<^\markup { \rotate #180 "test" } b d f'\!
}
@end lilypond
-@item
-Tuplets can be made to reach the next non-tuplet note by setting the
-@code{tupletFullLength} property,
+This feature was contributed by Erlend Aasland.
-@lilypond[fragment,relative=2]
-\new Voice \with {
- \remove Forbid_line_break_engraver
- allowBeamBreak = ##t
-}
+@item
+Hairpins now support circled tips (al niente notation).
+@lilypond[ragged-right,fragment,relative=2]
{
- \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
- \set tupletFullLength = ##t
- \times 2/3 { c8[ c c] }
- c4
+ \override Hairpin #'circled-tip = ##t
+ c2\< c\!
+ c4\> c\< c2\!
}
-@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,raggedright]
-<<
- \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.
+This feature was contributed by Erlend Aasland.
@item
-Symbol sizes (e.g. accidentals) are disregarded for spacing if
-@code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
-
+The MusicXML convertor has been sped up, and has rudimentary support
+for percussion notation. It will also condense multi-bar rests to
+enable part extraction.
-@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,raggedright,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.
+The beam printing code has been completely rewritten, and now includes
+support for feathered beaming,
-
-@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
- }
+@lilypond[ragged-right,fragment,relative=2]
+\featherDurations #(ly:make-moment 5 4)
+{
+ \override Beam #'grow-direction = #LEFT
+ c16[
+ c c c
+ c c c ]
}
-@end lilypond
+@end lilypond
-These glyphs have been sponsored by Trevor Bača.
+Known bug: the \featherDuration command only works with very short music
+snippets.
+This feature was sponsored by Jamie Bullock.
@item
-Nested tuplets are automatically positioned,
+The @code{\note} markup command now also accepts note head styles.
-@lilypond[fragment,raggedright,relative=2]
-\set tupletNumberFormatFunction = #fraction-tuplet-formatter
-\times 4/6 {
- a4 a
- \times 3/5 { a a a a a }
+@lilypond[ragged-right,fragment,relative=2]
+c4^\markup {
+ \override #'(style . triangle) \note-by-number #2 #1 #1 = 100
}
@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.
+This feature was sponsored by Jamie Bullock.
@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
+Tie chord formatting also works with arpegiated
+ties.
-@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
+@lilypond[ragged-right]
+\relative c'' {
+ <e c a f>2~ <e c a f> |
+ \set tieWaitForNote = ##t
+ e8~ c~ a~ f~ <e' c a f>2 |
+ f,8~ a~ c~ e~ <f, a c e>2 |
}
-@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
+@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.
+This feature was sponsored by Steve Doonan.
-@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
+@end itemize
-@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/out-www/NEWS.html}.
+@uref{http://lilypond.org/doc/v2.8/Documentation/topdocs/NEWS.html},
+or @uref{../,go back} to the Documentation index.
+
+
@end ifhtml
@bye