@node Top, , ,
@top
-@unnumbered New features in 2.3 since 2.2
+@unnumbered New features in 2.4 since 2.2
@itemize @bullet
+@item Parts that use @code{\quote} can now be transposed.
+
+@item LilyPond does not try to produce output for files that
+have a parse error.
+
+@item @code{lilypond-book} will now remove any output files that
+contain failed music snippets.
+
+@item The mode changing commands (@code{\chords}, @code{\lyrics}, etc.)
+have been renamed to @code{\chordmode}, @code{\lyricmode}, etc. The
+command @code{\chords} is an abbreviation for
+
+@example
+ \new ChordNames \chordmode ...
+@end example
+
+@noindent
+@code{\drums}, @code{\lyrics}, @code{\chords}, @code{\figures}
+function similarly.
+
+@item The types of events quoted with @code{\quote} can now be tuned
+with @code{quotedEventTypes}. By default, only notes and rests end up
+in quotes.
+
+@item LilyPond will try to keep
+staves at the same distances across a page, but it will stretch
+distances to prevent collisions. This results in a more even
+appearance of the page.
+
+@item Key signature cancellations are now printed before the bar line,
+and their appearance has been improved.
+
+@item Different voices that all use @code{\quote} can now refer to
+each other.
+
+
+@item The automatic staff changer, which is invoked with
+@code{\autochange}, now creates the @code{up} and @code{down} staff
+automatically, and uses bass clef for the bottom staff.
+
+@item There is now support for putting two slurs on chords, both above
+and below. This is switched on with the @code{doubleSlurs} property.
+
+@item Running trills now have their own spanner and event,
+
+@example
+ c1\startTrillSpan c4\stopTrillSpan
+@end example
+
+@item There is a new markup command @code{\postscript} that takes a
+string that is dumped as verbatim PostScript in the output.
+
+@item The melody for a @code{\lyricsto} text can be changed during a
+melody by setting the @code{associatedVoice} property.
+
+@item The @code{\lyricsto} keyword now automatically switches on
+lyrics mode.
+
@item The LilyPond binary now supports output options
@code{--dvi} @code{--png} @code{--ps} @code{--pdf} and
@code{--preview}. The old wrapper script for La@TeX{} has been
renamed to @code{lilypond-latex}.
-@item Support ambituses has been rewritten. The Ambitus object is now
+@item Support for ambitus has been rewritten. The Ambitus object is now
a grouping object, composed of @code{AmbitusLine},
@code{AmbitusAccidental} and @code{AmbitusNoteHead}. These objects may
be tuned similar to accidentals and note heads.
-@item Ledger lines are now shortened to prevent them from colliding.
+@item Ledger lines are now shortened when the spacing is tight. This
+prevents ledger lines from colliding with each other.
@item Slur formatting has been rewritten. The new slur code
works similar to the Beam formatter: scores are assigned for all
accent) and accidentals.
-@item In the LilyPond emacs mode, the @code{|} will now display the
- current beat within the measure.
+@item In the LilyPond emacs mode, entering @code{|} will display the
+ current beat within the measure.
@item Colliding notes are now correctly aligned relative to notes in other staves.
@}
@end example
-@item A new block, @code{\bookpaper} has been introduced to
-hold settings for paper size and output scaling. Further options
-include @code{raggedbottom} (if set, systems are not vertically filled
-to reach the bottom of the page), and @code{raggedlastbottom}.
-
+@item
+The @code{\paper} block has been renamed to @code{\layout}. A new
+@code{\paper} block has been introduced to hold settings for paper
+size and output scaling. Further options include @code{raggedbottom}
+(if set, systems are not vertically filled to reach the bottom of the
+page), and @code{raggedlastbottom}.
@item Support for fret diagrams has been contributed by Carl
@item A music list at toplevel is interpreted as implicit @code{\score}
a @code{\score} block at toplevel is interpreted as an implicit
-@code{\book} and @code{\notes} mode is the default lexer mode. The
+@code{\book} and @code{\notemode} mode is the default lexer mode. The
result is that
@example
\header @{ title = "The Title" @}
\book @{
\score @{
- \notes @{ a b c @}
+ \notemode @{ a b c @}
@}
@}
@end example
@code{toplevel-book-handler}. By changing these variables, different
results can be obtained.
+@item Mode changing commands,
+such as @code{\chordmode} and @code{\figuremode} must now be directly
+followed by delimiters. The following example demonstrates the new
+behavior,
-@item Start pitch for @code{relative} music is optional for music lists.
+@verbatim
+ \figuremode \context Figures { .. } % wrong
+ \context Figures \figuremode { .. } % right
+@end verbatim
+
+
+@item The starting pitch for @code{relative} music is optional for music lists.
The default value is middle C.
-@c update-me? formal definition of newaddlyrics, once it works
-@item Combining lyrics with music can be done with @code{\newlyrics}
+@item Combining lyrics with music can be done with @code{\addlyrics}
@example
\relative @{
\clef bass
d2 d c4 bes a2 \break
@}
- \newlyrics @{
+ \addlyrics @{
My first Li -- ly song,
@}
- \newlyrics @{
+ \addlyrics @{
Not much can go wrong!
@}
@end example
-Syntactically, @code{\newlyrics} acts like an infix operator.
+Syntactically, @code{\addlyrics} is an infix operator. It is a
+shortcut for a combination of @code{\new Lyrics}, @code{\lyricmode}
+and @code{\lyricsto}.
@item The parser is encapsulated in a Scheme function
@code{ly:parse-file}, so the following fragment processes two files
@}
@end example
-Titling and page breaks are handled by LilyPond. For automatic page
-breaking, two algorithms are available, the classic ragged pages (the
-default), and optimal page breaking.
-Page breaks may be inserted manually with
+
+@item
+Titling and page breaks are handled by LilyPond. Page breaks may be
+inserted manually with
+
@example
\pageBreak
@end example
@item
-The @code{lilypond} program does not generate La@TeX{} titles or page
-layout. If you need La@TeX{} titles, you can use the
-@code{lilypond-book} program.
+Invoking @code{lilypond} runs the actual binary, which not use
+La@TeX{} for titling or page layout. If you need La@TeX{} code in
+titles, you can use the @code{lilypond-book} program. The former
+@code{lilypond} script has been retained as @code{lilypond-latex}.
@item There is now less of a noticeable ``hook'' at the end of a long slur.
@end itemize
+
+
+@c ****************************************************************
+
@unnumbered New features in 2.2 since 2.0
@itemize @bullet