@finalout
@node Top
-@top New features in 2.11 since 2.10
+@top New features in 2.12 since 2.10
@ifhtml
-This document is also available in @uref{NEWS.pdf,PDF}. It's part of
-the @uref{../,LilyPond Documentation} .
+This document is also available in @uref{NEWS.pdf,PDF}. It is part of
+the @uref{../,LilyPond Documentation}.
@end ifhtml
@end ignore
+@item
+Unbeamed 128th notes are now supported:
+@lilypond[quote]
+\relative c'' {
+ g128
+}
+@end lilypond
+
+@item
+Extending LilyPond's existing support for microtones, there are
+now arrowed accidentals for the notation of microtonal alterations.
+To use them, redefine the @code{glyph-name-alist} property of
+@code{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
+@code{ly/makam.ly} for boilerplate code).
+
+@lilypond[quote]
+microAccs = #'((0 . "accidentals.natural")
+ (-1/2 . "accidentals.flat")
+ (1/2 . "accidentals.sharp")
+
+ (1 . "accidentals.doublesharp")
+ (-1 . "accidentals.flatflat")
+
+ (3/4 . "accidentals.sharp.arrowup")
+ (1/4 . "accidentals.sharp.arrowdown")
+ (-1/4 . "accidentals.flat.arrowup")
+ (-3/4 . "accidentals.flat.arrowdown"))
+
+\relative c'' {
+ #(set-accidental-style 'modern)
+ \override Accidental #'glyph-name-alist = #microAccs
+ geseh geh aih aisih
+}
+@end lilypond
+
+@item
+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:
+@lilypond[quote]
+\relative c'' {
+ \override Stem #'flag = #modern-straight-flag
+ c,16 \acciaccatura {c'8} d4 d32
+ \bar":"
+ \override Stem #'flag = #old-straight-flag
+ c,16 \acciaccatura {c'8} d4 d32
+}
+@end lilypond
+
+@item
+@code{\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 @code{\paper} settings in different parts.
+
+@example
+\bookpart @{
+ \header @{
+ title = "Book title"
+ subtitle = "First part"
+ @}
+ \score @{ @dots{} @}
+ @dots{}
+@}
+\bookpart @{
+ \header @{
+ subtitle = "Second part"
+ @}
+ \score @{ @dots{} @}
+ @dots{}
+@}
+@end example
+
+@item
+Nested contexts of the same type are now allowed.
+This deprecates @code{InnerStaffGroup} and @code{InnerChoirStaff}.
+@lilypond[quote,relative=1]
+\new StaffGroup <<
+ \new Staff { c1 }
+ \new StaffGroup <<
+ \new Staff { c1 }
+ \new Staff { c1 }
+ >>
+>>
+@end lilypond
+
+@item
+Percent repeat counters can be shown at regular intervals using the
+context property @code{repeatCountVisibility}.
+@lilypond[quote,relative=1]
+{
+ \set countPercentRepeats = ##t
+ \set repeatCountVisibility = #(every-nth-repeat-count-visible 2)
+ \repeat percent 6 { c4 d e f }
+}
+@end lilypond
+
@item
In addition to the already existing @code{showLastLength} property,
@code{showFirstLength} can now be set as well, rendering only the first
measures of a piece. Both properties may be set at the same time:
-@lilypond[]
+@lilypond[quote]
showFirstLength = R1*2
showLastLength = R1*3
\relative c' { c1 d e f g a b c }
@item
Two variations on the default double repeat bar line are now available.
-@lilypond[]
+@lilypond[quote]
{
\set Score.doubleRepeatType = #":|.:"
\repeat volta 2 {
Four automatic accidentals rules have been added: @code{neo-modern},
@code{neo-modern-cautionary}, @code{dodecaphonic} and @code{teaching}.
The following example illustrates @code{neo-modern} rule.
-@lilypond[]
+@lilypond[quote]
notes = {
<<
\relative c' {
@item
Flags can now be generated with Scheme-code using the @code{'flag}
@code{Stem} grob property. Existing scores will work without change.
-@lilypond[]
+@lilypond[quote]
testnotes = {
\autoBeamOff
c'8 d'16 c''8 d''16
(yext (if is-up (cons (* log -0.8) 0) (cons 0 (* log 0.8))))
(flag-stencil (make-filled-box-stencil '(-0.4 . 0.4) yext))
(stroke-style (ly:grob-property stem-grob 'stroke-style))
- (stroke-stencil (if (equal? stroke-style "grace") (make-line-stencil 0.2 -0.9 -0.4 0.9 -0.4) empty-stencil)))
+ (stroke-stencil (if (equal? stroke-style "grace")
+ (make-line-stencil 0.2 -0.9 -0.4 0.9 -0.4)
+ empty-stencil)))
(ly:stencil-add flag-stencil stroke-stencil)))
{
@item
Harp pedalling diagrams were added:
-@lilypond[]
+@lilypond[quote]
\markup { \harp-pedal #"^v-|vv-o^" }
@end lilypond
@item
Predefined, user-configurable, transposable fret diagrams
are now available in the @code{FretBoards} context:
-@lilypond[]
+@lilypond[quote]
\include "predefined-guitar-fretboards.ly"
<<
\new ChordNames {
\hcenter -> \center-align
printallheaders -> print-all-headers
\bigger -> \larger (already existing command)
+systemSeparatorMarkup -> system-separator-markup
@end example
@noindent
included, while such files as @code{makam-init.ly} or @code{gregorian-init.ly}
have been renamed to @code{makam.ly} or @code{gregorian.ly}.
+@item
+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.
+
@item
Metronome marks can now also contain a textual description. The
duration and count (if given) are shown in parentheses after the text.
-@lilypond[]
+@lilypond[quote]
{
\tempo "Fast"
c'4 c' c' c'
In figured bass you can now also use a backslash through a number to
indicate a raised 6th step.
-@lilypond[]
+@lilypond[quote]
\new FiguredBass \figuremode { < 6\\ 5\\ > < 6/ > }
@end lilypond
@item
Arpeggios may now use ``parenthesis'' style brackets:
-@lilypond[relative=1]
+@lilypond[quote,relative=1]
\override Arpeggio #'stencil = #ly:arpeggio::brew-chord-slur
% Note: does not work for cross-staff arpeggios.
crescendos and other text spanners. The old syntax for setting
text on line spanners is no longer valid.
-@lilypond[]
+@lilypond[quote]
\relative c'' {
- \override Glissando #'bound-details #'right #'text = \markup { \center-align \bold down }
- \override Glissando #'bound-details #'right #'Y = #-4
- \override Glissando #'bound-details #'right #'padding = #0.0
- \override Glissando #'bound-details #'left #'arrow = ##t
- \override Glissando #'bound-details #'left #'padding = #3.0
+ \override Glissando #'(bound-details right text) = \markup { \center-align \bold down }
+ \override Glissando #'(bound-details right Y) = #-4
+ \override Glissando #'(bound-details right padding) = #0.0
+ \override Glissando #'(bound-details left arrow) = ##t
+ \override Glissando #'(bound-details left padding) = #3.0
\override Glissando #'style = #'trill
\override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods
\override Glissando #'minimum-length = #12
Notes or rests, such as a typical end note, that fill an entire
measure are preceded by some more space.
-@lilypond[]
-\relative c' {
- \time 4/4
- s1
- c2. c4
- \time 3/4
- c2.
-}
+@lilypond[quote,relative=1]
+\time 4/4
+s1
+c2. c4
+\time 3/4
+c2.
@end lilypond
@item
fractions. This allows some forms of microtonal music. For example,
Turkish makam music uses 1/9th tone alterations.
-@lilypondfile{makam-example.ly}
+@lilypondfile[quote]{makam-example.ly}
@item
Tie directions may be set with @code{^~} and @code{_~}.
@item
Tablature now supports harmonics and slides:
-@lilypond[relative=1]
+@lilypond[quote,relative=1]
\new TabVoice {
<c g'\harmonic>4 d\2\glissando e2\2
}
Horizontal spacing now follows object outlines more accurately.
This allows tighter horizontal spacing.
-@lilypond[]
+@lilypond[quote]
{
\stemUp
c''4... ceses'! s16
Objects that belong outside of the staff are now positioned
automatically to avoid collisions.
-@lilypond[relative=1]
+@lilypond[quote,relative=1]
c''4
\once \override TextScript #'self-alignment-X = #CENTER
a,4^"this doesn't collide with the c"
Staves are spaced vertically using a skyline algorithm. This helps
prevent uneven vertical spacing.
-@lilypond[ragged-right]
+@lilypond[quote,ragged-right]
%% todo: fix 'landscape PDF.
#(set-default-paper-size "a6")