-\input texinfo @c -*-texinfo-*-
+\input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
@setfilename NEWS.info
@settitle NEWS
@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
@end ifnothtml
+@macro textanchor{NAME}
+@html
+<a name="\NAME\"></a>
+@end html
+@end macro
+
+
@documentencoding utf-8
@documentlanguage en
@unnumbered New features in 2.7 since 2.6
@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 Parallel editing is possible using the \parallelMusic function:
+@lilypond[verbatim,raggedright]
+\parallelMusic #'(voiceA voiceB voiceC) {
+ %% first bar group
+ r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
+ r16 e'8. ~ e'4 r16 e'8. ~ e'4 |
+ c'2 c'2 |
+ %% second bar group
+ r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
+ r16 d'8. ~ d'4 r16 d'8. ~ d'4 |
+ c'2 c'2 |
+}
+\new StaffGroup <<
+ \context Staff = "up" <<
+ \new Voice { \voiceOne \voiceA }
+ \new Voice { \voiceTwo \voiceB }
+ >>
+ \context Staff = "down" <<
+ \new Voice { \clef bass \voiceC }
+ >>
+>>
+@end lilypond
+
+@item Alignments of staves may be tuned per system.
+@lilypond[]
+#(set-global-staff-size 13)
+
+\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 {
+ headsep = 0.0
+ footsep = 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 {
+ annotatepage = ##t
+ annotateheaders = ##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[raggedright]
+\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 are now interpolated between
+neighbors. This results in less stem direction changes, leading to a
+more even appearance. For example,
+
+@lilypond[raggedright]
+\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[raggedright]
+\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. This allows syntactical constructs (like \clef and
+\bar) to be expressed in generic 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[raggedright,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,raggedright]
+<
+ \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,raggedright]
+ 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[raggedright]
+\relative {
+ c1
+ \key cis \major
+ \clef alto
+ \set Score.rehearsalMarkAlignSymbol = #'key-signature
+ \mark "on-key"
+ cis
+ \key ces \major
+ \set Score.rehearsalMarkAlignSymbol = #'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[raggedright]
+\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
+ (,Self_alignment_interface::y_aligned_on_self))
+ ,(ly:make-simple-closure
+ (,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
+(+ (Self_alignment_interface::y_aligned_on_self @var{grob})
+ (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[raggedright,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
-Percent repeats get incremental numbers to indicate how many repeats there are.
+Beamlets may stick out of the side of beams.
-@lilypond[relative=2,fragment,raggedright]
+
+@lilypond[fragment,raggedright,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[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
+ }
+ >>
+>>
+@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.
+
+@item
+Laissez vibrer ties can be created with @code{\laissezVibrer},
+
+@lilypond[fragment,raggedright,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,raggedright]
+\override MultiMeasureRestText #'springs-and-rods
+ = #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,raggedright]
+ <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,raggedright]
+\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,raggedright]
+\set countPercentRepeats = ##t
\repeat percent 4 { c1 }
\time 2/4
\repeat percent 4 { c2 c2 }
@item
Text scripts such as fingering instructions and dynamics avoid
-collisions with Slurs
+collisions with slurs
@lilypond[fragment,relative=1]
{
- b_1( b <b d f>_1_3_5)
- c-2_\markup { \italic {"cresc."}}( f c)
- c-3( c\f c)
+ 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
@lilypond[fragment,relative=2]
\new Voice \with {
- \remove Forbid_line_break_engraver
+ \remove Forbid_line_break_engraver
allowBeamBreak = ##t
}
{
}
@end lilypond
-This feature was sponsored by Trevor Ba@v{c}a.
+This feature was sponsored by Trevor Bača.
@item
When @code{strict-note-spacing} is set, notes are spaced without regard
\new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
@end lilypond
-This feature was sponsored by Trevor Ba@v{c}a.
+This feature was sponsored by Trevor Bača.
@item
Beams support the @code{break-overshoot} property, for example
c2.. c8[ \break c]
@end lilypond
-This feature was sponsored by Trevor Ba@v{c}a.
+This feature was sponsored by Trevor Bača.
@item
Proportional notation is supported. Notes can be spaced proportional
>>
@end lilypond
-This feature was sponsored by Trevor Ba@v{c}a.
+This feature was sponsored by Trevor Bača.
@item
Symbol sizes (e.g. accidentals) are disregarded for spacing if
>>
@end lilypond
-This feature was sponsored by Trevor Ba@v{c}a.
+This feature was sponsored by Trevor Bača.
@item
Endings of broken tuplet brackets can be tuned. For example, you can
}
@end lilypond
-This feature was sponsored by Trevor Ba@v{c}a.
+This feature was sponsored by Trevor Bača.
-@item
+@item @textanchor{arrow-glyph}
Arrow heads were added to the Feta font.
@lilypond[]
}
@end lilypond
-These glyphs have been sponsored by Trevor Ba@v{c}a.
+These glyphs have been sponsored by Trevor Bača.
@item
}
@end lilypond
-This feature was sponsored by Trevor Ba@v{c}a.
+This feature was sponsored by Trevor Bača.
@item
Music expressions can be displayed, in LilyPond notation, using the
will render only the last five measures (assuming 4/4 time signature)
of a piece.
-@item
+@item @textanchor{simple-melismata}
Melismata can be specified simply in the lyrics now, eg.
@lilypond[relative=1,verbatim,fragment]
{
- c d( e) f e
+ c d( e) f e d
} \addlyrics {
Ky -- _ _ ri e
}
@code{Default_bar_line_engraver} and @code{Timing_translator}
respectively.
-@item
+@item @textanchor{pitched-trill}
Explicit pitches may be added to trills,
@lilypond[relative,verbatim,fragment]
@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.6/Documentation/topdocs/NEWS.html},
+or @uref{../,go back} to the Documentation index.
+
+
@end ifhtml
@bye