]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/changes.tely
Add Changes entry for -dstrokeadjust and "Usage" entry.
[lilypond.git] / Documentation / changes.tely
index 313f3845beefdd85ed45790799059e3130f810d8..d985b534cd0beaa4eb1112e6416591ec375067ed 100644 (file)
@@ -62,14 +62,206 @@ which scares away people.
 @end ignore
 
 @item
-Horizontal space is allowed for tempo and rehearsal marks,
-so that these marks do not overlap each other.
-A new command @code{\markLengthOff} turns this feature off.
-@lilypond[quote,relative=0]
+The PostScript functionality of stroke adjustment is no longer
+applied automatically but left to the discretion of the PostScript
+device (by default, Ghostscript uses it for resolutions up to
+150dpi when generating raster images).  When it is enabled, a more
+complex drawing algorithm designed to benefit from stroke
+adjustment is employed mostly for stems and bar lines.
+
+Stroke adjustment can be forced by specifying the command line
+option @samp{-dstrokeadjust} to LilyPond.  When generating
+@code{PDF} files, this will usually result in markedly better
+looking @code{PDF} previews but significantly larger file size.
+Print quality at high resolutions will be unaffected.
+
+@item
+There is now a new context type called @code{NullVoice} which, while not
+appearing in the printed output, can be used to align lyrics.  This can
+be particularly convenient when used in parallel with a
+@code{\partcombine} construct.
+
+@lilypond[verbatim,quote]
+soprano = \relative c' { c e g c }
+alto = \relative c' { a c e g }
+verse = \lyricmode { This is my song }
+
+\score {
+  \new Staff <<
+    \partcombine \soprano \alto
+    \new NullVoice = "aligner" \soprano
+    \new Lyrics \lyricsto "aligner" \verse
+  >>
+  \layout {}
+}
+@end lilypond
+
+
+@item
+Several articulations can be put into a single variable or
+returned from an event function:
+
+@lilypond[verbatim,quote]
+sempreStacc = -. ^\markup \italic sempre
+\relative { c''4\sempreStacc c c c }
+@end lilypond
+
+@item
+The baseline of score markups is now taken from the reference
+point (usually the middle of the staff) of the first bottom system
+rather than the top of the bounding rectangle.  The following
+@lilypond[verbatim,quote]
+\markup {
+  violin: \score { \new Staff { <g d' a' e''>1 }
+                   \layout { indent=0 } } ,
+  cello: \score { \new Staff { \clef "bass" <c, g, d a> }
+                  \layout { indent=0 } }
+}
+@end lilypond
+previously looked like
+@lilypond[quote]
+\markup {
+  violin: \general-align #Y #UP
+          \score { \new Staff { <g d' a' e''>1 }
+                   \layout { indent=0 } } ,
+  cello:  \general-align #Y #UP
+          \score { \new Staff { \clef "bass" <c, g, d a> }
+                  \layout { indent=0 } }
+}
+@end lilypond
+without a reliable way to get both scores to line up.
+
+@item
+LilyPond no longer automatically infers a @samp{\defaultchild}
+context in a context definition with @samp{\accepts} clauses.  Any
+context definition without an explicit or inherited
+@samp{\defaultchild} definition counts as a @samp{Bottom} context
+and will be eligible for rhythmic events and overrides without
+causing the implicit creation of other contexts.  Be sure to
+specify a @samp{\defaultchild} for non-@samp{Bottom} contexts when
+defining them from scratch.
+
+@item
+There is now extensive support for both discant and bass accordion
+register symbols in the @samp{scm accreg} module, see
+@ruser{Accordion Registers}.
+@lilypond[verbatim,quote]
+#(use-modules (scm accreg))
+\new PianoStaff
+<<
+  \new Staff \relative
+  { \clef "treble"  \discant "10"
+    r8 s32 f'[ bes f] s e[ a e] s d[ g d] s16 e32[ a]
+    \discant "121"
+    << { r16 <f bes> r <e a> r <d g> } \\
+       { d r a r bes r } >> |
+    <cis e a>1
+  }
+  \new Staff \relative
+  { \clef "treble"  \freeBass "1"
+    r8 d'32 s16. c32 s16. bes32 s16. a32[ cis] s16
+    \clef "bass"  \stdBass "Master"
+    << { r16 <f, bes d>^"b" r <e a c>^"am" r <d g bes>^"gm" |
+         <e a cis>1^"a" } \\
+       { d8_"D" c_"C" bes_"B" | a1_"A" }
+    >>
+  }
+>>
+@end lilypond
+
+@item
+New commands @code{markLengthOn} and @code{markLengthOff} control
+the allowance of horizontal space for tempo and rehearsal marks.
+
+@lilypond[quote,relative=2]
+\markLengthOn
 \compressFullBarRests
-\tempo "Molto vivace" c''2 c'
+\tempo "Molto vivace" c2 c'
+\mark\default
+\tempo "Meno mosso" R1*16
 \mark\default
+g,2 g
+\bar "||"
+\markLengthOff
+\tempo "Molto vivace" c2 c'
+\mark#1
 \tempo "Meno mosso" R1*16
