]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/changes.tely
Implement compound time signatures
[lilypond.git] / Documentation / changes.tely
index 6adc578bf9ab8130db2cd1ab59ad612fe2ef401d..c5ddc51b6314bbe6fbe47f10cc4efe5fc2e4579d 100644 (file)
@@ -2,6 +2,8 @@
 @setfilename lilypond-changes.info
 @settitle LilyPond Changes
 
+@include macros.itexi
+
 @ifhtml
 @macro inputfileref{DIR,NAME}
 @uref{../../\DIR\/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
@@ -41,8 +43,7 @@ This document is also available in @uref{changes.pdf,PDF}. It is part of
 the @uref{lilypond/manuals.html,LilyPond Documentation}.
 @end ifhtml
 
-
-
+@allowcodebreaks false
 
 @itemize @bullet
 
@@ -50,6 +51,8 @@ the @uref{lilypond/manuals.html,LilyPond Documentation}.
 
 HINTS
 
+* add new items at the top
+
 * only show verbatim input for syntax/input changes
 
 * try to be as brief possible in those cases
@@ -64,12 +67,243 @@ which scares away people.
 @end ignore
 
 @item
-The Unicode Bidirectional Algorithm is now fully supported due to
-enhanced integration with Pango.
+Compound time signatures are now supported by the @code{\compoundMeter} command,
+which can be used instead of @code{\time}:
+@lilypond
+\relative c'' {
+  \compoundMeter #'(3 1 8)
+  c8 c c c
+  \compoundMeter #'((2 8) (5 8))
+  c8 c c c c c c
+  \compoundMeter #'((1 2 3 8) (1 4) (3 8))
+  c8 c c c c c c4 c8 c c
+}
+@end lilypond
+
+@item
+Lyrics above a staff must have their @code{staff-affinity} set to
+@code{DOWN} or must have their @code{alignAboveContext} property
+set in order to be properly aligned.  For more information, see
+@ruser{Placing lyrics vertically}.
+
+@item
+@code{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 @code{stringTunings} is set to a Scheme constant value.
+
+New commands @code{makeStringTuning} and @code{contextStringTuning}
+allow the creation of string tunings in the form of a Lilypond
+chord construct.
+
+@item
+By using @code{\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.
+@lilypond
+vI = \relative c'' { \clef "treble" \repeat unfold 40 g4 }
+\addQuote vIQuote { \vI }
+
+Solo = \relative c {
+  \clef "bass"
+  \cueDuringWithClef #"vIQuote" #DOWN #"treble" { R1 } |
+  c4 \cueDuringWithClef #"vIQuote" #DOWN #"treble" {
+    r4 r2 |
+    r4
+  } c4 c2 |
+  \cueDuringWithClef #"vIQuote" #DOWN "soprano" { R1*2 \break R1 } |
+  c1
+}
+
+\score {
+  <<
+    \new Staff \new Voice \Solo
+  >>
+}
+@end lilypond
+
+
+@item
+Note names can be selected with a new
+@code{@bs{}language "italiano"} command, which
+can be used in safe mode.  The old
+@code{@bs{}include "italiano.ly"} syntax is
+still supported for now, but will be deprecated
+in the future.
+
+@item
+autobeaming is now disabled by @code{\cadenzaOn} and enabled by
+@code{\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.
+
+@item
+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.
+
+@item
+The part-combiner's decision to combine/not combine notes can now be customized
+@lilypond[quote,relative=2]
+\partcombine
+\relative c' { c2 \partcombineApart c | \partcombineChordsOnce e' e }
+\relative c' { c2 \partcombineApart c | c c }
+@end lilypond
+
+@item
+Tablature staves show fret numbers only by default. To get the
+former style, @code{\tabFullNotation} is provided.
+
+@item
+Funk-style and Walker-style shape notes have been added.
+
+@item
+Rests will no longer keep a staff alive if @code{\RemoveEmptyStaffContext}
+is used.
+
+@item
+New option @code{-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.
+
+@item
+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.
+
+@item
+The SVG backend has optional support for
+@uref{http://www.w3.org/Submission/WOFF, WOFF fonts}.  Using the Scheme
+option @code{-d svg-woff} together with the SVG backend selection
+@code{-d backend=svg}, produces SVG output with CSS WOFF font selection.
+
+@item
+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:
+@uref{http://lilypond.org/doc/v2.12/Documentation/user/lilypond/The-Feta-font.html#Clef-glyphs,
+old version},
+@uref{http://lilypond.org/doc/v2.13/Documentation/notation/the-feta-font.html#Clef-glyphs,
+new version}.
+
+
+@item
+Text crescendo spanners can now be added directly using @code{\cresc},
+@code{\dim} and @code{\decresc}.
+@lilypond[quote,relative=2]
+c4\cresc c c c\f |
+c4\dim c c c\!
+@end lilypond
+
+
+@item
+The documented syntax of @samp{lilypond} environments in the @LaTeX{}
+mode of @command{lilypond-book} has been changed to conform with
+standard @LaTeX{} syntax: options now come after the environment name:
+@example
+\begin@{lilypond@}[@var{options}] @dots{}
+@end example
+
+The previous syntax with options after @samp{\begin} is still accepted
+by @command{lilypond-book} but deprecated.  Something like
+@example
+sed -i '/begin\[/s/begin\(\[[^]]*]\)\(@{lilypond@}\)/begin\2\1/'
+@end example
+
+might do the trick for conversion.
+
+@item
+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.
+
+@item
+A variant of the Segno sign is provided:
+@lilypond[quote,relative=2]
+c4 d e f \bar "S"
+g4 f e d
+@end lilypond
+
+@item
+Context modifications (@code{\with} blocks) can be stored in variables and
+inserted into contexts or other @code{\with} blocks:
+@lilypond[quote,verbatim]
+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
+    }
+  }
+}
+@end lilypond
+
+@item
+A half-open articulation was added:
+@lilypond[quote,relative=2]
+c4\halfopen
+@end lilypond
+This is sometimes used to indicate half-open hi-hats.
+
+@item
+The Unicode Bidirectional Algorithm is now fully supported for
+single-line markup due to enhanced integration with Pango.
 
 @item
 LilyPond is now licensed under the GNU GPL v3+.
 
+@item
+In tablature, frets can be indicated with labels other than numbers:
+
+@lilypond[verbatim,quote,relative=1]
+\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
+}
+@end lilypond
+
+@item
+Layout objects can be printed over a white background, which whites-out objects
+in lower layers which lie beneath:
+
+@lilypond[verbatim,quote,relative=1]
+\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
+@end lilypond
+
 @item
 Chords can be repeated using the @code{q} shortcut:
 
@@ -78,7 +312,19 @@ Chords can be repeated using the @code{q} shortcut:
 @end lilypond
 
 @item
-Paper margin defaults, as specified in @file{ly/@/paper@/-defaults@/-init@/.ly}, apply
+With two-sided mode, margins for odd and even pages can be set using
+@code{inner-margin} and @code{outer-margin}:
+
+@example
+\paper @{
+  two-sided = ##t
+  inner-margin = 10 \mm
+  outer-margin = 20 \mm
+@}
+@end example
+
+@item
+Paper margin defaults, as specified in @file{ly/paper@/-defaults-init.ly}, apply
 to the default paper size (a4) and are automatically scaled according to the
 paper size chosen.
 
@@ -225,6 +471,18 @@ and to add notes to the number or fraction:
 FretBoards now have a chordChanges property to keep repeated FretBoard objects
 from being typeset.
 
+@item
+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 @code{staff-affinity} is defined.
+Some page formatting variables (@code{page-top-space},
+@code{between-system-space -padding}, and
+@code{before- between- after-title-space}) have been replaced
+by flexible vertical dimensions.
+
 @end itemize