## NEWS

## New features in 2.8 since 2.6

This document is also available in PDF. It's part of the LilyPond Documentation

- LilyPond PostScript output is now also compatible with GSView, a PostScript viewer for the Windows platform.
- 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.

  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>

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

  This feature was contributed by Nicolas Sceaux.

- Alignments of staves may be tuned per system.

  This feature was sponsored by Trevor Bača.

- Individual systems may be positioned manually,

  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

  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,

  This feature was sponsored by Mike Rolish and Basil Crow.

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

  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,

  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

  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.

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

  This feature was sponsored by Trevor Bača.

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

  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.

  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.

  This feature was sponsored by Trevor Bača.

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

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

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

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

  This feature was sponsored by Sven Axelsson.

- Laissez vibrer ties can be created with `\laissezVibrer`,

  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.

  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

  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.

  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.

  This feature was sponsored by Yoshinobu Ishizaki

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

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

  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,

  This feature was sponsored by Trevor Bača.

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

  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,

  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,

  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,

  This feature was sponsored by Trevor Bača.

- Arrow heads were added to the Feta font.

  These glyphs have been sponsored by Trevor Bača.

- Nested tuplets are automatically positioned,

  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
           }

  This feature was sponsored by Nancho Alvarez

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

           \set suggestAccidentals = ##t
           ais bis

  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

  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.

For older news, go to http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html, or go back to the Documentation index.

This page is for LilyPond-2.8.8 (stable-branch).

Other languages: English.
Using automatic language selection.