X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fchanges.tely;h=d985b534cd0beaa4eb1112e6416591ec375067ed;hb=93d725094ee629b2d5200ab5a75b609579a62973;hp=951dabd22bf86dbba406bf8e05e3fe5f7c6d9f19;hpb=785441aeb8cc557217d1b0658ef88d058f58eeb4;p=lilypond.git diff --git a/Documentation/changes.tely b/Documentation/changes.tely index 951dabd22b..d985b534cd 100644 --- a/Documentation/changes.tely +++ b/Documentation/changes.tely @@ -61,6 +61,209 @@ which scares away people. @end ignore +@item +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 { 1 } + \layout { indent=0 } } , + cello: \score { \new Staff { \clef "bass" } + \layout { indent=0 } } +} +@end lilypond +previously looked like +@lilypond[quote] +\markup { + violin: \general-align #Y #UP + \score { \new Staff { 1 } + \layout { indent=0 } } , + cello: \general-align #Y #UP + \score { \new Staff { \clef "bass" } + \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 r r } \\ + { d r a r bes r } >> | + 1 + } + \new Staff \relative + { \clef "treble" \freeBass "1" + r8 d'32 s16. c32 s16. bes32 s16. a32[ cis] s16 + \clef "bass" \stdBass "Master" + << { r16 ^"b" r ^"am" r ^"gm" | + 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" 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 When @code{\relative} is used without an explicit reference pitch, the reference pitch now is the middle of the first octave, making @@ -150,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} @@ -203,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 @@ -267,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