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 The Articulate script by Peter Chubb, which is GPLv3 licensed, is now
66 a part of the distribution. It allows easy generation of improved
67 MIDI files that perform non-legato by default, legato slurs, staccato,
68 tempo markings, trills, etc.
71 \include "articulate.ly"
73 all the rest of the score...
78 Single beat repeats for sixteenth or shorter notes and beat repeats for
79 measures containing notes of varying durations are now supported.
81 @lilypond[fragment,relative=2]
82 \repeat percent 2 { c16 d }
83 \repeat percent 2 { c32 e }
84 \repeat percent 2 { c64 f }
85 \repeat percent 2 { c128 g' }
90 Lilypond now engraves woodwind fingering charts.
96 \woodwind-diagram #'bassoon #'((lh . (thumb-cis))
97 (cc . (one two three five six))
101 \woodwind-diagram #'oboe #'((rh . (c))
103 (cc . (one two three four five six)))
110 MIDI output has been improved
112 @item voices are kept separated, which makes the MIDI file much more useful for postprocessing
113 @item optimal channel distribution: identical instruments share the same channel. This means that e.g. for a full orchestral score there are always 16 (15 plus percussion) diffently sounding instruments available, unrestricted by the number of staves or voices.
114 @item @code{\set Score.midiChannelMapping = #'staff} assigns one MIDI channel per staff, previously the default behavior. This setting is required if you want instrument changes to create MIDI program changes on a single MIDI channel.
115 @item dynamics are now rendered as note velocities, no longer as midi volume. This improves the sound on [high end] midi renderers.
119 MIDI-import through Midi2ly is improved
121 @item Midi2ly now also works on Windows systems
122 @item MIDI-files with more than 32 tracks are now handled
123 @item notes on certain simultaneous voices no longer ignored
124 @item notes overrunning a bar line are no longer truncated
125 @item initial key signature and time signature are respected
126 @item a problem with octaves in subsequent tracks/voices is fixed
127 @item initial support for multiple voices notated on one staff
128 @item the instrumentName is set from track data
129 @item new --skip option, rests are displayed by default
130 @item rests overrunning a bar line are not truncated
131 @item new --include-header option for setting titles
132 @item new --preview option for big MIDI-files
134 The first feature was sponsored by Valentin Villenave,
135 the other features were sponsored by Image-Line Software for FL Studio.
138 A new @code{Completion_rest_engraver} is available for automatically
139 converting long rests which overrun bar lines, matching the
140 @code{Completion_heads_engraver} for notes
145 \remove "Note_heads_engraver"
146 \consists "Completion_heads_engraver"
147 \remove "Rest_engraver"
148 \consists "Completion_rest_engraver"
152 This feature was sponsored by Image-Line Software for FL Studio.
155 Dots can be added to the table of contents items using:
158 tocItemMarkup = \tocItemWithDotsMarkup
163 New markup commands @code{\pattern} and @code{\fill-with-pattern} are available.
166 \pattern #3 #Y #0.3 \flat
168 \pattern #7 #X #2 \flat
169 \override #'(line-width . 40) \fill-with-pattern #1 #CENTER . left right
174 A minimal composer toolkit of modal transformations is provided.
175 A motif may be @notation{transposed}, @notation{inverted} and/or
176 converted to its @notation{retrograde} within any scale.
179 pentatonicScale = \relative a' { a c d f g }
180 motif = \relative c'' { d8 c f,4 <a f'> <a f'> }
187 \modalTranspose c a, \pentatonicScale \motif
188 \modalInversion d'' a' \pentatonicScale \motif
193 s4^"pentatonic scale"
204 Added minimal support for black mensural notation.
207 Enhanced support for obliqua shapes within white mensural ligatures.
210 \context MensuralStaff
214 \override NoteHead #'style = #'semipetrucci
216 \override NoteHead #'style = #'blackpetrucci
218 \revert NoteHead #'style
219 \override NoteHead #'ligature-flexa = ##t
220 \override NoteHead #'flexa-width = #3
223 \override NoteHead #'flexa-width = #5
226 \revert NoteHead #'style
233 New markup functions @code{\with-link} and @code{\page-link} that add
234 hyperlinks to a given label or a given page number. This works in the PDF
235 backend only. All entries to the table of contents now automatically add
236 hyperlinks to the pages they are referring to.
239 Compound time signatures are now supported by the @code{\compoundMeter} command,
240 which can be used instead of @code{\time}:
244 \compoundMeter #'(3 1 8)
246 \compoundMeter #'((2 8) (5 8))
248 \compoundMeter #'((1 2 3 8) (1 4) (3 8))
249 c8 c c c c c c4 c8 c c
254 Lyrics above a staff must have their @code{staff-affinity} set to
255 @code{DOWN} or must have their @code{alignAboveContext} property
256 set in order to be properly aligned. For more information, see
257 @ruser{Placing lyrics vertically}.
260 @code{stringTunings} property values have changed from a list of
261 semitones above middle C to a list of LilyPond pitch values.
262 convert-ly will handle the change automatically where the value
263 of @code{stringTunings} is set to a Scheme constant value.
265 New commands @code{makeStringTuning} and @code{contextStringTuning}
266 allow the creation of string tunings in the form of a Lilypond
270 By using @code{\cueDuringWithClef}, cue notes can now also have their own
271 clef, which is correctly reset at the end of the cue notes. At the begin
272 of each line, the standard clef is still displayed, but the cue clef is
273 shown after the time/key signature in smaller size.
276 vI = \relative c'' { \clef "treble" \repeat unfold 40 g4 }
277 \addQuote vIQuote { \vI }
281 \cueDuringWithClef #"vIQuote" #DOWN #"treble" { R1 } |
282 c4 \cueDuringWithClef #"vIQuote" #DOWN #"treble" {
286 \cueDuringWithClef #"vIQuote" #DOWN "soprano" { R1*2 \break R1 } |
292 \new Staff \new Voice \Solo
299 Note names can be selected with a new
300 @code{@bs{}language "italiano"} command, which
301 can be used in safe mode. The old
302 @code{@bs{}include "italiano.ly"} syntax is
303 still supported for now, but will be deprecated
307 autobeaming is now disabled by @code{\cadenzaOn} and enabled by
308 @code{\cadenzaOff}. Beaming in cadenzas should be indicated manually.
309 Also, if a cadenza is used in a piece with autobeaming disabled, it
310 will need to be disabled again after the cadenza.
313 The user is now able to specify the name of the predefined fretboard
314 table. This allows the use of multiple tables, with switching between them
318 The part-combiner's decision to combine/not combine notes can now be customized
320 @lilypond[quote,relative=2]
322 \relative c' { c2 \partcombineApart c | \partcombineChordsOnce e' e }
323 \relative c' { c2 \partcombineApart c | c c }
327 Tablature staves show fret numbers only by default. To get the
328 former style, @code{\tabFullNotation} is provided.
331 Funk-style and Walker-style shape notes have been added.
334 Rests will no longer keep a staff alive if @code{\RemoveEmptyStaffContext}
338 New option @code{-dinclude-settings=INCLUDEFILE.ly}, which causes lilypond
339 to include the given file before the score is processed. This allows the
340 user to change global settings without the need to change the score itself.
341 That way, several different editions/version (e.g. different page sizes)
342 can be generated from a file without having to modify the score for each
346 The autobeaming settings syntax has been changed. beatLength,
347 beatGrouping, beamSettings, and measureGrouping have all been eliminated.
348 Autobeaming is now controlled by baseMoment, beatStructure, and
349 beamExceptions. Default settings for each of these properties can be
350 stored for any time signature in time-signature-settings, so that
351 when the time signature is changed, the autobeaming will automatically
352 change. The new syntax should be much easier and require fewer
356 The SVG backend has optional support for
357 @uref{http://www.w3.org/Submission/WOFF, WOFF fonts}. Using the Scheme
358 option @code{-d svg-woff} together with the SVG backend selection
359 @code{-d backend=svg}, produces SVG output with CSS WOFF font selection.
362 The LilyPond G clef has been rotated 1.5 degrees clockwise for improved
363 balance. The old and new versions can be compared by looking at the
365 @uref{http://lilypond.org/doc/v2.12/Documentation/user/lilypond/The-Feta-font.html#Clef-glyphs,
367 @uref{http://lilypond.org/doc/v2.13/Documentation/notation/the-feta-font.html#Clef-glyphs,
372 Text crescendo spanners can now be added directly using @code{\cresc},
373 @code{\dim} and @code{\decresc}.
374 @lilypond[quote,relative=2]
381 The documented syntax of @samp{lilypond} environments in the @LaTeX{}
382 mode of @command{lilypond-book} has been changed to conform with
383 standard @LaTeX{} syntax: options now come after the environment name:
385 \begin@{lilypond@}[@var{options}] @dots{}
388 The previous syntax with options after @samp{\begin} is still accepted
389 by @command{lilypond-book} but deprecated. Something like
391 sed -i '/begin\[/s/begin\(\[[^]]*]\)\(@{lilypond@}\)/begin\2\1/'
394 might do the trick for conversion.
397 Aesthetics of shape note heads have been enhanced. Variable line thicknesses
398 have been implemented. All note widths have been made consistent.
399 Minor shape note commands that use the relative major key for scale steps
403 A variant of the Segno sign is provided:
404 @lilypond[quote,relative=2]
410 Context modifications (@code{\with} blocks) can be stored in variables and
411 inserted into contexts or other @code{\with} blocks:
412 @lilypond[quote,verbatim]
413 coloredheads = \with { \override NoteHead #'color = #red }
414 noclef = \with { \remove "Clef_engraver" }
417 \new Voice \with { \coloredheads } \relative c' { c4 e g c }
429 A half-open articulation was added:
430 @lilypond[quote,relative=2]
433 This is sometimes used to indicate half-open hi-hats.
436 The Unicode Bidirectional Algorithm is now fully supported for
437 single-line markup due to enhanced integration with Pango.
440 LilyPond is now licensed under the GNU GPL v3+.
443 In tablature, frets can be indicated with labels other than numbers:
445 @lilypond[verbatim,quote,relative=1]
448 stringTunings = #`(,(ly:make-pitch 1 3 NATURAL)
449 ,(ly:make-pitch 1 1 NATURAL)
450 ,(ly:make-pitch 0 5 NATURAL)
451 ,(ly:make-pitch 0 3 NATURAL)
452 ,(ly:make-pitch 0 1 NATURAL)
453 ,(ly:make-pitch -1 5 NATURAL))
454 tablatureFormat = #fret-letter-tablature-format
457 \set fretLabels = #`(,(markup #:with-color red "a")
459 ,(markup #:italic #:smaller "c"))
460 <f d>4. <bes>8 <g e>4
465 Layout objects can be printed over a white background, which whites-out objects
466 in lower layers which lie beneath:
468 @lilypond[verbatim,quote,relative=1]
470 \override Staff.StaffSymbol #'layer = #4
471 \once \override Tie #'layer = #2
473 \once \override Staff.TimeSignature #'whiteout = ##t
474 \once \override Staff.TimeSignature #'layer = #3
480 Chords can be repeated using the @code{q} shortcut:
482 @lilypond[verbatim,quote,relative=2]
487 With two-sided mode, margins for odd and even pages can be set using
488 @code{inner-margin} and @code{outer-margin}:
493 inner-margin = 10 \mm
494 outer-margin = 20 \mm
499 Paper margin defaults, as specified in @file{ly/paper@/-defaults-init.ly}, apply
500 to the default paper size (a4) and are automatically scaled according to the
504 All combinations of @code{left-margin}, @code{right-margin} and
505 @code{line-width} work now. There is no more need to set @code{line-width}
506 manually unless you explicitly want to.
509 Support for using an alternative music font, such as Gonville, is now
513 In addition to the existing @code{\hspace} markup command,
514 a new @code{\vspace} command has been added to provide an easy
515 and flexible way to add vertical space in markups.
518 The direction of manual beams can be set with @code{^[} and @code{_[}.
521 A version of the breve note head has been added with two vertical lines on each side.
522 @lilypond[quote,relative=2]
524 \override Staff.NoteHead #'style = #'altdefault
529 Instrument names and vocal names now take into account the extent of
530 system start delimiters in other staves for their positioning,
531 resulting in improved default alignment for left-, center- and
533 @lilypond[quote,indent=18\mm]
538 \set Staff.instrumentName = #"Piccolo"
542 \set Staff.instrumentName = #"Flute"
547 \set Staff.instrumentName = #"Bassoon"
553 \set PianoStaff.instrumentName = #"Piano"
554 \context Staff = "up" {
557 \context Staff = "down" {
566 Braces in markup can now be selected by point size using the markup commands
567 @code{\left-brace} and @code{\right-brace}.
577 Intermediate .ps files which are created by LilyPond
578 during compilation are now deleted by default. To keep them,
579 add the following line to your input files:
581 #(ly:set-option 'delete-intermediate-files #f)
585 Dashed and dotted slurs, phrasing slurs, and ties
586 have been made variable thickness, and
587 partially dashed slurs are now available:
588 @lilypond[quote,relative=2]
598 An eyeglasses markup was added, indicating strongly to look at the
599 conductor for instructions:
600 @lilypond[quote,relative=2]
601 \mark \markup { \eyeglasses }
602 c4_\markup { \eyeglasses }
606 A snap-pizzicato (also known as Bartok-pizzicato) articulation was added:
607 @lilypond[quote,relative=2]
612 Tuplet number formatting functions are now available to print other fractions
613 and to add notes to the number or fraction:
614 @lilypond[quote,relative=2]
615 \once \override TupletNumber #'text =
616 #(tuplet-number::non-default-tuplet-denominator-text 7)
617 \times 2/3 { c4. c4. c4. c4. }
619 \once \override TupletNumber #'text =
620 #(tuplet-number::non-default-tuplet-fraction-text 12 7)
621 \times 2/3 { c4. c4. c4. c4. }
622 \once \override TupletNumber #'text =
623 #(tuplet-number::append-note-wrapper
624 (tuplet-number::non-default-tuplet-fraction-text 12 7) "8")
625 \times 2/3 { c4. c4. c4. c4. }
627 \once \override TupletNumber #'text =
628 #(tuplet-number::append-note-wrapper tuplet-number::calc-denominator-text "4")
629 \times 2/3 { c8 c8 c8 c8 c8 c8 }
630 \once \override TupletNumber #'text =
631 #(tuplet-number::append-note-wrapper tuplet-number::calc-fraction-text "4")
632 \times 2/3 { c8 c8 c8 c8 c8 c8 }
634 \once \override TupletNumber #'text =
635 #(tuplet-number::fraction-with-notes "4." "8")
636 \times 2/3 { c4. c4. c4. c4. }
637 \once \override TupletNumber #'text =
638 #(tuplet-number::non-default-fraction-with-notes 12 "8" 4 "4")
639 \times 2/3 { c4. c4. c4. c4. }
643 FretBoards now have a chordChanges property to keep repeated FretBoard objects
647 The vertical spacing engine has been drastically changed, making
648 it more flexible and easier to control.
649 The spacing between staves within a system can now change
650 to better use the space on the page.
651 User-defined contexts may participate in this flexible spacing,
652 depending on how their @code{staff-affinity} is defined.
653 Some page formatting variables (@code{page-top-space},
654 @code{between-system-space -padding}, and
655 @code{before- between- after-title-space}) have been replaced
656 by flexible vertical dimensions.
663 For older news, go to
664 @uref{http://lilypond.org/doc/v2.12/Documentation/topdocs/NEWS.html},
665 @uref{http://lilypond.org/doc/v2.10/Documentation/topdocs/NEWS.html},
666 or @uref{../,go back} to the Documentation index.