-New features in 2.12 since 2.10
+New features in 2.14 since 2.12
*******************************
- * Fret diagrams can now have variable string thickness:
+ * Lilypond now helps beams avoid collisions with other grobs! This
+ feature works completely with manual beams. It also works for all
+ automatic beams that do not end right before a change in staff.
+ For this special case, please use manual beams.
- [image of music]
+ * The Articulate script by Peter Chubb, which is GPLv3 licensed, is
+ now a part of the distribution. It allows easy generation of
+ improved MIDI files that perform non-legato by default, legato
+ slurs, staccato, tempo markings, trills, etc.
+ \include "articulate.ly"
+ \articulate <<
+ all the rest of the score...
+ >>
- * A new fret diagram orientation, opposing-landscape, is available:
+ * Single beat repeats for sixteenth or shorter notes and beat
+ repeats for measures containing notes of varying durations are now
+ supported.
- [image of music]
+ [image of music]
+ * Lilypond now engraves woodwind fingering charts.
- * Unbeamed 128th notes are now supported:
+ [image of music]
- [image of music]
+ * MIDI output has been improved
+ * the option `\set Score.midiChannelMapping = #'voice' puts
+ each voice on its own midi MIDI channel
+ * the option `\set Score.midiChannelMapping = #'instrument'
+ puts identical instruments on the same MIDI channel. This
+ means that e.g. for a full orchestral score there are always
+ 16 (15 plus percussion) differently sounding instruments
+ available, unrestricted by the number of staves or voices.
+ (Some MIDI players will cut off notes, however, if two voices
+ play the same pitch simultaneously on the same channel.) This
+ option also stores each voice in a separate track in the MIDI
+ file.
- * Extending LilyPond's existing support for microtones, there are
- now arrowed accidentals for the notation of microtonal alterations.
- To use them, redefine the `glyph-name-alist' property of
- `Accidental' as in the following example which uses quartertones
- to typeset arrowed accidentals. Alternatively, it is possible to
- define separate names for all notes with arrowed accidentals (see
- `ly/makam.ly' for boilerplate code).
+ * the default, `\set Score.midiChannelMapping = #'staff',
+ assigns one MIDI channel per staff. This setting allows
+ instrument changes (implemented as MIDI program changes) to
+ re-use single MIDI channel.
- [image of music]
+ * dynamics are now rendered as note velocities, no longer as
+ midi volume. This improves the sound on [high end] midi
+ renderers.
+ * MIDI-import through Midi2ly is improved
+ * Midi2ly now also works on Windows systems
- * Straight flags (used in old scores of e.g. Bach, but also in
- different form in modern scores of e.g. Stockhausen) are now
- implemented:
+ * MIDI-files with more than 32 tracks are now handled
- [image of music]
+ * notes on certain simultaneous voices no longer ignored
+
+ * notes overrunning a bar line are no longer truncated
+
+ * initial key signature and time signature are respected
+
+ * a problem with octaves in subsequent tracks/voices is fixed
+
+ * initial support for multiple voices notated on one staff
+
+ * the instrumentName is set from track data
+
+ * new -skip option, rests are displayed by default
+ * rests overrunning a bar line are not truncated
- * `\bookpart' blocks may be used to split a book into several parts,
- separated by a page break, in order to ease the page breaking, or
- to use different `\paper' settings in different parts.
+ * new -include-header option for setting titles
- \bookpart {
- \header {
- title = "Book title"
- subtitle = "First part"
+ * new -preview option for big MIDI-files
+ The first feature was sponsored by Valentin Villenave, the other
+ features were sponsored by Image-Line Software for FL Studio.
+
+ * A new `Completion_rest_engraver' is available for automatically
+ converting long rests which overrun bar lines, matching the
+ `Completion_heads_engraver' for notes
+ \layout {
+ \context {
+ \Voice
+ \remove "Note_heads_engraver"
+ \consists "Completion_heads_engraver"
+ \remove "Rest_engraver"
+ \consists "Completion_rest_engraver"
}
- \score { ... }
- ...
}
- \bookpart {
- \header {
- subtitle = "Second part"
- }
- \score { ... }
- ...
+ This feature was sponsored by Image-Line Software for FL Studio.
+
+ * Dots can be added to the table of contents items using:
+ \paper {
+ tocItemMarkup = \tocItemWithDotsMarkup
}
- * Nested contexts of the same type are now allowed. This deprecates
- `InnerStaffGroup' and `InnerChoirStaff'.
+ * New markup commands `\pattern' and `\fill-with-pattern' are
+ available. [image of music]
- [image of music]
+ * A minimal composer toolkit of modal transformations is provided.
+ A motif may be transposed, inverted and/or converted to its
+ retrograde within any scale.
+ [image of music]
- * Percent repeat counters can be shown at regular intervals using the
- context property `repeatCountVisibility'.
+ * Added minimal support for black mensural notation.
- [image of music]
+ * Enhanced support for obliqua shapes within white mensural
+ ligatures.
+ [image of music]
- * In addition to the already existing `showLastLength' property,
- `showFirstLength' can now be set as well, rendering only the first
- measures of a piece. Both properties may be set at the same time:
+ * New markup functions `\with-link' and `\page-link' that add
+ hyperlinks to a given label or a given page number. This works in
+ the PDF backend only. All entries to the table of contents now
+ automatically add hyperlinks to the pages they are referring to.
- [image of music]
+ * Compound time signatures are now supported by the `\compoundMeter'
+ command, which can be used instead of `\time':
+ [image of music]
- * The file extension for MIDI can be set using the command-line
- program default `midi-extension'. For Windows, the default
- extension has been changed to `.mid'.
+ * Lyrics above a staff must have their `staff-affinity' set to
+ `DOWN' or must have their `alignAboveContext' property set in
+ order to be properly aligned. For more information, see *note
+ Placing lyrics vertically: (lilypond-notation)Placing lyrics
+ vertically.
- * Two variations on the default double repeat bar line are now
- available.
+ * `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
+ `stringTunings' is set to a Scheme constant value.
- [image of music]
+ New commands `makeStringTuning' and `contextStringTuning' allow
+ the creation of string tunings in the form of a Lilypond chord
+ construct.
+ * By using `\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.
- * Four automatic accidentals rules have been added: `neo-modern',
- `neo-modern-cautionary', `dodecaphonic' and `teaching'. The
- following example illustrates `neo-modern' rule.
+ [image of music]
- [image of music]
+ * Note names can be selected with a new `\language "italiano"'
+ command, which can be used in safe mode. The old `\include
+ "italiano.ly"' syntax is still supported for now, but will be
+ deprecated in the future.
+
+ * autobeaming is now disabled by `\cadenzaOn' and enabled by
+ `\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.
+ * 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.
- * Flags can now be generated with Scheme-code using the `'flag'
- `Stem' grob property. Existing scores will work without change.
+ * The part-combiner's decision to combine/not combine notes can now
+ be customized
[image of music]
- * Harp pedalling diagrams were added:
+ * Tablature staves show fret numbers only by default. To get the
+ former style, `\tabFullNotation' is provided.
- [image of music]
+ * Funk-style and Walker-style shape notes have been added.
+ * Rests will no longer keep a staff alive if
+ `\RemoveEmptyStaffContext' is used.
- * Predefined, user-configurable, transposable fret diagrams are now
- available in the `FretBoards' context:
+ * New option `-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.
- [image of music]
+ * 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.
+ * The SVG backend has optional support for WOFF fonts
+ (http://www.w3.org/Submission/WOFF). Using the Scheme option `-d
+ svg-woff' together with the SVG backend selection `-d
+ backend=svg', produces SVG output with CSS WOFF font selection.
- * The following syntax changes were made, in chronological order. In
- addition, fret diagram properties have been moved to
- `fret-diagram-details', and the `#'style' property is used to
- select solid/dashed lines instead of `#'dash-fraction'.
-
- 'break-align-symbol -> 'break-align-symbols
- scripts.caesura -> scripts.caesura.curved
- \setEasyHeads -> \easyHeadsOn
- \easyHeadsOff (new command)
- \fatText -> \textLengthOn
- \emptyText -> \textLengthOff
- \set hairpinToBarline -> \override Hairpin #'to-barline
- \compressMusic -> \scaleDurations
- \octave -> \octaveCheck
- \arpeggioUp -> \arpeggioArrowUp
- \arpeggioDown -> \arpeggioArrowDown
- \arpeggioNeutral -> \arpeggioNormal
- \setTextCresc -> \crescTextCresc
- \setTextDecresc -> \dimTextDecresc
- \setTextDecr -> \dimTextDecr
- \setTextDim -> \dimTextDim
- \setHairpinCresc -> \crescHairpin
- \setHairpinDecresc -> \dimHairpin
- \sustainUp -> \sustainOff
- \sustainDown -> \sustainOn
- \sostenutoDown -> \sostenutoOn
- \sostenutoUp -> \sostenutoOff
- 'infinite-spacing-height -> 'extra-spacing-height
- #(set-octavation oct) -> \ottava #oct
- \put-adjacent markup axis dir markup -> \put-adjacent axis dir markup markup
- \pointAndClickOn (new command)
- \pointAndClickOff (new command)
- \center-align -> \center-column
- \hcenter -> \center-align
- printallheaders -> print-all-headers
- \bigger -> \larger (already existing command)
- systemSeparatorMarkup -> system-separator-markup
-
- Moreover, some files in the `ly/' directory have been renamed; the
- *-init.ly filenames are now only used for files that are
- automatically included, while such files as `makam-init.ly' or
- `gregorian-init.ly' have been renamed to `makam.ly' or
- `gregorian.ly'.
-
- * The "tex" and "texstr" backends have been removed. Font are now
- accessed via the fontconfig library; the Pango library is used to
- display text strings.
-
- * Metronome marks can now also contain a textual description. The
- duration and count (if given) are shown in parentheses after the
- text.
+ * 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: old version
+ (http://lilypond.org/doc/v2.12/Documentation/user/lilypond/The-Feta-font.html#Clef-glyphs),
+ new version
+ (http://lilypond.org/doc/v2.14/Documentation/notation/the-feta-font.html#Clef-glyphs).
+
+ * Text crescendo spanners can now be added directly using `\cresc',
+ `\dim' and `\decresc'.
[image of music]
- * In figured bass you can now also use a backslash through a number
- to indicate a raised 6th step.
+ * The documented syntax of `lilypond' environments in the LaTeX mode
+ of `lilypond-book' has been changed to conform with standard LaTeX
+ syntax: options now come after the environment name:
+ \begin{lilypond}[OPTIONS] ...
- [image of music]
+ The previous syntax with options after `\begin' is still accepted
+ by `lilypond-book' but deprecated. Something like
+ sed -i '/begin\[/s/begin\(\[[^]]*]\)\({lilypond}\)/begin\2\1/'
+
+ might do the trick for conversion.
+ * 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.
- * Arpeggios may now use "parenthesis" style brackets:
+ * A variant of the Segno sign is provided:
[image of music]
- * Single-system scores are now naturally spaced instead of being
- stretched to fill the line width. This can be changed by setting
- `ragged-right = ##f'.
+ * Context modifications (`\with' blocks) can be stored in variables
+ and inserted into contexts or other `\with' blocks:
- * Enclosing text within boxes with rounded corners is now possible,
- using the `\rounded-box' markup command.
+ 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
+ }
+ }
+ }
+ [image of music]
- * `lilypond-book' can run any program instead of `latex' to guess
- the line width, thanks to `--latex-program' command line option.
- * Underlining is now possible with the `\underline' markup command.
+ * A half-open articulation was added:
- * It is now possible to specify, using the `page-count' variable in
- the paper block, the number of pages that will be used.
+ [image of music]
- * A new page breaking function, `ly:minimal-breaking', is dedicated
- to books with many pages or a lot of text.
- * A table of contents is included using `\markuplines
- \table-of-contents'. Elements are added to it using the
- `\tocItem' command.
+ This is sometimes used to indicate half-open hi-hats.
- * Text spreading over several pages is entered using the
- `\markuplines' keyword. Builtin markup list commands, such as
- `\justified-lines' or `\wordwrap-lines' may be used, and new ones
- created using the `define-markup-list-command' Scheme macro.
+ * The Unicode Bidirectional Algorithm is now fully supported for
+ single-line markup due to enhanced integration with Pango.
- * Particular points of a book may be marked with the `\label'
- command. Then, the page where these points are placed can be
- referred to using the `\page-ref' markup command.
+ * LilyPond is now licensed under the GNU GPL v3+.
- * Page breaking and page turning commands (`\pageBreak',
- `\noPageBreak', etc.) can be used at top-level, between scores and
- top-level markups.
+ * In tablature, frets can be indicated with labels other than
+ numbers:
- * The following options are now changed as a `-d' sub-option:
- `--backend', `--safe', `--preview' and `--no-pages' (which became
- `-dno-print-pages'). The `-b' option does not exist any more.
+ \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"))
+ <f d>4. <bes>8 <g e>4
+ }
+ [image of music]
- * Improved testing procedures now catch changes in CPU and memory
- performance, page layout, MIDI results and warnings. This helps to
- reduce the number of regression errors during development,
- resulting in more stable releases.
- See `INSTALL.html#Testing-LilyPond' for more information.
+ * Layout objects can be printed over a white background, which
+ whites-out objects in lower layers which lie beneath:
- * Nested properties, such as `'details' in `Slur', can be reverted
- as well. The syntax for this is
+ \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
+ [image of music]
- \revert Slur #'(details closeness-factor)
- * All line spanners are more flexible now in the configuration of
- their end points. This includes glissando, voice followers, text
- crescendos and other text spanners. The old syntax for setting
- text on line spanners is no longer valid.
+ * Chords can be repeated using the `q' shortcut:
- [image of music]
+ <c e g>8.-^ q16 q4-^
+ [image of music]
- This feature was sponsored by Trevor Bača.
+ * With two-sided mode, margins for odd and even pages can be set
+ using `inner-margin' and `outer-margin':
- * The environment variable `LILYPONDPREFIX' has been renamed
- `LILYPOND_DATADIR'.
+ \paper {
+ two-sided = ##t
+ inner-margin = 10 \mm
+ outer-margin = 20 \mm
+ }
- * Notes or rests, such as a typical end note, that fill an entire
- measure are preceded by some more space.
+ * Paper margin defaults, as specified in
+ `ly/paper-defaults-init.ly', apply to the default paper size (a4)
+ and are automatically scaled according to the paper size chosen.
- [image of music]
+ * All combinations of `left-margin', `right-margin' and `line-width'
+ work now. There is no more need to set `line-width' manually
+ unless you explicitly want to.
+ * Support for using an alternative music font, such as Gonville, is
+ now added.
- * All `\score's in a lilypond-book fragment are now inserted into
- the document. Also, toplevel markups don't result in an entire
- page.
+ * In addition to the existing `\hspace' markup command, a new
+ `\vspace' command has been added to provide an easy and flexible
+ way to add vertical space in markups.
- * Alterations (such as a sharp or flat) may now be arbitrary
- fractions. This allows some forms of microtonal music. For
- example, Turkish makam music uses 1/9th tone alterations.
+ * The direction of manual beams can be set with `^[' and `_['.
+
+ * A version of the breve note head has been added with two vertical
+ lines on each side.
[image of music]
- * Tie directions may be set with `^~' and `_~'.
+ * 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.
+
+ [image of music]
- * Tablature now supports harmonics and slides:
+
+ * Braces in markup can now be selected by point size using the
+ markup commands `\left-brace' and `\right-brace'.
[image of music]
- This feature was sponsored by Mike Amundsen
+ * 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:
+ #(ly:set-option 'delete-intermediate-files #f)
+
+ * Dashed and dotted slurs, phrasing slurs, and ties have been made
+ variable thickness, and partially dashed slurs are now available:
- * Horizontal spacing now follows object outlines more accurately.
- This allows tighter horizontal spacing.
+ [image of music]
+
+
+ * An eyeglasses markup was added, indicating strongly to look at the
+ conductor for instructions:
[image of music]
- * Objects that belong outside of the staff are now positioned
- automatically to avoid collisions.
+ * A snap-pizzicato (also known as Bartok-pizzicato) articulation was
+ added:
[image of music]
- * Staves are spaced vertically using a skyline algorithm. This helps
- prevent uneven vertical spacing.
+ * Tuplet number formatting functions are now available to print
+ other fractions and to add notes to the number or fraction:
[image of music]
+ * FretBoards now have a chordChanges property to keep repeated
+ FretBoard objects from being typeset.
+
+ * 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 `staff-affinity' is defined. Some
+ page formatting variables (`page-top-space', `between-system-space
+ -padding', and `before- between- after-title-space') have been
+ replaced by flexible vertical dimensions.
+
\1f