\input texinfo @c -*- coding: utf-8; mode: texinfo; -*- @setfilename lilypond-changes.info @settitle LilyPond Changes @include macros.itexi @ifhtml @macro inputfileref{DIR,NAME} @uref{../../\DIR\/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c @end macro @macro usermanref{NAME} @inforef{\NAME\,,../user/lilypond/lilypond}@c @end macro @end ifhtml @ifnothtml @macro inputfileref{DIR,NAME} @file{\DIR\/\NAME\}@c @end macro @macro usermanref{NAME} See user manual, \NAME\ @end macro @end ifnothtml @macro textanchor{NAME} @html @end html @end macro @documentencoding utf-8 @documentlanguage en @afourpaper @finalout @node Top @top New features in 2.13 since 2.12 @ifhtml This document is also available in @uref{changes.pdf,PDF}. It is part of the @uref{lilypond/manuals.html,LilyPond Documentation}. @end ifhtml @allowcodebreaks false @itemize @bullet @ignore HINTS * add new items at the top * only show verbatim input for syntax/input changes * try to be as brief possible in those cases * don't try to provide real-world examples, they often get too big, which scares away people. * Write complete sentences. * only show user-visible changes. @end ignore @item @code{stringTunings} property values have changed from a list of semitones above middle C to a list of LilyPond pitch values. convert-ly will handle the change automatically where the value of @code{stringTunings} is set to a Scheme constant value. New commands @code{makeStringTuning} and @code{contextStringTuning} allow the creation of string tunings in the form of a Lilypond chord construct. @item By using @code{\cueDuringWithClef}, cue notes can now also have their own clef, which is correctly reset at the end of the cue notes. At the begin of each line, the standard clef is still displayed, but the cue clef is shown after the time/key signature in smaller size. @lilypond vI = \relative c'' { \clef "treble" \repeat unfold 40 g4 } \addQuote vIQuote { \vI } Solo = \relative c { \clef "bass" \cueDuringWithClef #"vIQuote" #DOWN #"treble" { R1 } | c4 \cueDuringWithClef #"vIQuote" #DOWN #"treble" { r4 r2 | r4 } c4 c2 | \cueDuringWithClef #"vIQuote" #DOWN "soprano" { R1*2 \break R1 } | c1 } \score { << \new Staff \new Voice \Solo >> } @end lilypond @item Note names can be selected with a new @code{@bs{}language "italiano"} command, which can be used in safe mode. The old @code{@bs{}include "italiano.ly"} syntax is still supported for now, but will be deprecated in the future. @item autobeaming is now disabled by @code{\cadenzaOn} and enabled by @code{\cadenzaOff}. Beaming in cadenzas should be indicated manually. Also, if a cadenza is used in a piece with autobeaming disabled, it will need to be disabled again after the cadenza. @item The user is now able to specify the name of the predefined fretboard table. This allows the use of multiple tables, with switching between them based on user input. @item The part-combiner's decision to combine/not combine notes can now be customized @lilypond[quote,relative=2] \partcombine \relative c' { c2 \partcombineApart c | \partcombineChordsOnce e' e } \relative c' { c2 \partcombineApart c | c c } @end lilypond @item Tablature staves show fret numbers only by default. To get the former style, @code{\tabFullNotation} is provided. @item Funk-style and Walker-style shape notes have been added. @item Rests will no longer keep a staff alive if @code{\RemoveEmptyStaffContext} is used. @item New option @code{-dinclude-settings=INCLUDEFILE.ly}, which causes lilypond to include the given file before the score is processed. This allows the user to change global settings without the need to change the score itself. That way, several different editions/version (e.g. different page sizes) can be generated from a file without having to modify the score for each version. @item The autobeaming settings syntax has been changed. beatLength, beatGrouping, beamSettings, and measureGrouping have all been eliminated. Autobeaming is now controlled by baseMoment, beatStructure, and beamExceptions. Default settings for each of these properties can be stored for any time signature in time-signature-settings, so that when the time signature is changed, the autobeaming will automatically change. The new syntax should be much easier and require fewer overrides. @item The SVG backend has optional support for @uref{http://www.w3.org/Submission/WOFF, WOFF fonts}. Using the Scheme option @code{-d svg-woff} together with the SVG backend selection @code{-d backend=svg}, produces SVG output with CSS WOFF font selection. @item The LilyPond G clef has been rotated 1.5 degrees clockwise for improved balance. The old and new versions can be compared by looking at the documentation: @uref{http://lilypond.org/doc/v2.12/Documentation/user/lilypond/The-Feta-font.html#Clef-glyphs, old version}, @uref{http://lilypond.org/doc/v2.13/Documentation/notation/the-feta-font.html#Clef-glyphs, new version}. @item Text crescendo spanners can now be added directly using @code{\cresc}, @code{\dim} and @code{\decresc}. @lilypond[quote,relative=2] c4\cresc c c c\f | c4\dim c c c\! @end lilypond @item The documented syntax of @samp{lilypond} environments in the @LaTeX{} mode of @command{lilypond-book} has been changed to conform with standard @LaTeX{} syntax: options now come after the environment name: @example \begin@{lilypond@}[@var{options}] @dots{} @end example The previous syntax with options after @samp{\begin} is still accepted by @command{lilypond-book} but deprecated. Something like @example sed -i '/begin\[/s/begin\(\[[^]]*]\)\(@{lilypond@}\)/begin\2\1/' @end example might do the trick for conversion. @item Aesthetics of shape note heads have been enhanced. Variable line thicknesses have been implemented. All note widths have been made consistent. Minor shape note commands that use the relative major key for scale steps have been added. @item A variant of the Segno sign is provided: @lilypond[quote,relative=2] c4 d e f \bar "S" g4 f e d @end lilypond @item Context modifications (@code{\with} blocks) can be stored in variables and inserted into contexts or other @code{\with} blocks: @lilypond[quote,verbatim] coloredheads = \with { \override NoteHead #'color = #red } noclef = \with { \remove "Clef_engraver" } \score { \new Staff { \new Voice \with { \coloredheads } \relative c' { c4 e g c } } \layout { \context { \Staff \noclef } } } @end lilypond @item A half-open articulation was added: @lilypond[quote,relative=2] c4\halfopen @end lilypond This is sometimes used to indicate half-open hi-hats. @item The Unicode Bidirectional Algorithm is now fully supported for single-line markup due to enhanced integration with Pango. @item LilyPond is now licensed under the GNU GPL v3+. @item In tablature, frets can be indicated with labels other than numbers: @lilypond[verbatim,quote,relative=1] \new TabStaff \with { stringTunings = #`(,(ly:make-pitch 1 3 NATURAL) ,(ly:make-pitch 1 1 NATURAL) ,(ly:make-pitch 0 5 NATURAL) ,(ly:make-pitch 0 3 NATURAL) ,(ly:make-pitch 0 1 NATURAL) ,(ly:make-pitch -1 5 NATURAL)) tablatureFormat = #fret-letter-tablature-format } \new TabVoice { \set fretLabels = #`(,(markup #:with-color red "a") "b" ,(markup #:italic #:smaller "c")) 4. 8 4 } @end lilypond @item Layout objects can be printed over a white background, which whites-out objects in lower layers which lie beneath: @lilypond[verbatim,quote,relative=1] \time 3/4 \override Staff.StaffSymbol #'layer = #4 \once \override Tie #'layer = #2 b'2.~ \once \override Staff.TimeSignature #'whiteout = ##t \once \override Staff.TimeSignature #'layer = #3 \time 5/4 b4 @end lilypond @item Chords can be repeated using the @code{q} shortcut: @lilypond[verbatim,quote,relative=2] 8.-^ q16 q4-^ @end lilypond @item With two-sided mode, margins for odd and even pages can be set using @code{inner-margin} and @code{outer-margin}: @example \paper @{ two-sided = ##t inner-margin = 10 \mm outer-margin = 20 \mm @} @end example @item Paper margin defaults, as specified in @file{ly/paper@/-defaults-init.ly}, apply to the default paper size (a4) and are automatically scaled according to the paper size chosen. @item All combinations of @code{left-margin}, @code{right-margin} and @code{line-width} work now. There is no more need to set @code{line-width} manually unless you explicitly want to. @item Support for using an alternative music font, such as Gonville, is now added. @item In addition to the existing @code{\hspace} markup command, a new @code{\vspace} command has been added to provide an easy and flexible way to add vertical space in markups. @item The direction of manual beams can be set with @code{^[} and @code{_[}. @item A version of the breve note head has been added with two vertical lines on each side. @lilypond[quote,relative=2] \time 4/2 \override Staff.NoteHead #'style = #'altdefault c\breve | b\breve @end lilypond @item Instrument names and vocal names now take into account the extent of system start delimiters in other staves for their positioning, resulting in improved default alignment for left-, center- and right-aligned names. @lilypond[quote,indent=18\mm] << \new StaffGroup << \new GrandStaff << \new Staff { \set Staff.instrumentName = #"Piccolo" c''1 } \new Staff { \set Staff.instrumentName = #"Flute" c''1 } >> \new Staff { \set Staff.instrumentName = #"Bassoon" \clef tenor c'1 } >> \new PianoStaff << \set PianoStaff.instrumentName = #"Piano" \context Staff = "up" { c'1 } \context Staff = "down" { \clef bass c1 } >> >> @end lilypond @item Braces in markup can now be selected by point size using the markup commands @code{\left-brace} and @code{\right-brace}. @lilypond[quote] \markup { \left-brace #35 \hspace #2 \right-brace #45 } @end lilypond @item Intermediate .ps files which are created by LilyPond during compilation are now deleted by default. To keep them, add the following line to your input files: @example #(ly:set-option 'delete-intermediate-files #f) @end example @item Dashed and dotted slurs, phrasing slurs, and ties have been made variable thickness, and partially dashed slurs are now available: @lilypond[quote,relative=2] \slurDashed c4( d e f) | \slurDotted g4( f e d) | \slurHalfDashed c4( d e f) @end lilypond @item An eyeglasses markup was added, indicating strongly to look at the conductor for instructions: @lilypond[quote,relative=2] \mark \markup { \eyeglasses } c4_\markup { \eyeglasses } @end lilypond @item A snap-pizzicato (also known as Bartok-pizzicato) articulation was added: @lilypond[quote,relative=2] c4\snappizzicato @end lilypond @item Tuplet number formatting functions are now available to print other fractions and to add notes to the number or fraction: @lilypond[quote,relative=2] \once \override TupletNumber #'text = #(tuplet-number::non-default-tuplet-denominator-text 7) \times 2/3 { c4. c4. c4. c4. } \once \override TupletNumber #'text = #(tuplet-number::non-default-tuplet-fraction-text 12 7) \times 2/3 { c4. c4. c4. c4. } \once \override TupletNumber #'text = #(tuplet-number::append-note-wrapper (tuplet-number::non-default-tuplet-fraction-text 12 7) "8") \times 2/3 { c4. c4. c4. c4. } \once \override TupletNumber #'text = #(tuplet-number::append-note-wrapper tuplet-number::calc-denominator-text "4") \times 2/3 { c8 c8 c8 c8 c8 c8 } \once \override TupletNumber #'text = #(tuplet-number::append-note-wrapper tuplet-number::calc-fraction-text "4") \times 2/3 { c8 c8 c8 c8 c8 c8 } \once \override TupletNumber #'text = #(tuplet-number::fraction-with-notes "4." "8") \times 2/3 { c4. c4. c4. c4. } \once \override TupletNumber #'text = #(tuplet-number::non-default-fraction-with-notes 12 "8" 4 "4") \times 2/3 { c4. c4. c4. c4. } @end lilypond @item FretBoards now have a chordChanges property to keep repeated FretBoard objects from being typeset. @item The vertical spacing engine has been drastically changed, making it more flexible and easier to control. The spacing between staves within a system can now change to better use the space on the page. User-defined contexts may participate in this flexible spacing, depending on how their @code{staff-affinity} is defined. Some page formatting variables (@code{page-top-space}, @code{between-system-space -padding}, and @code{before- between- after-title-space}) have been replaced by flexible vertical dimensions. @end itemize @ifhtml For older news, go to @uref{http://lilypond.org/doc/v2.12/Documentation/topdocs/NEWS.html}, @uref{http://lilypond.org/doc/v2.10/Documentation/topdocs/NEWS.html}, or @uref{../,go back} to the Documentation index. @end ifhtml @bye