1 \input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
2 @setfilename lilypond-changes.info
3 @settitle LilyPond Changes
8 @macro inputfileref{DIR,NAME}
9 @uref{../../\DIR\/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
11 @macro usermanref{NAME}
12 @inforef{\NAME\,,../user/lilypond/lilypond}@c
17 @macro inputfileref{DIR,NAME}
20 @macro usermanref{NAME}
21 See user manual, \NAME\
25 @macro textanchor{NAME}
32 @documentencoding UTF-8
39 @top New features in 2.20 since 2.18
41 @allowcodebreaks false
49 * add new items at the top
51 * only show verbatim input for syntax/input changes
53 * try to be as brief possible in those cases
55 * don't try to provide real-world examples, they often get too big,
56 which scares away people.
58 * Write complete sentences.
60 * only show user-visible changes.
65 It is now possible to add text to analysis brackets through the
66 @code{HorizontalBracketText} object.
67 @lilypond[quote,verbatim]
71 \consists "Horizontal_bracket_engraver"
76 \once \override HorizontalBracketText.text = "a"
77 c''\startGroup d''\stopGroup
78 e''-\tweak HorizontalBracketText.text "a'" \startGroup d''\stopGroup
83 The ends of hairpins may now be fine-tuned using the @code{shorten-pair}
84 grob property, which previously only affected text-spanners like
85 @code{TupletBracket} and @code{OttavaBracket}. Positive values offset
86 to the right, negative to the left.
87 @lilypond[quote,verbatim]
88 { \once \override Hairpin.shorten-pair = #'(2 . 2)
91 \once \override Hairpin.shorten-pair = #'(-2 . -2)
97 In fret-diagrams the distance between frets and the distance between strings is
98 now independently adjustable. Available are @code{fret-distance} and
99 @code{string-distance} as subproperties of @code{fret-diagram-details}.
100 @lilypond[verbatim,quote]
101 fretMrkp = \markup { \fret-diagram-terse #"x;x;o;2;3;2;" }
104 \override #'(padding . 2)
112 \override #'(fret-diagram-details . ((fret-distance . 2)))
117 \override #'(fret-diagram-details . ((string-distance . 2)))
123 Accidental rules can now be defined across @code{ChoirStaff} contexts.
124 Two new rules @code{choral} and @code{choral-cautionary} are available
125 that combine the characteristics of @code{modern-voice} and @code{piano}
126 or their equivalents with cautionary accidentals.
129 The music function @code{\unfoldRepeats} can now take an
130 optional argument-list specifying which type(s) of repeated music
131 should be unfolded. Possible entries are @code{percent}, @code{tremolo},
133 If the optional argument-list is unspecified, @code{repeated-music} will be
137 A new @code{output-attributes} grob property is now used for svg output
138 instead of the @code{id} grob property. It allows multiple attributes
139 to be defined as an association list. For example, @code{#'((id . 123)
140 (class . foo) (data-whatever . @qq{bar}))} will produce the following
141 group tag in an SVG file: @code{<g id=@qq{123} class=@qq{foo}
142 data-whatever=@qq{bar}> @dots{} </g>}.
145 Slurs and phrasing slurs may now be started from individual notes
146 in a chord. Several simultanous slurs per @code{Voice} need to be
147 distinguished by @code{spanner-id} setting.
150 The music and grob property @code{spanner-id} for distinguishing
151 simultaneous slurs and phrasing slurs has been changed from a
152 string to a @q{key}, a non-negative integer or symbol.
155 There is a new command @code{\=} for specifying the
156 @code{spanner-id} for simultaneous slurs and phrasing slurs.
157 @lilypond[verbatim,quote]
159 <c~ f\=1( g\=2( >2 <c e\=1) a\=2) >
164 Blocks introduced with @code{\header} can be stored in variables
165 and used as arguments to music and scheme functions and as the
166 body of @code{#@{@dots{}#@}} constructs. They are represented as
169 While @code{\book}, @code{\bookpart}, @code{\score}, @code{\with},
170 @code{\layout}, @code{\midi}, @code{\paper} blocks can be passed
171 around in similar manner, they are represented by different data
175 Dot-separated symbol lists like @code{FretBoard.stencil} were
176 already supported as of version@tie{}2.18. They may now also
177 contain unsigned integers, and may alternatively be separated by
178 commata. This allows usage such as
179 @lilypond[quote,verbatim]
180 { \time 2,2,1 5/8 g'8 8 8 8 8 }
184 \tagGroup violin,oboe,bassoon
188 Such lists may also be used in expressions for assignments, sets,
189 and overrides. This allows usage such as
190 @lilypond[quote,verbatim]
191 { \unset Timing.beamExceptions
192 \set Timing.beatStructure = 1,2,1
197 Association list elements could previously be assigned values
198 individually (for example, paper variables like
199 @code{system-system-spacing.basic-distance}). They may now be
200 also referenced in this manner, as with
203 \void \displayScheme \system-system-spacing.basic-distance
207 In combination with the previously mentioned changes, this allows
208 setting and referencing pseudovariables like @code{violin.1}.
211 LilyPond source files may now be embedded inside the generated PDF files.
212 This experimental feature is disabled by default and may be regarded as unsafe,
213 as PDF documents with hidden content tend to present a security risk.
214 Please note that not all PDF viewers have the ability to handle embedded
215 documents (if not, the PDF output will appear normally and source files
216 will remain invisible). This feature only works with the PDF backend.
219 French note names are now defined specifically instead of
220 being aliased to Italian note names: in addition to the
221 generic Italian-derived syntax, the @var{d} pitch may be
222 entered as @code{ré}. Double sharps may also be
223 entered using the @code{-x} suffix.
226 Additional bass strings (for lute tablature) are supported.
227 @lilypond[quote,verbatim]
228 m = { f'4 d' a f d a, g, fis, e, d, c, \bar "|." }
235 tablatureFormat = #fret-letter-tablature-format
239 stringTunings = \stringTuning <a, d f a d' f'>
240 additionalBassStrings = \stringTuning <c, d, e, fis, g,>
241 fretLabels = #'("a" "b" "r" "d" "e" "f" "g" "h" "i" "k")
248 The markup-list-command @code{\table} is now available.
249 Each column may be aligned differently.
250 @lilypond[quote,verbatim]
252 \override #'(padding . 2)
256 \underline { center-aligned right-aligned center-aligned left-aligned }
257 one "1" thousandth "0.001"
258 eleven "11" hundredth "0.01"
259 twenty "20" tenth "0.1"
260 thousand "1000" one "1.0"
266 A new markup-command, @code{\with-dimensions-from}, makes
267 @code{\with-dimensions} easier to use by taking the new
268 dimensions from a markup object, given as first argument.
269 @lilypond[quote,verbatim]
271 \pattern #5 #Y #0 "x"
272 \pattern #5 #Y #0 \with-dimensions-from "x" "f"
273 \pattern #5 #Y #0 \with-dimensions-from "x" "g"
274 \override #'(baseline-skip . 2)
276 \pattern #5 #X #0 "n"
277 \pattern #5 #X #0 \with-dimensions-from "n" "m"
278 \pattern #5 #X #0 \with-dimensions-from "n" "!"
284 There are two new page breaking functions. @code{ly:one-page-breaking}
285 automatically adjusts the height of the page to fit the music, so that
286 everything fits on one page. @code{ly:one-line-auto-height-breaking}
287 is like @code{ly:one-line-breaking}, placing the music on a single
288 line and adjusting the page width accordingly, however it also
289 automatically adjusts the page height to fit the music.
292 Markup-command @code{\draw-squiggle-line} is now available.
293 Customizing is possible with overrides of @code{thickness}, @code{angularity},
294 @code{height} and @code{orientation}
295 @lilypond[quote,verbatim]
298 \draw-squiggle-line #0.5 #'(3 . 3) ##t
301 \override #'(thickness . 4)
302 \draw-squiggle-line #0.5 #'(3 . -3) ##t
305 \override #'(angularity . -5)
306 \draw-squiggle-line #0.5 #'(-3 . -3) ##t
308 \translate #'(3 . -3)
309 \override #'(angularity . 2)
310 \override #'(height . 0.3)
311 \override #'(orientation . -1)
312 \draw-squiggle-line #0.2 #'(-3 . 3) ##t
317 A new command, @code{\RemoveAllEmptyStaves}, has been made available, which
318 acts exactly like @code{\RemoveEmptyStaves}, except for also removing empty
319 staves on the first system in a score.
322 Markup-commands @code{\undertie} and @code{\overtie} are now available, as well
323 as the generic markup-command @code{\tie}.
324 @lilypond[quote,verbatim]
326 \undertie "undertied"
331 c''1 \prall -\tweak text \markup \tie "131" -1
334 { \voiceOne \m \voiceTwo \m }
338 @code{TabStaff} is now able to print micro-tones for bendings etc.
339 @lilypond[quote,verbatim]
343 supportNonIntegerFret = ##t
347 mus = \relative { c'4 cih d dih }
350 \new Staff << \clef "G_8" \mus >>
356 Two new styles of whiteout are now available. The @code{outline} style
357 approximates the contours of a glyph's outline, and its shape is
358 produced from multiple displaced copies of the glyph. The
359 @code{rounded-box} style produces a rounded rectangle shape. For all
360 three styles, including the default @code{box} style, the whiteout
361 shape's @code{thickness}, as a multiple of staff-line thickness, can be
364 @lilypond[verbatim,quote]
367 \filled-box #'(-1 . 15) #'(-3 . 4) #1
368 \override #'(thickness . 3)
369 \whiteout whiteout-box
373 \filled-box #'(-1 . 24) #'(-3 . 4) #1
374 \override #'(style . rounded-box)
375 \override #'(thickness . 3)
376 \whiteout whiteout-rounded-box
380 \filled-box #'(-1 . 18) #'(-3 . 4) #1
381 \override #'(style . outline)
382 \override #'(thickness . 3)
383 \whiteout whiteout-outline
386 \override Staff.Clef.whiteout-style = #'outline
387 \override Staff.Clef.whiteout = 3
393 All of @code{\override}, @code{\revert}, @code{\set}, and
394 @code{\unset} now work with the @code{\once} prefix for making
396 @lilypond[quote,verbatim]
399 \override NoteHead.color = #red
401 \once \override NoteHead.color = #green
403 \once \revert NoteHead.color
405 \revert NoteHead.color
411 When outputting MIDI, LilyPond will now store the @code{title}
412 defined in a score's @code{\header} block (or, if there is no
413 such definition on the @code{\score} level, the first such
414 definition found in a @code{\header} block of the score's
415 enclosing @code{\bookpart}, @code{\book}, or top-level scope)
416 as the name of the MIDI sequence in the MIDI file. Optionally,
417 the name of the MIDI sequence can be overridden using the new
418 @code{midititle} @code{\header} field independently of
419 @code{title} (for example, in case @code{title} contains markup
420 code which does not render as plain text in a satisfactory way
424 Music (and scheme and void) functions and markup commands that
425 just supply the final parameters to a chain of overrides, music
426 function and markup command calls can now be defined in the form
427 of just writing the expression cut short with @code{\etc}.
429 @lilypond[verbatim,quote]
430 bold-red-markup = \markup \bold \with-color #red \etc
431 highlight = \tweak font-size 3 \tweak color #red \etc
433 \markup \bold-red "text"
434 \markuplist \column-lines \bold-red { One Two }
436 { c' \highlight d' e'2-\highlight -! }
440 LilyPond functions defined with @code{define-music-function},
441 @code{define-event-function}, @code{define-scheme-function} and
442 @code{define-void-function} can now be directly called from Scheme
443 as if they were genuine Scheme procedures. Argument checking and
444 matching will still be performed in the same manner as when
445 calling the function through LilyPond input. This includes the
446 insertion of defaults for optional arguments not matching their
447 predicates. Instead of using @code{\default} in the actual
448 argument list for explicitly skipping a sequence of optional
449 arguments, @code{*unspecified*} can be employed.
452 Current input location and parser are now stored in GUILE fluids
453 and can be referenced via the function calls @code{(*location*)}
454 and @code{(*parser*)}. Consequently, a lot of functions
455 previously taking an explicit @code{parser} argument no longer do
458 Functions defined with @code{define-music-function},
459 @code{define-event-function}, @code{define-scheme-function} and
460 @code{define-void-function} no longer use @code{parser} and
461 @code{location} arguments.
463 With those particular definitions, LilyPond will try to recognize
464 legacy use of @code{parser} and @code{location} arguments,
465 providing backwards-compatible semantics for some time.
468 In the "english" notename language, the long notenames for pitches
469 with accidentals now contain a hyphen for better readability. You
474 instead of the previous
479 Double accidentals do not get another hyphen, so the Dutch
480 @code{cisis} has the long English notename @code{c-sharpsharp}.
483 The visual style of tremolo slashes (shape, style and slope)
484 is now more finely controlled.
485 @lilypond[quote,relative=2]
487 \override StemTremolo.shape = #'beam-like
489 \override StemTremolo.style = #'constant
496 Multi-measure rests have length according to their total duration,
497 under the control of @code{MultiMeasureRest.space-increment}.
499 { \compressFullBarRests
500 \override Staff.MultiMeasureRest.space-increment = 3.0
505 Page numbers may now be printed in roman numerals, by setting the
506 @code{page-number-type} paper variable.
509 It is now possible to use @code{\time} and @code{\partial}
510 together to change the time signature in mid measure.
512 @lilypond[verbatim,quote,relative=1]
513 \override Score.BarNumber.break-visibility = #end-of-line-invisible
514 \partial 4 \time 3/4 f4 | 2 4 | 2 \bar "||"
515 \time 9/8 \partial 4. f8 8 8 | 2. 8 8 8 |
519 It is now possible to override the @code{text} property of
522 @lilypond[verbatim,fragment,quote]
524 \new ChordNames \chordmode {
526 \once \override ChordName.text = #"foo"
533 Improved horizontal alignment when using @code{TextScript},
534 with @code{DynamicText} or @code{LyricText}.
537 A new command @code{\magnifyStaff} has been added which scales staff
538 sizes, staff lines, bar lines, beamlets and horizontal spacing generally
539 at the @code{Staff} context level. Staff lines are prevented from being
540 scaled smaller than the default since the thickness of stems, slurs, and
541 the like are all based on the staff line thickness.
544 @code{InstrumentName} now supports @code{text-interface}.
547 There is now support for controlling the @q{expression level} of
548 MIDI channels using the @code{Staff.midiExpression} context property.
549 This can be used to alter the perceived volume of even sustained notes
550 (albeit in a very @q{low-level} way) and accepts a number value between
551 @code{0.0} and @code{1.0}.
556 midiExpression = #0.6
557 midiInstrument = #"clarinet"
562 \set Staff.midiExpression = #0.7 s4\f\<
563 \set Staff.midiExpression = #0.8 s4
564 \set Staff.midiExpression = #0.9 s4
565 \set Staff.midiExpression = #1.0 s4
567 \set Staff.midiExpression = #0.9 s4\>
568 \set Staff.midiExpression = #0.8 s4
569 \set Staff.midiExpression = #0.7 s4
570 \set Staff.midiExpression = #0.6 s4\!
578 Support for making it easier to use alternative @q{music} fonts other
579 than the default Emmentaler in LilyPond has been added. See
580 @uref{http://fonts.openlilylib.org/} for more information.
583 Grobs and their parents can now be aligned separately allowing
584 more flexibility for grob positions. For example the @q{left} edge of a
585 grob can now be aligned on the @q{center} of its parent.
588 Improvements to the @code{\partial} command have been made to
589 avoid problems when using multiple, parallel contexts.
591 @item @code{\chordmode} can now use @code{< >} and @code{<< >>}
595 A new command @code{\tagGroup} has now been added. This complements
596 the existing @code{\keepWithTag} and @code{\removeWithTag} commands.
600 \tagGroup #'(violinI violinII viola cello)
603 declares a list of @q{tags} that belong to a single @q{tag group}.
606 \keepWithTag #'violinI
609 Is now only concerned with @q{tags} from @q{violinI}’s tag group.
611 Any element of the included music tagged with one or more tags from the
612 group, but @emph{not} with @var{violinI}, will be removed.
615 The @code{\addlyrics} function now works with arbitrary contexts
616 incuding @code{Staff}.
619 String numbers can now also be used to print roman numerals
620 (e.g. for unfretted string instruments).
621 @lilypond[verbatim,quote,relative=2]
630 The @code{thin-kern} property of the @code{BarLine} grob has been
631 renamed to @code{segno-kern}.
634 @code{KeyCancellation} grobs now ignore cue clefs (like
635 @code{KeySignature} grobs do).
638 Add support for @code{\once@tie{}\unset}
641 It is now possible to individually color both the dots and parentheses
642 in fret diagrams when using the @code{\fret-diagram-verbose} markup
645 @lilypond[verbatim,quote,relative=1]
648 \override #'(fret-diagram-details . (
649 (finger-code . in-dot))) {
650 \fret-diagram-verbose #'((mute 6)
651 (place-fret 5 3 1 red)
652 (place-fret 4 5 2 inverted)
653 (place-fret 3 5 3 green)
654 (place-fret 2 5 4 blue inverted)
655 (place-fret 1 3 1 violet)
660 \override #'(fret-diagram-details . (
661 (finger-code . below-string))) {
662 \fret-diagram-verbose #'((mute 6)
663 (place-fret 5 3 1 red parenthesized)
664 (place-fret 4 5 2 yellow
667 (place-fret 3 5 3 green)
668 (place-fret 2 5 4 blue )
677 Two new properties have been added for use in
678 @code{fret-diagram-details} when using the @code{\fret-diagram-verbose}
679 markup command; @code{fret-label-horizontal-offset} which affects the
680 @code{fret-label-indication} and @code{paren-padding} which controls the
681 space between the dot and the parentheses surrounding it.
683 @lilypond[verbatim,quote,relative=1]
686 \fret-diagram-verbose #'((mute 6)
690 (place-fret 1 6 4 parenthesized)
695 \override #'(fret-diagram-details . (
696 (fret-label-horizontal-offset . 2)
697 (paren-padding . 0.25))) {
698 \fret-diagram-verbose #'((mute 6)
702 (place-fret 1 6 4 parenthesized)
711 A new markup command @code{\justify-line} has been added. Similar to
712 the @code{\fill-line} markup command except that instead of setting
713 @emph{words} in columns, the @code{\justify-line} command balances the
714 whitespace between them ensuring that when there are three or more
715 words in a markup, the whitespace is always consistent.
717 @lilypond[quote,verbatim,papersize=a6]
718 \markup \fill-line {oooooo oooooo oooooo oooooo}
719 \markup \fill-line {ooooooooo oooooooo oo ooo}
722 @lilypond[quote,verbatim,papersize=a6]
723 \markup \justify-line {oooooo oooooo oooooo oooooo}
724 \markup \justify-line {ooooooooo oooooooo oo ooo}
728 A new command @code{\magnifyMusic} has been added, which allows
729 the notation size to be changed without changing the staff size,
730 while automatically scaling stems, beams, and horizontal spacing.
732 @lilypond[verbatim,quote]
734 \new Voice \relative {
736 <e' e'>4 <f f'>8. <g g'>16 <f f'>8 <e e'>4 r8
738 \new Voice \relative {
741 \override Score.SpacingSpanner.spacing-increment = #(* 1.2 0.63)
742 r32 c'' a c a c a c r c a c a c a c
743 r c a c a c a c a c a c a c a c
750 A new flexible template suitable for a range of choral music, is now
751 provided. This may be used to create simple choral music, with or
752 without piano accompaniment, in two or four staves. Unlike other
753 templates, this template is @q{built-in}, which means it does not
754 need to be copied and edited: instead it is simply @code{\include}'d
755 in the input file. For details, see @rlearning{Built-in templates}.
758 The positioning of tuplet numbers for kneed beams has been significantly
759 improved. Previously, tuplet numbers were placed according to the
760 position of the tuplet bracket, even if it was not printed. This could
761 lead to stranded tuplet numbers. Now they are now positioned
762 closer to the kneed-beam when an appropriate beam segment exists for its
763 placement and when the bracket is not drawn.
765 Collision detection is also added, offsetting horizontally if too close
766 to an adjoining note column but preserving the number's vertical
767 distance from the kneed beam. If the number itself is too large to
768 fit in the available space the original, bracket-based, positioning
769 system is used instead; and in the event of a collision (e.g. with an
770 accidental) the tuplet number is moved vertically away instead.
772 @lilypond[verbatim,fragment,quote,relative=1]
774 \override Beam.auto-knee-gap = 3
783 The original kneed-beam tuplet behavior is still available through an
784 @code{\override} via a new, @code{knee-to-beam} property.
786 @lilypond[verbatim,fragment,quote,relative=1]
788 \override Beam.auto-knee-gap = 3
789 \override TupletNumber.knee-to-beam = ##f
798 @code{\lyricsto} and @code{\addLyrics} have been @q{harmonized}. Both
799 now accept the same kind of delimited argument list that @code{\lyrics}
800 and @code{\chords} accept. Backward compatibility has been added so
801 music identifiers (i.e. @code{\mus}) are permitted as arguments. A
802 @code{convert-ly} rule has been added that removes redundant uses of
803 @code{\lyricmode} and rearranges combinations with context starters such
804 that @code{\lyricsto} in general is applied last (i.e. like
805 @code{\lyricmode} would be).
808 Scheme functions and identifiers can now be used as output definitions.
811 Scheme expressions can now be used as chord constituents.
814 Improved visual spacing of small and regular @q{MI} Funk and Walker
815 noteheads so they are now the same width as other shaped notes in
816 their respective sets. @code{SOL} noteheads are also now visually
817 improved when used with both the normal Aiken and Sacred Harp heads, as
818 well as with the thin variants.
821 @code{LeftEdge} now has a definable @code{Y-extent} (i.e.vertical). See
822 @rinternals{LeftEdge}.
825 Added a new @code{make-path-stencil} function that supports all
826 @code{path} commands both relative and absolute:
828 @code{lineto}, @code{rlineto}, @code{curveto}, @code{rcurveto},
829 @code{moveto}, @code{rmoveto}, @code{closepath}. The function also
830 supports @q{single-letter} syntax used in standard SVG path commands:
832 @code{L}, @code{l}, @code{C}, @code{c}, @code{M}, @code{m}, @code{Z} and
833 @code{z}. The new command is also backward-compatible with the original
834 @code{make-connected-path-stencil} function. Also see
835 @file{scm/stencil.scm}.
838 Context properties named in the @samp{alternativeRestores} property are
839 restored to their value at the start of the @emph{first} alternative in
840 all subsequent alternatives.
842 Currently the default set restores @q{current meter};
844 @lilypond[verbatim,fragment,quote,relative=2]
846 \repeat volta 2 { c2 e4 | }
855 @q{measure position};
857 @lilypond[verbatim,fragment,quote,relative=2]
859 \repeat volta 2 { c2 e4 | }
862 \set Timing.measurePosition = #(ly:make-moment -1/2)
870 and @q{chord changes};
872 @lilypond[verbatim,fragment,quote]
875 \set chordChanges = ##t
876 \chordmode { c1:m d:m c:m d:m }
879 \repeat volta 2 { \chordmode { c1:m } }
881 { \chordmode { d:m } }
882 { \chordmode { c:m } }
890 Improved MIDI output for breathe marks. After tied notes, breaths take
891 time @emph{only} from the last note of the tie; e.g.
892 @code{@{ c4~ c8 \breathe @}} performs as @code{@{ c4~ c16 r @}} instead
893 of @code{@{ c4 r8 @}}. This is more consistent with articulations and
894 how humans interpret breaths after ties. It now also makes it easier to
895 align simultaneous breathe marks over multiple parts, all with different
899 A new note head style for Tabulature has been added;
900 @code{TabNoteHead.style = #'slash}.
903 Four new Clef glyphs have been added @emph{Double G}, @emph{Tenor G},
904 @emph{Varpercussion} and @emph{varC} and their related tessitura.
905 @lilypond[verbatim,quote,fragment]
906 \override Staff.Clef.full-size-change = ##t
909 \clef "tenorG" c c c c
911 \clef "altovarC" c c c c
912 \clef "tenorvarC" c c c c
913 \clef "baritonevarC" c c c c
914 \clef "varpercussion" c c c c
917 \override Staff.Clef.full-size-change = ##f
920 \clef "tenorG" c c c c
922 \clef "altovarC" c c c c
923 \clef "tenorvarC" c c c c
924 \clef "baritonevarC" c c c c
925 \clef "varpercussion" c c c c
929 Isolated durations in music sequences now stand for unpitched
930 notes. This may be useful for specifying rhythms to music or
931 scheme functions. When encountered in the final score, the
932 pitches are provided by the preceding note or chord. Here are two
933 examples where this makes for readable input:
935 @lilypond[verbatim,quote]
936 \new DrumStaff \with { \override StaffSymbol.line-count = 1 }
939 tambourine 8 \tuplet 3/2 { 16 16 16 }
940 8 \tuplet 3/2 { 16 16 16 } 8 8 |
944 @lilypond[verbatim,quote]
945 \new Staff { r16 c'16 ~ 8 ~ 4 ~ 2 | }
949 @code{\displayLilyMusic} and its underlying Scheme functions no
950 longer omit redundant note durations. This makes it easier to
951 reliably recognize and format standalone durations in expressions
958 Beaming exceptions can now be constructed using the
959 @code{\beamExceptions} scheme function. One can now write
961 @lilypond[verbatim,quote,relative=1]
963 \set Timing.beamExceptions =
964 \beamExceptions { 32[ 32] 32[ 32] 32[ 32] }
966 \repeat unfold 6 { c32 } |
970 with multiple exceptions separated with @code{|} bar checks
971 (writing the exception pattern without pitches is convenient but
972 not mandatory). Previously, setting the beam exceptions would
973 have required writing
976 \set Timing.beamExceptions =
978 (end . ;entry for end of beams
979 ( ;start of alist of end points
980 ((1 . 32) . (2 2 2)) ;rule for 1/32 beams -- end each 1/16
985 The most common articulations are now reflected in MIDI output.
986 Accent and marcato make notes louder; staccato, staccatissimo and
987 portato make them shorter. Breath marks shorten the previous
990 This behavior is customizable through the @code{midiLength} and
991 @code{midiExtraVelocity} properties on @code{ArticulationEvent}.
992 See @file{script-init.ly} for examples.
995 The PostScript functionality of stroke adjustment is no longer
996 applied automatically but left to the discretion of the PostScript
997 device (by default, Ghostscript uses it for resolutions up to
998 150dpi when generating raster images). When it is enabled, a more
999 complex drawing algorithm designed to benefit from stroke
1000 adjustment is employed mostly for stems and bar lines.
1002 Stroke adjustment can be forced by specifying the command line
1003 option @samp{-dstrokeadjust} to LilyPond. When generating
1004 @code{PDF} files, this will usually result in markedly better
1005 looking @code{PDF} previews but significantly larger file size.
1006 Print quality at high resolutions will be unaffected.
1011 For older news, go to
1012 @uref{http://lilypond.org/doc/v2.18/Documentation/changes/},
1013 @uref{http://lilypond.org/doc/v2.16/Documentation/changes/},
1014 or @uref{../,go back} to the Documentation index.