LilyPond Changes: New features in 2.14 since 2.12

# New features in 2.14 since 2.12

- 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.
- 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...
  >     >>

- Single beat repeats for sixteenth or shorter notes and beat repeats for measures containing notes of varying durations are now supported.

- Lilypond now engraves woodwind fingering charts.

- 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.
  - 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.
  - 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
  - MIDI-files with more than 32 tracks are now handled
  - 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
  - new –include-header option for setting titles
  - 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"
  >       }
  >     }

  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
  >     }

- New markup commands `\pattern` and `\fill-with-pattern` are available.

- A minimal composer toolkit of modal transformations is provided. A motif may be transposed, inverted and/or converted to its retrograde within any scale.

- Added minimal support for black mensural notation.
- Enhanced support for obliqua shapes within white mensural ligatures.

- 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.
- Compound time signatures are now supported by the `\compoundMeter` command, which can be used instead of `\time`:

- 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 Placing lyrics vertically.
- `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.

  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.

- 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.
- The part-combiner’s decision to combine/not combine notes can now be customized

- Tablature staves show fret numbers only by default. To get the former style, `\tabFullNotation` is provided.
- Funk-style and Walker-style shape notes have been added.
- Rests will no longer keep a staff alive if `\RemoveEmptyStaffContext` is used.
- 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.
- 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. 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 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, new version.
- Text crescendo spanners can now be added directly using `\cresc`, `\dim` and `\decresc`.

- 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] …

  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.
- A variant of the Segno sign is provided:

- Context modifications (`\with` blocks) can be stored in variables and inserted into contexts or other `\with` blocks:

  >     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
  >         }
  >       }
  >     }

- A half-open articulation was added:

  This is sometimes used to indicate half-open hi-hats.

- The Unicode Bidirectional Algorithm is now fully supported for single-line markup due to enhanced integration with Pango.
- LilyPond is now licensed under the GNU GPL v3+.
- In tablature, frets can be indicated with labels other than numbers:

  >     \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
  >     }

- Layout objects can be printed over a white background, which whites-out objects in lower layers which lie beneath:

  >     \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

- Chords can be repeated using the `q` shortcut:

  >     <c e g>8.-^ q16 q4-^

- With two-sided mode, margins for odd and even pages can be set using `inner-margin` and `outer-margin`:

  >     \paper {
  >       two-sided = ##t
  >       inner-margin = 10 \mm
  >       outer-margin = 20 \mm
  >     }

- 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.
- 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.
- 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.
- 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.

- 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.

- Braces in markup can now be selected by point size using the markup commands `\left-brace` and `\right-brace`.

- 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:

- An eyeglasses markup was added, indicating strongly to look at the conductor for instructions:

- A snap-pizzicato (also known as Bartok-pizzicato) articulation was added:

- Tuplet number formatting functions are now available to print other fractions and to add notes to the number or fraction:

- 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.

For older news, go to http://lilypond.org/doc/v2.12/Documentation/topdocs/NEWS.html, http://lilypond.org/doc/v2.10/Documentation/topdocs/NEWS.html, or go back to the Documentation index.

Más nyelvek: español.

#### New features in 2.14 since 2.12