X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fchanges.tely;h=75a5a06f30ac07b03b24490c113457f0ef6528d4;hb=bcd127bc07fc7b53704f9db8a6cf3d53e9d4094a;hp=a90f386485790d53292a5795d06329ec870f68ea;hpb=b3fa845f6fa55c4d4fb8b302d9f9e809692974fe;p=lilypond.git diff --git a/Documentation/changes.tely b/Documentation/changes.tely index a90f386485..75a5a06f30 100644 --- a/Documentation/changes.tely +++ b/Documentation/changes.tely @@ -29,7 +29,7 @@ See user manual, \NAME\ @end macro -@documentencoding utf-8 +@documentencoding UTF-8 @documentlanguage en @afourpaper @@ -61,13 +61,162 @@ which scares away people. @end ignore +@item +@code{TabStaff} is now able to print micro-tones for bendings etc. +@lilypond[quote,verbatim] +\layout { + \context { + \Score + noteToFretFunction = #(determine-frets #t) + } +} + +mus = \relative { c'4 cih d dih } + +<< + \new Staff << \clef "G_8" \mus >> + \new TabStaff \mus +>> +@end lilypond + +@item +A new style of whiteout that approximates the contours of a glyph's +outline is now available using @code{whiteout-style}. The shape of the +white background is produced from multiple displaced copies of the +glyph. The @code{thickness} of both the new @code{outline} style and +the default @code{box} style, as a multiple of staff-line thickness, can +be customized. +@lilypond[verbatim,quote] +\markup { + \combine + \filled-box #'(-1 . 15) #'(-3 . 4) #1 + \override #'(thickness . 2) + \whiteout whiteout-box +} +\markup { + \combine + \filled-box #'(-1 . 18) #'(-3 . 4) #1 + \override #'(style . outline) + \override #'(thickness . 3) + \whiteout whiteout-outline +} +\relative { + \override Staff.Clef.whiteout-style = #'outline + \override Staff.Clef.whiteout = 3 + g'1 +} +@end lilypond + +@item +All of @code{\override}, @code{\revert}, @code{\set}, and +@code{\unset} now work with the @code{\once} prefix for making +one-time settings. +@lilypond[quote,verbatim] +\relative { + c'4 d + \override NoteHead.color = #red + e4 f | + \once \override NoteHead.color = #green + g4 a + \once \revert NoteHead.color + b c | + \revert NoteHead.color + f2 c | +} +@end lilypond + +@item +When outputting MIDI, LilyPond will now store the @code{title} +defined in a score's @code{\header} block (or, if there is no +such definition on the @code{\score} level, the first such +definition found in a @code{\header} block of the score's +enclosing @code{\bookpart}, @code{\book}, or top-level scope) +as the name of the MIDI sequence in the MIDI file. Optionally, +the name of the MIDI sequence can be overridden using the new +@code{midititle} @code{\header} field independently of +@code{title} (for example, in case @code{title} contains markup +code which does not render as plain text in a satisfactory way +automatically). + +@item +Music (and scheme and void) functions and markup commands that +just supply the final parameters to a chain of overrides, music +function and markup command calls can now be defined in the form +of just writing the expression cut short with @code{\etc}. + +@lilypond[verbatim,quote] +bold-red-markup = \markup \bold \with-color #red \etc +highlight = \tweak font-size 3 \tweak color #red \etc + +\markup \bold-red "text" +\markuplist \column-lines \bold-red { One Two } + +{ c' \highlight d' e'2-\highlight -! } +@end lilypond + +@item +LilyPond functions defined with @code{define-music-function}, +@code{define-event-function}, @code{define-scheme-function} and +@code{define-void-function} can now be directly called from Scheme +as if they were genuine Scheme procedures. Argument checking and +matching will still be performed in the same manner as when +calling the function through LilyPond input. This includes the +insertion of defaults for optional arguments not matching their +predicates. Instead of using @code{\default} in the actual +argument list for explicitly skipping a sequence of optional +arguments, @code{*unspecified*} can be employed. + +@item +Current input location and parser are now stored in GUILE fluids +and can be referenced via the function calls @code{(*location*)} +and @code{(*parser*)}. Consequently, a lot of functions +previously taking an explicit @code{parser} argument no longer do +so. + +Functions defined with @code{define-music-function}, +@code{define-event-function}, @code{define-scheme-function} and +@code{define-void-function} no longer use @code{parser} and +@code{location} arguments. + +With those particular definitions, LilyPond will try to recognize +legacy use of @code{parser} and @code{location} arguments, +providing backwards-compatible semantics for some time. + +@item +In the "english" notename language, the long notenames for pitches +with accidentals now contain a hyphen for better readability. You +now have to write +@example +\key a-flat \major +@end example +instead of the previous +@example +\key aflat \major +@end example + +Double accidentals do not get another hyphen, so the Dutch +@code{cisis} has the long English notename @code{c-sharpsharp}. + +@item +The visual style of tremolo slashes (shape, style and slope) +is now more finely controlled. +@lilypond[quote,relative=2] + a8:32 b: c: d: + \override StemTremolo.shape = #'beam-like + a: b: c: d: + \override StemTremolo.style = #'constant + a: b: c: d: + g,2 +@end lilypond + + @item Multi-measure rests have length according to their total duration, under the control of @code{MultiMeasureRest.space-increment}. @lilypond[quote] { \compressFullBarRests - \override MultiMeasureRest.space-increment = 2.2 - R1 R1 R1*2 R1*8 R1*24 R1*80 } + \override Staff.MultiMeasureRest.space-increment = 3.0 + R1*2 R1*12 R1*64 } @end lilypond @item @@ -161,10 +310,7 @@ avoid problems when using multiple, parallel contexts. constructs. @item -The @code{NullVoice} context is now @q{below} @code{Score}. - -@item -A new command @code{\tagGroup} has now been added. This compliments +A new command @code{\tagGroup} has now been added. This complements the existing @code{\keepWithTag} and @code{\removeWithTag} commands. For Example: @@ -175,7 +321,7 @@ For Example: declares a list of @q{tags} that belong to a single @q{tag group}. @example -\keepwithTag#'violinI +\keepWithTag #'violinI @end example Is now only concerned with @q{tags} from @q{violinI}’s tag group. @@ -517,6 +663,15 @@ examples where this makes for readable input: \new Staff { r16 c'16 ~ 8 ~ 4 ~ 2 | } @end lilypond +@item +@code{\displayLilyMusic} and its underlying Scheme functions no +longer omit redundant note durations. This makes it easier to +reliably recognize and format standalone durations in expressions +like +@example +@{ c4 d4 8 @} +@end example + @item Beaming exceptions can now be constructed using the @code{\beamExceptions} scheme function. One can now write