+\mark\default
+g,2 g
+@end lilypond
+
+@item
+Rehearsal marks at the beginning of a line are now placed to the right
+of the clef and key signature by default.  As in previous versions, the
+@code{break-alignable-interface} controls the behavior.
+
+@lilypond[quote,relative=2]
+\set Score.barNumberVisibility = #all-bar-numbers-visible
+\set Timing.currentBarNumber = #72
+\bar"||" \time 3/4 \key e\major \mark#10 \tempo "Adagio" b2.
+@end lilypond
+
+@item
+Decimal numbers can now be written directly in music,
+without a hash sign.  Together with the previous change
+in the way object properties are specified, the code to
+change the length of stems has changed from this:
+@example
+\override Stem #'length = #5.6
+e' f' g' a'
+@end example
+to this:
+@example
+\override Stem.length = 5.6
+e' f' g' a'
+@end example
+
+One has to write a digit on both sides of the dot -- values like
+@code{4.} or @code{-.3} are not allowed.
+
+Decimal fractions are also not accepted in @code{\chordmode}.
+
+@item
+A number of shorthands like @code{(}, @code{)}, @code{|},
+@code{[}, @code{]}, @code{~}, @code{\(}, @code{\)} and others can
+now freely be redefined like normal commands.  An example would be
+@lilypond[verbatim,quote]
+"\\{" = (
+"\\}" = )
+"(" = \melisma
+")" = \melismaEnd
+
+\new Staff <<
+  \relative c' {
+    c8 \{ d e f \} % slurred
+    g ( a b c ) % no slur, but with melisma
+    c,1 \bar "|."
+   }
+   \addlyrics { Li -- ly -- pond. }
+>>
+@end lilypond
+
+@item
+The articulation shorthand for @code{\staccatissimo} has been
+renamed from @code{-|} to@tie{}@code{-!}.
+
+@item
+Tempo change ranges are now written as @code{\tempo 4 = 60 - 68}
+rather than @code{\tempo 4 = 60 ~ 68}.
+
+@item
+Grob @code{OctavateEight} was renamed to @code{ClefModifier}.
+Related context properties were renamed from @code{xxxOctavationyyy}
+to @code{xxxTranspositionyyy}.
+
+@item
+There is a new @code{\absolute} command explicitly marking music
+as being entered in absolute pitch.  While this has been the
+default previously, an explicit @code{\absolute} also prevents
+reinterpretation when the passage is placed inside of
+@code{\relative}:
+@lilypond[verbatim,quote]
+\relative c { c'4 \absolute { f'' g'' } c }
 @end lilypond
 
 @item
@@ -161,6 +353,41 @@ contains @code{\transposition}.  Previously,
 was equivalent to @code{\transposition f'}.  Now it stays
 equivalent to @code{\transposition bes'}.
 
+@item
+When checking for collisions, LilyPond no longer treats objects as
+rectangles.  Instead, the actual shape of objects is approximated
+using an integral-like approach.  This generally results in more
+even and snug positioning of objects and systems:
+
+@lilypond[relative=1]
+#(ly:set-option 'debug-skylines #t)
+\dynamicUp
+c'4\f a4\f d\f( f)
+a,4\< c c c\!
+d4-.\downbow a4^"r'venu..." c \tempo "T1" e
+@end lilypond
+
+Previously, the above snippet looked like this:
+
+@lilypond[relative=1]
+#(ly:set-option 'debug-skylines #t)
+\override Hairpin #'vertical-skylines = #'()
+\override DynamicText #'vertical-skylines = #'()
+\override TextScript #'vertical-skylines = #'()
+\override Score.MetronomeMark #'vertical-skylines = #'()
+\override Staff.Clef #'vertical-skylines = #'()
+\dynamicUp
+c'4\f a4\f d\f( f)
+a,4\< c c c\!
+d4-.\downbow a4^"r'venu..." c \tempo "T1" e
+@end lilypond
+
+Affected objects include @code{Accidentals}, @code{Beams}, @code{Clefs},
+@code{Dynamics}, @code{FiguredBass}, @code{Flags}, @code{Glissandos},
+@code{Lyrics}, @code{MetronomeMarks}, @code{OttavaBrackets},
+@code{Pedals}, @code{RehearsalMarks}, @code{Rests}, @code{Scripts},
+@code{TextScripts}, @code{Ties}, @code{Tuplets} and @code{VoltaBrackets}.
+
 @item
 Tuplets are now created with the @code{\tuplet} command, which
 takes a fraction @code{@var{t}/@var{n}} to specify that @var{t}
@@ -214,7 +441,7 @@ than@tie{}0.  The byte offset (also part of @code{textedit}
 @acronym{URI}s) still starts at@tie{}0.
 
 @item
-The @code{\clef} command supports optional octavation:
+The @code{\clef} command supports optional transposition:
 @lilypond[verbatim,quote,relative=1]
 \clef "treble_(8)"
 c2 c
@@ -278,10 +505,10 @@ than their traditional positions, or in multiple octaves.
 @lilypond[quote,relative=0]
 \override Staff.KeySignature #'flat-positions = #'((-5 . 5))
 \override Staff.KeyCancellation #'flat-positions = #'((-5 . 5))
-\clef bass \key es\major es g bes d
-\clef treble \bar "||" \key es\major es g bes d
+\clef bass \key es \major es g bes d
+\clef treble \bar "||" \key es \major es g bes d
 \override Staff.KeySignature #'sharp-positions = #'(2)
-\bar "||" \key d\major b fis b2
+\bar "||" \key d \major b fis b2
 @end lilypond
 
 @end itemize