]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/topdocs/NEWS.tely
Merge branch 'master' into nested-bookparts
[lilypond.git] / Documentation / topdocs / NEWS.tely
index 6ca65b7e6085d2de8c79b02d7f115c63ebe8242c..3b4ab8ea8e40a6a99d0bf5d05cd5fc2f33ae5c68 100644 (file)
@@ -65,21 +65,171 @@ which scares away people.
 
 @end ignore
 
+@item Three automatic accidentals rules have been added: @code{neo-modern},
+@code{neo-modern-cautionary} and @code{dodecaphonic}.  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} 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))
+         (stroke-style (ly:grob-property stem-grob 'stroke-style))
+         (stencil (if (null? stroke-style) flag
+                         (add-stroke-glyph flag stem-grob dir stroke-style ""))))
+    (ly:stencil-rotate stencil 180 -1 -1)))
+
+#(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
-Enclosing text within boxes with rounded corners is now possible,
-using the @code{rounded-box} command.
+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
-@command{lilypond-book} can run any program instead of @command{latex}
-to guess the line width, thanks to @code{--latex} command line option.
+The following syntax changes were made, in chronological order. In
+addition, fret diagram properties have been moved to
+@code{fret-diagram-details}, and @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
+\center-align -> \center-column
+\hcenter -> \center-align
+@end example
+
+@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
+
+@item
+Arpeggios may now use ``parenthesis'' style brackets:
+
+@lilypond[relative,ragged-right]
+  \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
+@end lilypond
 
 @item
-@code{\setEasyHeads} has been renamed to @code{\easyHeadsOn}, and a new
-command @code{\easyHeadsOff} reverts note heads to normal heads.
+Enclosing text within boxes with rounded corners is now possible,
+using the @code{rounded-box} command.
 
 @item
-@code{\fatText} and @code{\emptyText} have been renamed to
-@code{\textLengthOn} and @code{\textLengthOff}, respectively.
+@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
 Underlining is now possible with the @code{\underline} markup command.
@@ -124,7 +274,7 @@ 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
 reverted as well.  The syntax for this is
@@ -139,15 +289,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 #'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'
 }