]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/changes.tely
Merge remote-tracking branch 'origin/stable/2.16' into translation
[lilypond.git] / Documentation / changes.tely
index e69766caccdd2b537760b52fe00e5fff873ae262..83db4ea85980a7ba7bc1dc1b0d02b5ec5e8b3917 100644 (file)
@@ -60,12 +60,80 @@ which scares away people.
 * only show user-visible changes.
 
 @end ignore
+@item
+Support for cross-staff stems on chords, using @code{crossStaff}
+and the @code{Span_stem_engraver}.  This calculates the length of
+cross-staff stems automatically.
+@lilypondfile[quote]
+{cross-staff-stems.ly}
+
+@item
+The syntax of words (character sequences recognized without enclosing
+quotes) and commands (now always a backslash @samp{\} followed by a
+word) has been unified across all modes: it now consists of alphabetic
+characters, possibly enclosing isolated dashes @samp{-} and underlines
+@samp{_}.
+
+As one consequence, using unquoted text scripts like (literally!)
+@example
+@{ c-script c\f_script @}
+@end example
+will now tend to result in invalid music.  Omitting quote marks
+for arbitrary text rather than keywords has never been good practice or
+even documented, and it is unlikely to have seen significant use.
+
+Staying with established conventions (like not using dashes or
+underlines for command names intended to be used inside of music)
+remains advisable.  The reason for this change is more robust
+recognition of LilyPond's lexical units for LilyPond itself as well as
+external tools interpreting its syntax.
+
+@item
+Support for Kievan square notation:
+@lilypond[quote,relative=1,verbatim]
+\new KievanVoice {
+  \cadenzaOn
+  c d e f g a bes
+  \bar "kievan"
+}
+@end lilypond
+
+@item
+Augmentation dots now avoid the other voice in two-voice polyphony
+so that users can move the @code{Dot_column_engraver} to set dots
+independently for each @code{Voice}.
+@lilypond[quote]
+\layout {
+  \context {
+    \Staff
+    \remove Dot_column_engraver
+  } \context {
+    \Voice
+    \consists Dot_column_engraver
+  }
+}
+\relative c'' <<
+  { \time 6/8
+    <d f g>4. <d f g> <f, g> b
+  } \\ {
+    <f g b>4. <g b d> <b d> <e, g>
+  } >>
+@end lilypond
+
+@item
+A Scheme function to adjust the control points of curves such as slurs
+and ties, developed by several users, is now included in LilyPond.
+@lilypond[quote,verbatim,relative=2]
+g8->( bes,-.) d4
+\shape Slur #'((-0.5 . 1.5) (-3 . 0) (0 . 0) (0 . 0))
+g8->( bes,!-.) d4
+@end lilypond
 
 @item
 Use of @code{\tempo} specifications in @code{\midi} blocks (removed in
 2.9.16 in favor of explicit @code{tempoWholesPerMinute} settings) has
 seen a revival: now any kind of property-setting music is turned into
-context definitions within of output specifications, allowing for
+context definitions within output specifications, allowing for
 declarations like
 @example
 \layout @{ \accidentalStyle modern @}
@@ -140,6 +208,17 @@ code operative.
 
 The following three items are consequences of this change.
 
+@item
+The repetitive chord entry aid @code{q} has been reimplemented.
+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
+String numbers and right hand fingerings on single notes now appear
+without having to be written inside of chord brackets.
+
 @item
 Music functions now work the same when used inside or outside of chords,
 including all the possibilities of argument parsing.  Music variables
@@ -155,26 +234,32 @@ notes without needing to wrap them in a chord.  Using it on command
 events and lyrics is now possible, but not likely to give results yet.
 
 @item
-The repetitive chord entry aid @code{q} has been reimplemented.
-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
-String numbers and right hand fingerings on single notes now appear
-without having to be written inside of chord brackets.
+@code{\tweak} now takes an optional layout object specification.  It can
+be used for tweaking layout objects that are only indirectly caused by
+the tweaked event, like accidentals, stems, and flags:
+
+@lilypond[verbatim,quote,ragged-right,relative=2]
+<\tweak Accidental #'color #red   cis4
+ \tweak Accidental #'color #green es
+                                  g>
+@end lilypond
 
 @item
 Scheme expressions inside of embedded Lilypond (@code{#@{@dots{}#@}})
 are now executed in lexical closure of the surrounding Scheme code.
 @code{$} is no longer special in embedded Lilypond.  It can be used
-unconditionally in Lilypond code for immediate evaluation, similar to
-how @code{ly:export} could previously be used.  @code{ly:export} has
-been removed.  As a consequence, @code{#} is now free to delay
-evaluation of its argument until the parser actually reduces the
-containing expression, greatly reducing the potential for premature
-evaluation.
+unconditionally in Lilypond code for immediate evaluation of Scheme
+expressions, similar to how @code{ly:export} could previously be used.
+@code{ly:export} has been removed.  As a consequence, @code{#} is now
+free to delay evaluation of its argument until the parser actually
+reduces the containing expression, greatly reducing the potential for
+premature evaluation.  There are also @q{splicing} operators @code{$@@}
+and @code{#@@} for interpreting the members of a list individually.
+
+@item
+To reduce the necessity for using @code{$}, Scheme expressions written
+with @code{#} are interpreted as music inside of music lists, and as
+markups or markup lists inside of markups.
 
 @item
 Support for jazz-like chords has been improved: Lydian and altered