* only show user-visible changes.
@end ignore
+
+@item
+The LilyPond G clef has been redesigned - upper loop is now more balanced,
+bottom crook sticks out less and the "spine" (main vertical line) is more
+evenly curved. The old and new versions can be compared by looking at the
+documentation:
+@uref{http://lilypond.org/doc/v2.14/Documentation/notation/the-feta-font.html#clef-glyphs, old version},
+@uref{http://lilypond.org/doc/v2.15/Documentation/notation/the-feta-font.html#clef-glyphs, new version}.
+
+@item
+Lilypond's stencil commands have been simplified to allow for less code
+duplication and better height approximations of graphical objects. The
+following stencil commands have been eliminated:
+@itemize
+@item @code{beam}
+@item @code{bezier-sandwich}
+@item @code{bracket}
+@item @code{dashed-slur}
+@item @code{dot}
+@item @code{oval}
+@item @code{repeat-slash}
+@item @code{zigzag-line}
+@end itemize
+
+@item
+Flags are now treated as separate objects rather than as stem parts.
+@lilypond[fragment,quote,relative=2]
+\override Flag #'color = #red
+g8
+@end lilypond
+
+@item
+Two alternative methods for bar numbering can be set, especially for
+when using repeated music;
+
+@lilypond[fragment,quote,relative=1,noragged-right]
+\relative c'{
+ \set Score.alternativeNumberingStyle = #'numbers
+ \repeat volta 3 { c4 d e f | }
+ \alternative {
+ { c4 d e f | c2 d \break }
+ { f4 g a b | f4 g a b | f2 a | \break }
+ { c4 d e f | c2 d }
+ }
+ c1 \break
+ \set Score.alternativeNumberingStyle = #'numbers-with-letters
+ \repeat volta 3 { c,4 d e f | }
+ \alternative {
+ { c4 d e f | c2 d \break }
+ { f4 g a b | f4 g a b | f2 a | \break }
+ { c4 d e f | c2 d }
+ }
+ c1
+}
+@end lilypond
+
+@item
+The following is a fundamental change in LilyPond's music
+representation: Rhythmic events like @code{LyricEvent} and
+@code{NoteEvent} are no longer wrapped in @code{EventChord} unless they
+have been actually entered as part of a chord in the input. If you
+manipulate music expressions in Scheme, the new behavior may require
+changes in your code. Calling the music function @code{\eventChords} or
+the Scheme function @code{event-chord-wrap!} converts to the old
+representation; using one of those might be easiest for keeping legacy
+code operative.
+
+The advantages of making input and music match more closely are
+numerous: music functions previously worked differently when used inside
+or outside of chords. Now they are the same, including all the
+possibilities of argument parsing. You can now use music variables
+inside of chords: a construct like
+@lilypond[verbatim,quote,ragged-right]
+tonic=fis'
+{ <\tonic \transpose c g \tonic> }
+@end lilypond
+@noindent
+would have been unthinkable previously. You can use
+@code{#@{@dots{}#@}} for constructing chord constituents. Music
+functions inside of chords are no longer specially treated and thus
+accept the same arguments as outside of chords. @code{\tweak} now works
+on single notes without needing to wrap them in a chord. In theory, it
+can also work on command events and lyrics now. Since that was not
+possible before, it depends on luck on a case-by-case basis whether the
+tweak internals are already receiving the necessary information. Users
+are asked to report those cases where they find @code{\tweak} not
+working according to reasonable expectations.
+
+@item
+As one consequence, it was possible to reimplement the repetitive chord
+entry aid @code{q}. Repeated chords are now replaced right before
+interpreting a music expression. In case the user wants to retain
+some events of the original chord, he can run the repeat chord
+replacement function @code{\chordRepeats} manually.
+
@item
Scheme expressions inside of embedded Lilypond (@code{#@{@dots{}#@}})
are now executed in lexical closure of the surrounding Scheme code.
``add'' by default; and the ``m'' in minor chords can be customized.
@ruser{Customizing chord names} for more information.
-@item
-
@item
The @code{\markuplines} command has been renamed to @code{\markuplist}
for a better match with its semantics and general Lilypond
@item
The interface for specifying string tunings in tablature has been
-simplified considerably.
+simplified considerably and employs the scheme function
+@code{\stringTuning} for most purposes.
@item
Beams can now have their slopes preserved over line breaks.
automatically called when setting the @code{positions} parameter.
@item
-In function arguments music, markups and Scheme expressions (as well
-as several other syntactic entities) have become mostly
-interchangeable and are told apart only by evaluating the respective
-predicate.
+In function arguments music, markups and Scheme expressions (as well as
+several other syntactic entities) have become mostly interchangeable and
+are told apart only by evaluating the respective predicate. In several
+cases, the predicate is consulted by the parser, like when deciding
+whether to interpret @code{-3} as a number or a fingering event.
@item
Music functions (and their close relatives) can now be defined with
@item
There is a new @code{define-event-function} command in analogy to
@code{define-music-function} that can be used for defining music
-functions acting as events without requiring a direction specifier
+functions acting as post events without requiring a direction specifier
(@code{-}, @code{^}, or @code{_}) placed before them.
@lilypond[quote,verbatim,ragged-right]
dyn=#(define-event-function (parser location arg) (markup?)
@item
The construct @code{#@{ @dots{} #@}} can now be used not just for
-constructing sequential music lists, but also for single music events,
-void music expressions, post events, markups (mostly freeing users from
+constructing sequential music lists, but also for pitches (distinguished
+from single note events by the absence of a duration or other
+information that can't be part of a pitch), single music events, void
+music expressions, post events, markups (mostly freeing users from
having to use the @code{markup} macro), markup lists, number
expressions, context definitions and modifications, and a few other
things. If it encloses nothing or only a single music event, it no
longer returns a sequential music list but rather a void music
expression or just the music event itself, respectively.
+@item
+Pitches can be used on the right side of assignments. They are
+distinguished from single note events by the absence of a duration or
+other information that can't be part of a pitch.
+
@item
New command-line option @option{--loglevel=@var{level}} to control how much output
LilyPond creates. Possible values are ERROR, WARN, BASIC_PROGRESS, PROGRESS, DEBUG.
@item
-@code{\set \once} now correctly resets the property value to the previous value.
+@code{\once \set} now correctly resets the property value to the previous value.
@lilypond[fragment,quote,relative=2]
\set fingeringOrientations = #'(left)
<e-1>4
<e-1>-"left"
@end lilypond
-
@item
The alignment of dynamic spanners (hairpins, text crescendo, etc.) is now
automatically broken if a different direction is explicitly given.
@item
Appoggiaturas and acciaccaturas now also work inside a slur, not only inside
a phrasing slur. Also, a function @code{\slashedGrace} was added that does
-does not use a slur from the acciaccatura note.
+not use a slur from the acciaccatura note.
@lilypond[fragment,quote,relative=2]
c4( \appoggiatura e8 d4 \acciaccatura e8 d4 \slashedGrace e8 c4)
@end lilypond