\input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
@setfilename NEWS.info
@settitle NEWS

@ifhtml
@macro inputfileref{DIR,NAME}
@uref{../../../\DIR\/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
@end macro
@macro usermanref{NAME}
@inforef{\NAME\,,../../user/lilypond/lilypond}@c
@end macro
@end ifhtml

@ifnothtml
@macro inputfileref{DIR,NAME}
@file{\DIR\/\NAME\}@c
@end macro
@macro usermanref{NAME}
See user manual, \NAME\
@end macro
@end ifnothtml


@macro textanchor{NAME}
@html
<a name="\NAME\"></a>
@end html
@end macro


@documentencoding utf-8
@documentlanguage en

@ifnottex
@node Top
@top
@end ifnottex
@unnumbered New features in 2.7 since 2.6

@ifhtml
This document is also available in @uref{NEWS.pdf,PDF}. It's part of
the @uref{../,LilyPond Documentation} 
@end ifhtml




@itemize @bullet
@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.

@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
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

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)  (2 . -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 }
@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,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.

@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,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.


@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,raggedright,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},
or @uref{../,go back} to the Documentation index.


@end ifhtml

@bye
