+ mus = \relative { c'4 cih d dih }
+
+ <<
+ \new Staff << \clef "G_8" \mus >>
+ \new TabStaff \mus
+ >>
+ image of music
+
+ *Chord notation improvements*
+
+ • ‘\chordmode’ can now use ‘< >’ and ‘<< >>’ constructs.
+
+ • It is now possible to override the ‘text’ property of chord names.
+
+ <<
+ \new ChordNames \chordmode {
+ a' b c:7
+ \once \override ChordName.text = #"foo"
+ d
+ }
+ >>
+ image of music
+
+New for input and output
+------------------------
+
+*Input structure improvements*
+
+ • Blocks introduced with ‘\header’ can be stored in variables and
+ used as arguments to music and scheme functions and as the body of
+ ‘#{...#}’ constructs. They are represented as a Guile module.
+
+ While ‘\book’, ‘\bookpart’, ‘\score’, ‘\with’, ‘\layout’, ‘\midi’,
+ ‘\paper’ blocks can be passed around in similar manner, they are
+ represented by different data types.
+
+ *Titles and header improvements*
+
+ • Page numbers may now be printed in roman numerals, by setting the
+ ‘page-number-type’ paper variable.
+
+ *Input file improvements*
+
+ • A new command ‘\tagGroup’ has now been added. This complements the
+ existing ‘\keepWithTag’ and ‘\removeWithTag’ commands. For
+ Example:
+
+ \tagGroup #'(violinI violinII viola cello)
+
+ declares a list of ‘tags’ that belong to a single ‘tag group’.
+
+ \keepWithTag #'violinI
+
+ Is now only concerned with ‘tags’ from ‘violinI’’s tag group.
+
+ Any element of the included music tagged with one or more tags from
+ the group, but _not_ with VIOLINI, will be removed.
+
+ *Output improvements*
+
+ • LilyPond source files may now be embedded inside the generated PDF
+ files. This experimental feature is disabled by default and may be
+ regarded as unsafe, as PDF documents with hidden content tend to
+ present a security risk. Please note that not all PDF viewers have
+ the ability to handle embedded documents (if not, the PDF output
+ will appear normally and source files will remain invisible). This
+ feature only works with the PDF backend.
+
+ • The ‘output-classic-framework’ procedure and the ‘-dclip-systems’
+ are now available with the ‘SVG’ backend.
+
+ • An argument, ‘-dcrop’, has been added, formatting ‘SVG’ and ‘PDF’
+ output without margins or page-breaks.
+
+ • A new ‘output-attributes’ grob property is now used for svg output
+ instead of the ‘id’ grob property. It allows multiple attributes
+ to be defined as an association list. For example, ‘#'((id . 123)
+ (class . foo) (data-whatever . “bar”))’ will produce the following
+ group tag in an SVG file: ‘<g id=“123” class=“foo”
+ data-whatever=“bar”> ... </g>’.
+
+ • The PostScript functionality of stroke adjustment is no longer
+ applied automatically but left to the discretion of the PostScript
+ device (by default, Ghostscript uses it for resolutions up to
+ 150dpi when generating raster images). When it is enabled, a more
+ complex drawing algorithm designed to benefit from stroke
+ adjustment is employed mostly for stems and bar lines.
+
+ Stroke adjustment can be forced by specifying the command line
+ option ‘-dstrokeadjust’ to LilyPond. When generating ‘PDF’ files,
+ this will usually result in markedly better looking ‘PDF’ previews
+ but significantly larger file size. Print quality at high
+ resolutions will be unaffected.
+
+ • Added a new ‘make-path-stencil’ function that supports all ‘path’
+ commands both relative and absolute:
+
+ ‘lineto’, ‘rlineto’, ‘curveto’, ‘rcurveto’, ‘moveto’, ‘rmoveto’,
+ ‘closepath’. The function also supports ‘single-letter’ syntax
+ used in standard SVG path commands:
+
+ ‘L’, ‘l’, ‘C’, ‘c’, ‘M’, ‘m’, ‘Z’ and ‘z’. The new command is also
+ backward-compatible with the original ‘make-connected-path-stencil’
+ function. Also see ‘scm/stencil.scm’.
+
+ *MIDI improvements*
+
+ • The most common articulations are now reflected in MIDI output.
+ Accent and marcato make notes louder; staccato, staccatissimo and
+ portato make them shorter. Breath marks shorten the previous note.
+
+ This behavior is customizable through the ‘midiLength’ and
+ ‘midiExtraVelocity’ properties on ‘ArticulationEvent’. See
+ ‘script-init.ly’ for examples.
+
+ • Improved MIDI output for breathe marks. After tied notes, breaths
+ take time _only_ from the last note of the tie; e.g. ‘{ c4~ c8
+ \breathe }’ performs as ‘{ c4~ c16 r }’ instead of ‘{ c4 r8 }’.
+ This is more consistent with articulations and how humans interpret
+ breaths after ties. It now also makes it easier to align
+ simultaneous breathe marks over multiple parts, all with different
+ note lengths.
+
+ • There is now support for controlling the ‘expression level’ of MIDI
+ channels using the ‘Staff.midiExpression’ context property. This
+ can be used to alter the perceived volume of even sustained notes
+ (albeit in a very ‘low-level’ way) and accepts a number value
+ between ‘0.0’ and ‘1.0’.
+
+ \score {
+ \new Staff \with {
+ midiExpression = #0.6
+ midiInstrument = #"clarinet"