NEWS
****

New features in 2.8 since 2.6
*****************************

   * LilyPond PostScript output is now also compatible with GSView, a
     PostScript viewer for the Windows platform and Preview.app, on
     MacOS X.

   * The property `Score.skipTypesetting' is also respected by the MIDI
     output now.

     This feature was contributed by Johannes Schindelin.

   * A score may now be specified to take a fixed number of systems, by
     setting the `system-count' variable in the `\layout' block.

     This feature was contributed by Joe Neeman.

   * Ties may now be attached to the left side of a note with
     `\repeatTie', for use with volta repeats.

     [image of music]

     This feature was sponsored by Steve Doonan.

   * Newly created contexts may also be named with the following syntax,


     \new Voice = "alto" ...

   * Thicknesses of tie and slurs may be  tuned separately for the
     endings and the middle part.

   * Items directly connected with a music input element may be
     parenthesized, for example,


     c4-\parenthesize -.
     <d \parenthesize f a>
     [image of music]

     This feature was sponsored by Ramana Kumar.

   * Multi-word  variables in the `\paper' and `\layout' block are now
     separated with dashes, i.e.


     \paper {
       ragged-right = ##t
       top-margin = 5 \cm
     }

     The same holds for analogous options in lilypond-book.

   * Music for multiple parts can be interleaved, similar to MUP input.
     This is done with the `\parallelMusic' function,


     \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
     >>
     [image of music]

     This feature was contributed by Nicolas Sceaux.

   * Alignments of staves may be tuned per system.  [image of music]

     This feature was sponsored by Trevor Bača.

   * Individual systems may be positioned manually,

     [image of music]

     This feature was sponsored by Trevor Bača and Nicolas Sceaux.

   * A linebreaking configuration can now be saved as a `.ly' file
     automatically. This allows vertical alignments to be stretched to
     fit pages in a second formatting run. See
     `input/regression/page-layout-twopass.ly' for an example.

     This feature was sponsored by Trevor Bača and Nicolas Sceaux.

   * The tie formatting for chords has been further polished. More
     cases are handled gracefully, and all scoring parameters may now be
     changed through the `details' property of the `Tie' grob.

     This refinement was sponsored by Steve Doonan.

   * Positions of staff lines may now be set individually, for example

     [image of music]

     This feature  was sponsored by Andrea Valle.

   * A MusicXML importer is included now.

     It was sponsored by among others, Mark van den Borre, and
     Muziekacademie Lede.

   * 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,

     [image of music]

     This feature was sponsored by Mike Rolish and Basil Crow.

   * Slurs now avoid `TupletNumber's, and tuplet numbers may enter the
     staff.

     [image of music]

     This feature was sponsored by Trent Johnston.

   * Tuplet brackets and numbers  are implemented as separate grobs,
     `TupletBracket' and `TupletNumber'.

     This rewrite was sponsored by Trent Johnston.

   * String arguments for music functions may be specified without `#'
     marks. Now, \clef and \bar are also music functions.

   * Ties in chords are also formatted using a scoring based
     formatting. This reduces the number of collisions for ties in
     chords,

     [image of music]

     Here, the tie for the D is flipped, in spite the default rule for
     tie directions.

     This rewrite was sponsored by Steve Doonan.

   * With the `\tweak' music function, layout objects that are directly
     connected to input may be tuned easily,


     <
       \tweak #'font-size #3  c
       \tweak #'color #red d
       \tweak #'style #'cross  g
       \tweak #'duration-log #1  a
     >4
     [image of music]

     This feature was sponsored by Sean Reed and Bertalan Fodor.

   * Generic music functions may now also be used on articulations and
     chord elements, eg.


       < \displayMusic c
         e-\keepWithTag #'bla -\tag #'bla ^2 >

     This feature was sponsored by Sean Reed and Bertalan Fodor.

   * Spaces between lyrics and distance between syllables with hyphens
     may now be separately tuned through the `LyricSpace' grob.

     This feature has been sponsored by Bertalan Fodor.

   * Texts set in a TrueType font are now kerned. This requires CVS
     Pango or Pango 1.12.

     [image of music]

   * 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.

   * The horizontal location of rehearsal marks can be adjusted by
     setting the `rehearsalMarkAlignSymbol' property,

     [image of music]

     This feature was sponsored by Trevor Bača.

   * It's now possible to easily create deeply nested system start
     delimiters,

     [image of music]

     In addition, there is now also support for "square" system start
     brackets.

     This feature was sponsored by Trevor Bača.

   * 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.

   * Each grob property may also be a "grob closure." This means that it
     is possible to combine functions. For example, the `Y-offset' of a
     `InstrumentName' grob is defined to be


     ,(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)))

     During execution, the `Y-offset' of an `InstrumentName' is computed
     as

     (+ (ly:self-alignment-interface::y-aligned-on-self GROB)
        (ly:self-alignment-interface::y-aligned-on-support-refpoints GROB))

   * Calculation of extent and offset of grob is now controlled via the
     `X-extent', `Y-extent', `X-offset' and `Y-offset' properties, for
     example


     \override TextScript #'Y-offset = #-6

     hard codes `TextScript' grobs to be 6 spaces below their Y-parent
     grobs.

   * 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,


     \override Beam #'direction
       = #(lambda (grob)
           (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
               DOWN
               UP))

     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.

   * Support for figured bass has been rewritten. Now it supports
     continuation lines, slashed figures, and its figures, brackets, and
     alignments may tuned separately.

     [image of music]

     This rewrite was sponsored by Trent Johnston and John Mandereau.

   * Subproperties, like the `details' field of `Slur' and `Tie' may
     now be tuned with `\override'. For example,


     \override Stem #'details #'beamed-lengths = #'(4 4 3)

     shortens the stems in beams.

   * The default paper size may now be set from the command line using
     `-dpaper-size'.

   * Beamlets may stick out of the side of beams.

     [image of music]

     This feature was sponsored by Trevor Bača.

   * Vertical alignments of staves can now be tuned easily for
     individual systems.

     [image of music]

     This feature was sponsored by Nicolas Sceaux.

   * Vertical spacing for page layout can now be tuned for each system
     individually.  The dimensions that can be tuned can be visualized.


     #(set-default-paper-size "a7" 'landscape)
     \book {
      \score { { c4 } }
      \paper { annotate-spacing = ##t }
     }
     [image of music]

     These features were sponsored by Trevor Bača and Nicolas Sceaux.

   * The slope of a stem-tremolo may be set manually

     [image of music]

     This feature was sponsored by Sven Axelsson.

   * Laissez vibrer ties can be created with `\laissezVibrer',

     [image of music]

     This feature was sponsored by Henrik Frisk.

   * The order of words in `\markup' commands may now be reversed by
     setting the `text-direction' property. This is useful for
     Right-to-Left languages like Hebrew.

     This feature was sponsored by Aaron Mehl.

   * Texts over multi measure rests can stretch the corresponding
     measure, if the appropriate `spring-and-rods' callback is set.

     [image of music]

     This feature was sponsored by Kris Shaffer.

   *  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

     [image of music]

     This improvement has been sponsored by Bertalan Fodor, Jay
     Hamilton, Kieren MacMillan, Steve Doonan, Trevor Bača, and
     Vicente Solsona Dell¡.

   * Formatting of isolated, single ties has been improved. Now, ties
     avoid staff lines, flags and dots, without compromising their
     shape.

     [image of music]

     This improvement has been sponsored by Bertalan Fodor, Jay
     Hamilton, Kieren MacMillan, Steve Doonan, Trevor Bača, and
     Vicente Solsona Dell¡.

   *  With the `countPercentRepeats' property, percent repeats get
     incremental numbers to indicate the accumulated repeat count.

     [image of music]

     This feature was sponsored by Yoshinobu Ishizaki

   * Text scripts such as fingering instructions and dynamics avoid
     collisions with slurs

     [image of music]

   * Tuplets can be made to reach the next non-tuplet note by setting
     the `tupletFullLength'  property,

     [image of music]

     This feature was sponsored by Trevor Bača.

   * When `strict-note-spacing' is set, notes are spaced without regard
     for clefs, bar lines, and grace notes. For example,

     [image of music]

     This feature was sponsored by Trevor Bača.

   * Beams support the `break-overshoot' property, for example

     [image of music]

     This feature was sponsored by Trevor Bača.

   * Proportional notation is supported.  Notes can be spaced
     proportional to their time-difference by assigning a duration to
     `proportionalNotationDuration'. For example,

     [image of music]

     This feature was sponsored by Trevor Bača.

   * Symbol sizes (e.g. accidentals) are disregarded for spacing if
     `uniform-stretching' of the `SpacingSpanner' grob is set,

     [image of music]

     This feature was sponsored by Trevor Bača.

   * Endings of broken tuplet brackets can be tuned.  For example, you
     can add arrows to the brackets,

     [image of music]

     This feature was sponsored by Trevor Bača.

   *  Arrow heads were added to the Feta font.

     [image of music]

     These glyphs have been sponsored by Trevor Bača.

   * Nested tuplets are automatically positioned,

     [image of music]

     This feature was sponsored by Trevor Bača.

   * Music expressions can be displayed, in LilyPond notation, using the
     new `\displayLilyMusic' function. For instance:
     \displayLilyMusic \transpose c a, { c d e f }
      will print:
     { a, b, cis d }

     This feature was contributed by Nicolas Sceaux.

   * The current bar number may be checked with `\barNumberCheck', eg.


     \barNumberCheck #22

     will print a warning if it doesn't happen in measure 22.

   * If `showLastLength' is set, only the last few measures of a piece
     are rendered, which speeds up correcting scores. For example,
     setting


     showLastLength = R1*5
     \score { ... }

     will render only the last five measures (assuming 4/4 time
     signature) of a piece.

   *  Melismata can be specified simply in the lyrics now, eg.


     {
       c d( e) f e d
     } \addlyrics {
       Ky -- _ _ ri e
     }
     [image of music]

     This feature was sponsored by Nancho Alvarez

   * Suggested accidentals (for notating musica ficta) may be switched
     on with `suggestAccidentals'


     \set suggestAccidentals = ##t
     ais bis
     [image of music]

     This feature was sponsored by Nancho Alvarez.

   * The setting `whichBar' and time-bookkeeping is now split into a
     `Default_bar_line_engraver' and `Timing_translator' respectively.

   *  Explicit pitches may be added to trills,


       \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
     [image of music]

     This feature was sponsored by D. Josiah Boothby and Jamie Bullock

   * Markup now supports formatting of text paragraphs, using
     `\wordwrap' and `\justify'.

     This feature was sponsored by Sven Axelsson.



Local Variables:
coding: utf-8
End:
