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.13 since 2.12
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 MIDI-import through Midi2ly is improved
67 @item Midi2ly now also works on Windows systems
68 @item MIDI-files with more than 32 tracks are now handled
69 @item notes on certain simultaneous voices no longer ignored
70 @item notes overrunning a bar line are no longer truncated
71 @item initial key signature and time signature are respected
72 @item a problem with octaves in subsequent tracks/voices is fixed
73 @item initial support for multiple voices notated on one staff
74 @item the instrumentName is set from track data
75 @item new --skip option, rests are displayed by default
76 @item rests overrunning a bar line are not truncated
77 @item new --include-header option for setting titles
78 @item new --preview option for big MIDI-files
80 The first feature was sponsored by Valentin Villenave,
81 the other features were sponsored by Image-Line Software for FL Studio.
84 A new @code{Completion_rest_engraver} is available for automatically
85 converting long rests which overrun bar lines, matching the
86 @code{Completion_heads_engraver} for notes
91 \remove "Note_heads_engraver"
92 \consists "Completion_heads_engraver"
93 \remove "Rest_engraver"
94 \consists "Completion_rest_engraver"
98 This feature was sponsored by Image-Line Software for FL Studio.
101 Dots can be added to the table of contents items using:
104 tocItemMarkup = \tocItemWithDotsMarkup
109 New markup commands @code{\pattern} and @code{\fill-with-pattern} are available.
112 \pattern #3 #Y #0.3 \flat
114 \pattern #7 #X #2 \flat
115 \override #'(line-width . 40) \fill-with-pattern #1 #CENTER . left right
120 A minimal composer toolkit of modal transformations is provided.
121 A motif may be @notation{transposed}, @notation{inverted} and/or
122 converted to its @notation{retrograde} within any scale.
125 pentatonicScale = \relative a' { a c d f g }
126 motif = \relative c'' { d8 c f,4 <a f'> <a f'> }
133 \modalTranspose c a, \pentatonicScale \motif
134 \modalInversion d'' a' \pentatonicScale \motif
139 s4^"pentatonic scale"
150 Black mensural notation has minimal support.
153 Support for obliqua shapes within white mensural ligatures enhanced.
155 \context MensuralStaff
159 \override NoteHead #'style = #'semipetrucci
161 \override NoteHead #'style = #'blackpetrucci
163 \revert NoteHead #'style
164 \override NoteHead #'ligature-flexa = ##t
165 \override NoteHead #'flexa-width = #3
168 \override NoteHead #'flexa-width = #5
171 \revert NoteHead #'style
178 Compound time signatures are now supported by the @code{\compoundMeter} command,
179 which can be used instead of @code{\time}:
182 \compoundMeter #'(3 1 8)
184 \compoundMeter #'((2 8) (5 8))
186 \compoundMeter #'((1 2 3 8) (1 4) (3 8))
187 c8 c c c c c c4 c8 c c
192 Lyrics above a staff must have their @code{staff-affinity} set to
193 @code{DOWN} or must have their @code{alignAboveContext} property
194 set in order to be properly aligned. For more information, see
195 @ruser{Placing lyrics vertically}.
198 @code{stringTunings} property values have changed from a list of
199 semitones above middle C to a list of LilyPond pitch values.
200 convert-ly will handle the change automatically where the value
201 of @code{stringTunings} is set to a Scheme constant value.
203 New commands @code{makeStringTuning} and @code{contextStringTuning}
204 allow the creation of string tunings in the form of a Lilypond
208 By using @code{\cueDuringWithClef}, cue notes can now also have their own
209 clef, which is correctly reset at the end of the cue notes. At the begin
210 of each line, the standard clef is still displayed, but the cue clef is
211 shown after the time/key signature in smaller size.
213 vI = \relative c'' { \clef "treble" \repeat unfold 40 g4 }
214 \addQuote vIQuote { \vI }
218 \cueDuringWithClef #"vIQuote" #DOWN #"treble" { R1 } |
219 c4 \cueDuringWithClef #"vIQuote" #DOWN #"treble" {
223 \cueDuringWithClef #"vIQuote" #DOWN "soprano" { R1*2 \break R1 } |
229 \new Staff \new Voice \Solo
236 Note names can be selected with a new
237 @code{@bs{}language "italiano"} command, which
238 can be used in safe mode. The old
239 @code{@bs{}include "italiano.ly"} syntax is
240 still supported for now, but will be deprecated
244 autobeaming is now disabled by @code{\cadenzaOn} and enabled by
245 @code{\cadenzaOff}. Beaming in cadenzas should be indicated manually.
246 Also, if a cadenza is used in a piece with autobeaming disabled, it
247 will need to be disabled again after the cadenza.
250 The user is now able to specify the name of the predefined fretboard
251 table. This allows the use of multiple tables, with switching between them
255 The part-combiner's decision to combine/not combine notes can now be customized
256 @lilypond[quote,relative=2]
258 \relative c' { c2 \partcombineApart c | \partcombineChordsOnce e' e }
259 \relative c' { c2 \partcombineApart c | c c }
263 Tablature staves show fret numbers only by default. To get the
264 former style, @code{\tabFullNotation} is provided.
267 Funk-style and Walker-style shape notes have been added.
270 Rests will no longer keep a staff alive if @code{\RemoveEmptyStaffContext}
274 New option @code{-dinclude-settings=INCLUDEFILE.ly}, which causes lilypond
275 to include the given file before the score is processed. This allows the
276 user to change global settings without the need to change the score itself.
277 That way, several different editions/version (e.g. different page sizes)
278 can be generated from a file without having to modify the score for each
282 The autobeaming settings syntax has been changed. beatLength,
283 beatGrouping, beamSettings, and measureGrouping have all been eliminated.
284 Autobeaming is now controlled by baseMoment, beatStructure, and
285 beamExceptions. Default settings for each of these properties can be
286 stored for any time signature in time-signature-settings, so that
287 when the time signature is changed, the autobeaming will automatically
288 change. The new syntax should be much easier and require fewer
292 The SVG backend has optional support for
293 @uref{http://www.w3.org/Submission/WOFF, WOFF fonts}. Using the Scheme
294 option @code{-d svg-woff} together with the SVG backend selection
295 @code{-d backend=svg}, produces SVG output with CSS WOFF font selection.
298 The LilyPond G clef has been rotated 1.5 degrees clockwise for improved
299 balance. The old and new versions can be compared by looking at the
301 @uref{http://lilypond.org/doc/v2.12/Documentation/user/lilypond/The-Feta-font.html#Clef-glyphs,
303 @uref{http://lilypond.org/doc/v2.13/Documentation/notation/the-feta-font.html#Clef-glyphs,
308 Text crescendo spanners can now be added directly using @code{\cresc},
309 @code{\dim} and @code{\decresc}.
310 @lilypond[quote,relative=2]
317 The documented syntax of @samp{lilypond} environments in the @LaTeX{}
318 mode of @command{lilypond-book} has been changed to conform with
319 standard @LaTeX{} syntax: options now come after the environment name:
321 \begin@{lilypond@}[@var{options}] @dots{}
324 The previous syntax with options after @samp{\begin} is still accepted
325 by @command{lilypond-book} but deprecated. Something like
327 sed -i '/begin\[/s/begin\(\[[^]]*]\)\(@{lilypond@}\)/begin\2\1/'
330 might do the trick for conversion.
333 Aesthetics of shape note heads have been enhanced. Variable line thicknesses
334 have been implemented. All note widths have been made consistent.
335 Minor shape note commands that use the relative major key for scale steps
339 A variant of the Segno sign is provided:
340 @lilypond[quote,relative=2]
346 Context modifications (@code{\with} blocks) can be stored in variables and
347 inserted into contexts or other @code{\with} blocks:
348 @lilypond[quote,verbatim]
349 coloredheads = \with { \override NoteHead #'color = #red }
350 noclef = \with { \remove "Clef_engraver" }
353 \new Voice \with { \coloredheads } \relative c' { c4 e g c }
365 A half-open articulation was added:
366 @lilypond[quote,relative=2]
369 This is sometimes used to indicate half-open hi-hats.
372 The Unicode Bidirectional Algorithm is now fully supported for
373 single-line markup due to enhanced integration with Pango.
376 LilyPond is now licensed under the GNU GPL v3+.
379 In tablature, frets can be indicated with labels other than numbers:
381 @lilypond[verbatim,quote,relative=1]
384 stringTunings = #`(,(ly:make-pitch 1 3 NATURAL)
385 ,(ly:make-pitch 1 1 NATURAL)
386 ,(ly:make-pitch 0 5 NATURAL)
387 ,(ly:make-pitch 0 3 NATURAL)
388 ,(ly:make-pitch 0 1 NATURAL)
389 ,(ly:make-pitch -1 5 NATURAL))
390 tablatureFormat = #fret-letter-tablature-format
393 \set fretLabels = #`(,(markup #:with-color red "a")
395 ,(markup #:italic #:smaller "c"))
396 <f d>4. <bes>8 <g e>4
401 Layout objects can be printed over a white background, which whites-out objects
402 in lower layers which lie beneath:
404 @lilypond[verbatim,quote,relative=1]
406 \override Staff.StaffSymbol #'layer = #4
407 \once \override Tie #'layer = #2
409 \once \override Staff.TimeSignature #'whiteout = ##t
410 \once \override Staff.TimeSignature #'layer = #3
416 Chords can be repeated using the @code{q} shortcut:
418 @lilypond[verbatim,quote,relative=2]
423 With two-sided mode, margins for odd and even pages can be set using
424 @code{inner-margin} and @code{outer-margin}:
429 inner-margin = 10 \mm
430 outer-margin = 20 \mm
435 Paper margin defaults, as specified in @file{ly/paper@/-defaults-init.ly}, apply
436 to the default paper size (a4) and are automatically scaled according to the
440 All combinations of @code{left-margin}, @code{right-margin} and
441 @code{line-width} work now. There is no more need to set @code{line-width}
442 manually unless you explicitly want to.
445 Support for using an alternative music font, such as Gonville, is now
449 In addition to the existing @code{\hspace} markup command,
450 a new @code{\vspace} command has been added to provide an easy
451 and flexible way to add vertical space in markups.
454 The direction of manual beams can be set with @code{^[} and @code{_[}.
457 A version of the breve note head has been added with two vertical lines on each side.
458 @lilypond[quote,relative=2]
460 \override Staff.NoteHead #'style = #'altdefault
465 Instrument names and vocal names now take into account the extent of
466 system start delimiters in other staves for their positioning,
467 resulting in improved default alignment for left-, center- and
469 @lilypond[quote,indent=18\mm]
474 \set Staff.instrumentName = #"Piccolo"
478 \set Staff.instrumentName = #"Flute"
483 \set Staff.instrumentName = #"Bassoon"
489 \set PianoStaff.instrumentName = #"Piano"
490 \context Staff = "up" {
493 \context Staff = "down" {
502 Braces in markup can now be selected by point size using the markup commands
503 @code{\left-brace} and @code{\right-brace}.
513 Intermediate .ps files which are created by LilyPond
514 during compilation are now deleted by default. To keep them,
515 add the following line to your input files:
517 #(ly:set-option 'delete-intermediate-files #f)
521 Dashed and dotted slurs, phrasing slurs, and ties
522 have been made variable thickness, and
523 partially dashed slurs are now available:
524 @lilypond[quote,relative=2]
534 An eyeglasses markup was added, indicating strongly to look at the
535 conductor for instructions:
536 @lilypond[quote,relative=2]
537 \mark \markup { \eyeglasses }
538 c4_\markup { \eyeglasses }
542 A snap-pizzicato (also known as Bartok-pizzicato) articulation was added:
543 @lilypond[quote,relative=2]
548 Tuplet number formatting functions are now available to print other fractions
549 and to add notes to the number or fraction:
550 @lilypond[quote,relative=2]
551 \once \override TupletNumber #'text =
552 #(tuplet-number::non-default-tuplet-denominator-text 7)
553 \times 2/3 { c4. c4. c4. c4. }
555 \once \override TupletNumber #'text =
556 #(tuplet-number::non-default-tuplet-fraction-text 12 7)
557 \times 2/3 { c4. c4. c4. c4. }
558 \once \override TupletNumber #'text =
559 #(tuplet-number::append-note-wrapper
560 (tuplet-number::non-default-tuplet-fraction-text 12 7) "8")
561 \times 2/3 { c4. c4. c4. c4. }
563 \once \override TupletNumber #'text =
564 #(tuplet-number::append-note-wrapper tuplet-number::calc-denominator-text "4")
565 \times 2/3 { c8 c8 c8 c8 c8 c8 }
566 \once \override TupletNumber #'text =
567 #(tuplet-number::append-note-wrapper tuplet-number::calc-fraction-text "4")
568 \times 2/3 { c8 c8 c8 c8 c8 c8 }
570 \once \override TupletNumber #'text =
571 #(tuplet-number::fraction-with-notes "4." "8")
572 \times 2/3 { c4. c4. c4. c4. }
573 \once \override TupletNumber #'text =
574 #(tuplet-number::non-default-fraction-with-notes 12 "8" 4 "4")
575 \times 2/3 { c4. c4. c4. c4. }
579 FretBoards now have a chordChanges property to keep repeated FretBoard objects
583 The vertical spacing engine has been drastically changed, making
584 it more flexible and easier to control.
585 The spacing between staves within a system can now change
586 to better use the space on the page.
587 User-defined contexts may participate in this flexible spacing,
588 depending on how their @code{staff-affinity} is defined.
589 Some page formatting variables (@code{page-top-space},
590 @code{between-system-space -padding}, and
591 @code{before- between- after-title-space}) have been replaced
592 by flexible vertical dimensions.
599 For older news, go to
600 @uref{http://lilypond.org/doc/v2.12/Documentation/topdocs/NEWS.html},
601 @uref{http://lilypond.org/doc/v2.10/Documentation/topdocs/NEWS.html},
602 or @uref{../,go back} to the Documentation index.