]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/topdocs/NEWS.tely
Merge commit 'origin' into beamlets2
[lilypond.git] / Documentation / topdocs / NEWS.tely
index 6493146e749916167a81144d79090dbef5d8caba..ae2e4f409ba3395708b41b0f5e9df86807b23151 100644 (file)
@@ -32,15 +32,12 @@ See user manual, \NAME\
 
 @finalout
 
-@ifnottex
 @node Top
-@top
-@end ifnottex
-@unnumbered New features in 2.11 since 2.10
+@top New features in 2.11 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
 
 
@@ -65,35 +62,306 @@ which scares away people.
 
 @end ignore
 
+@item
+Unbeamed 128th notes are now supported:
+@lilypond
+\relative c'' {
+  g128
+}
+@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
+\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[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[relative=1]
+{
+  \set countPercentRepeats = ##t
+  \set repeatCountVisibility = #(every-nth-repeat-count-visible 2)
+  \repeat percent 8 { 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[]
+showFirstLength = R1*2
+showLastLength = R1*3
+\relative c' { c1 d e f g a b c }
+@end lilypond
+
+@item
+The file extension for MIDI can be set using the command-line
+program default @code{midi-extension}.  For Windows, the default
+extension has been changed to @code{.mid}.
+
+@item
+Two variations on the default double repeat bar line are now available.
+@lilypond[]
+{
+  \set Score.doubleRepeatType = #":|.:"
+  \repeat volta 2 {
+    c'1
+  }
+  \repeat volta 2 {
+    c'1
+  } 
+  \bar ":|.|:"
+  c'1
+}
+@end lilypond
+
+@item
+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[]
+notes = {
+  <<
+    \relative c' {
+      cis'8 fis, d'4 <a cis>8 f bis4 |
+      cis2. <c, fis>4 |
+    }
+    \\
+    \relative c' {
+      ais'2 cis, |
+      fis8 b a4 cis2 |
+    }
+  >>
+}
+
+\new Staff {
+  #(set-accidental-style 'neo-modern)
+  \notes
+}
+@end lilypond
+
+@item
+Flags can now be generated with Scheme-code using the @code{'flag}
+@code{Stem} grob property.  Existing scores will work without change.
+@lilypond[]
+testnotes = {
+  \autoBeamOff
+  c'8 d'16 c''8 d''16
+}
+
+#(define (inverted-flag stem-grob)
+  (let* ((dir (if (eqv? (ly:grob-property stem-grob 'direction) UP) "d" "u"))
+         (flag (retrieve-glyph-flag "" dir "" stem-grob))
+         (line-thickness (ly:staff-symbol-line-thickness stem-grob))
+         (stem-thickness (ly:grob-property stem-grob 'thickness))
+         (stem-width (* line-thickness stem-thickness))
+         (stroke-style (ly:grob-property stem-grob 'stroke-style))
+         (stencil (if (null? stroke-style) flag
+                         (add-stroke-glyph flag stem-grob dir stroke-style "")))
+                         (rotated-flag (ly:stencil-rotate-absolute stencil 180 0 0)))
+    (ly:stencil-translate rotated-flag (cons (- (/ stem-width 2))  0))))
+
+#(define-public (weight-flag stem-grob)
+  (let* ((log (- (ly:grob-property stem-grob 'duration-log) 2))
+         (is-up (eqv? (ly:grob-property stem-grob 'direction) UP))
+         (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)))
+    (ly:stencil-add flag-stencil stroke-stencil)))
+
+{
+  \time 3/8
+  \override Stem #'flag = #weight-flag
+  \testnotes
+
+  \override Stem #'flag = #inverted-flag
+  \testnotes
+}
+@end lilypond
+
+@item
+Harp pedalling diagrams were added:
+
+@lilypond[]
+\markup { \harp-pedal #"^v-|vv-o^" }
+@end lilypond
+
+@item
+Predefined, user-configurable, transposable fret diagrams
+are now available in the @code{FretBoards} context:
+@lilypond[]
+\include "predefined-guitar-fretboards.ly"
+<<
+  \new ChordNames {
+    \chordmode {
+      c1
+      \transpose c e { c }
+    }
+  }
+  \new FretBoards {
+    \chordmode {
+      c1
+      \transpose c e { c }
+    }
+  }
+>>
+@end lilypond
+
+@item
+The following syntax changes were made, in chronological order. In
+addition, fret diagram properties have been moved to
+@code{fret-diagram-details}, and the @code{#'style} property is
+used to select solid/dashed lines instead of @code{#'dash-fraction}.
+
+@example
+'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
+@end example
+
+@noindent
+Moreover, some files in the @code{ly/} directory have been renamed;
+the *-init.ly filenames are now only used for files that are automatically
+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[]
+{
+  \tempo "Fast"
+  c'4 c' c' c'
+  c'4 c' c' c'
+  \tempo "Andante" 4 = 120
+  c'4 c' c' c'
+  c'4 c' c' c'
+  \tempo 4 = 100
+  c'4 c' c' c'
+  c'4 c' c' c'
+  \tempo "" 4 = 30
+  c'4 c' c' c'
+  c'4 c' c' c'
+}
+@end lilypond
+
+@item
+In figured bass you can now also use a backslash through a number to
+indicate a raised 6th step.
+
+@lilypond[]
+\new FiguredBass \figuremode { < 6\\ 5\\ > < 6/ > }
+@end lilypond
+
 @item
 Arpeggios may now use ``parenthesis'' style brackets:
 
-@lilypond[relative,ragged-right]
-  \override Arpeggio #'stencil = #ly:arpeggio::brew-chord-slur
+@lilypond[relative=1]
+\override Arpeggio #'stencil = #ly:arpeggio::brew-chord-slur
 
-  % Note: does not work for cross staff arpeggios.
-  \override Arpeggio #'X-extent = #ly:grob::stencil-width
-  <c g' c>2\arpeggio ~ c
+% Note: does not work for cross-staff arpeggios.
+\override Arpeggio #'X-extent = #ly:grob::stencil-width
+<c g' c>2\arpeggio ~ c
 @end lilypond
 
+@item
+Single-system scores are now naturally spaced instead of being
+stretched to fill the line width.  This can be changed by setting
+@code{ragged-right = ##f}.
+
 @item
 Enclosing text within boxes with rounded corners is now possible,
-using the @code{rounded-box} command.
+using the @code{\rounded-box} markup command.
 
 @item
 @command{lilypond-book} can run any program instead of @command{latex}
 to guess the line width, thanks to @code{--latex-program} command line
 option.
 
-@item
-@code{\setEasyHeads} has been renamed to @code{\easyHeadsOn}, and a new
-command @code{\easyHeadsOff} reverts note heads to normal heads.
-
-@item
-@code{\fatText}, @code{\emptyText} and @code{\compressMusic} have been
-renamed to @code{\textLengthOn}, @code{\textLengthOff} and
-@code{\scaleDurations}, respectively.
-
 @item
 Underlining is now possible with the @code{\underline} markup command.
 
@@ -103,7 +371,7 @@ the paper block, the number of pages that will be used.
 
 @item
 A new page breaking function, @code{ly:minimal-breaking}, is dedicated
-to books with many pages or a lot of texts.
+to books with many pages or a lot of text.
 
 @item
 A table of contents is included using @code{\markuplines \table-of-contents}.
@@ -111,18 +379,18 @@ Elements are added to it using the @code{\tocItem} command.
 
 @item
 Text spreading over several pages is entered using the
-@code{\markuplines} keyword. Builtin markup list commands, such as
+@code{\markuplines} keyword.  Builtin markup list commands, such as
 @code{\justified-lines} or @code{\wordwrap-lines} may be used, and new
 ones created using the @code{define-markup-list-command} Scheme macro.
 
 @item
 Particular points of a book may be marked with the @code{\label}
-command. Then, the page where these points are placed can be refered to
-using the @code{\page-ref} markup command.
+command.  Then, the page where these points are placed can be
+referred to using the @code{\page-ref} markup command.
 
 @item
 Page breaking and page turning commands (@code{\pageBreak},
-@code{\noPageBreak}, etc) can be used at top-level, between scores and
+@code{\noPageBreak}, etc.) can be used at top-level, between scores and
 top-level markups.
 
 @item
@@ -132,14 +400,15 @@ The following options are now changed as a @code{-d} sub-option:
 option does not exist any more.
 
 @item
-Improved testing procedure now catch changes in CPU and memory
+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 @uref{INSTALL.html#testing} for more information.
+See @uref{INSTALL.html#Testing-LilyPond} for more information.
+
 @item
-Nested properties, such as @code{details} in @code{Slur}, can be
+Nested properties, such as @code{'details} in @code{Slur}, can be
 reverted as well.  The syntax for this is
 
 @example
@@ -152,15 +421,16 @@ 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.
 
-@c  with ragged-right we can't see the gliss.
 @lilypond[]
 \relative c'' {
-  \override Glissando #'bound-details #'right #'text = \markup { \hcenter \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
   
   c1 \glissando c'
 }
@@ -168,80 +438,80 @@ text on line spanners is no longer valid.
 
 This feature was sponsored by Trevor Bača.
 
 @item
-The environment variable LILYPONDPREFIX has been renamed to
-LILYPOND_DATADIR.
+The environment variable @code{LILYPONDPREFIX} has been renamed
+@code{LILYPOND_DATADIR}.
 
 @item
 Notes or rests, such as a typical end note, that fill an entire
 measure are preceded by some more space.
 
-@lilypond[ragged-right]
-\relative c' {
-  \time 4/4
-  s1
-  c2. c4
-  \time 3/4
-  c2.
-}
+@lilypond[relative=1]
+\time 4/4
+s1
+c2. c4
+\time 3/4
+c2.
 @end lilypond
 
-@item All @code{\score}s in a lilypond-book fragment are now inserted
-into the document. Also, toplevel markups don't result in an entire
+@item
+All @code{\score}s in a lilypond-book fragment are now inserted
+into the document.  Also, toplevel markups don't result in an entire
 page.
 
-@item Alterations (such as a sharp and flat) may now be arbitrary
-fractions. This allows some forms of microtonal music.  For example,
+@item
+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.
 
-@lilypondfile{makam.ly}
-
-
+@lilypondfile{makam-example.ly}
 
-@item Tie directions may be set with @code{^~} and @code{_~}
+@item
+Tie directions may be set with @code{^~} and @code{_~}.
 
-@item Tablature now supports harmonics and slides,
+@item
+Tablature now supports harmonics and slides:
 
-@lilypond[fragment,ragged-right,relative=1]
-\new TabVoice
-{
-    <c g'\harmonic> d\2\glissando e\2
+@lilypond[relative=1]
+\new TabVoice {
+  <c g'\harmonic>4 d\2\glissando e2\2
 }
 @end lilypond
 
 This feature was sponsored by Mike Amundsen
 
-@item Horizontal spacing now follows object outlines more
-accurately. This allows tighter horizontal spacing.
+@item
+Horizontal spacing now follows object outlines more accurately.
+This allows tighter horizontal spacing.
 
-@lilypond[fragment,ragged-right]
+@lilypond[]
 {
-  \stemUp c''4...*1/2
-  ceses'!
+  \stemUp
+  c''4... ceses'! s16
 }
 @end lilypond
 
-
-@item Objects that belong outside of the staff are
-now positioned automatically to avoid collisions.
-
-@lilypond[fragment,ragged-right,relative=1]
-  c''
-  \once \override TextScript #'self-alignment-X = #CENTER
-  a,^"this doesn't collide with the c"
-  b^"this goes above the previous markup"
-  a8_"this goes below the dynamic"
-  a\f
+@item
+Objects that belong outside of the staff are now positioned
+automatically to avoid collisions.
+
+@lilypond[relative=1]
+c''4
+\once \override TextScript #'self-alignment-X = #CENTER
+a,4^"this doesn't collide with the c"
+b4^"this goes above the previous markup"
+a8_"this goes below the dynamic"
+a8\f
 @end lilypond
 
-@item Staves are spaced vertically using a skyline algorithm. This helps to avoid
-uneven vertical spacing.
+@item
+Staves are spaced vertically using a skyline algorithm.  This helps
+prevent uneven vertical spacing.
 
 @lilypond[ragged-right]
 
 %% todo: fix 'landscape PDF.
-#(set-default-paper-size "a6" )
+#(set-default-paper-size "a6")
 \header {
   tagline = ##f
 }
@@ -249,40 +519,15 @@ uneven vertical spacing.
 \book {
   \score {
     {
-      a,,1 | a'4 b' c'' d'' \break
-      \repeat unfold 2 {a' b' c'' d''} | b''''1
+      a,,1
+      a'4 b' c'' d'' \break
+      \repeat unfold 2 { a'4 b' c'' d''}
+      b''''1
     }
   }
 }
 @end lilypond
 
-@item Metronome marks can now also contain a textual description.  The
-duration and count (if given) are shown in parentheses after the text.
-
-@lilypond
-{
-  \tempo "Fast"
-  c'4 c' c' c'
-  c'4 c' c' c'
-  \tempo "Andante" 4=120
-  c'4 c' c' c'
-  c'4 c' c' c'
-  \tempo 4=100
-  c'4 c' c' c'
-  c'4 c' c' c'
-  \tempo "" 4=30
-  c'4 c' c' c'
-  c'4 c' c' c'
-}
-@end lilypond
-
-@item In figured bass you can now also use a backslash through a number to 
-indicate a raised 6th step.
-
-@lilypond[ragged-right]
-\new FiguredBass \figuremode { < 6\\ 5\\ > < 6/ > }
-@end lilypond
-
 @end itemize