]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/changes.tely
MIDI: always set note volume when initialized. Fixes #1636.
[lilypond.git] / Documentation / changes.tely
index 9002f977b4f03133098acf6a5741a86f4122f715..552a0e7edcc8639393c5f46662a253b404b9c1b1 100644 (file)
@@ -38,11 +38,6 @@ See user manual, \NAME\
 @node Top
 @top New features in 2.13 since 2.12
 
-@ifhtml
-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
@@ -66,16 +61,250 @@ which scares away people.
 
 @end ignore
 
+@item
+The Articulate script by Peter Chubb, which is GPLv3 licensed, is now
+a part of the distribution.  It allows easy generation of improved
+MIDI files that perform non-legato by default, legato slurs, staccato,
+tempo markings, trills, etc.
+
+@example
+\include "articulate.ly"
+\articulate <<
+      all the rest of the score...
+>>
+@end example
+
+@item
+Single beat repeats for sixteenth or shorter notes and beat repeats for
+measures containing notes of varying durations are now supported.
+
+@lilypond[fragment,relative=2]
+\repeat percent 2 { c16 d }
+\repeat percent 2 { c32 e }
+\repeat percent 2 { c64 f }
+\repeat percent 2 { c128 g' }
+@end lilypond
+
+
+@item
+Lilypond now engraves woodwind fingering charts.
+
+@lilypond
+\relative c' {
+  \textLengthOn
+  des1^\markup {
+    \woodwind-diagram #'bassoon #'((lh . (thumb-cis))
+                                   (cc . (one two three five six))
+                                   (rh . (f)))
+    } _"bassoon"
+  c1^\markup {
+    \woodwind-diagram #'oboe #'((rh . (c))
+                                (lh . ())
+                                (cc . (one two three four five six)))
+    } _"oboe"
+
+}
+@end lilypond
+
+@item
+MIDI output has been improved
+@itemize @bullet
+@item voices are kept separated, which makes the MIDI file much more useful for postprocessing
+@item optimal channel distribution: identical instruments share the same channel.  This means that e.g. for a full orchestral score there are always 16 (15 plus percussion) diffently sounding instruments available, unrestricted by the number of staves or voices.
+@item @code{\set Score.midiChannelMapping = #'staff} assigns one MIDI channel per staff, previously the default behavior.  This setting is required if you want instrument changes to create MIDI program changes on a single MIDI channel.
+@item dynamics are now rendered as note velocities, no longer as midi volume.  This improves the sound on [high end] midi renderers.
+@end itemize
+
+@item
+MIDI-import through Midi2ly is improved
+@itemize @bullet
+@item Midi2ly now also works on Windows systems
+@item MIDI-files with more than 32 tracks are now handled
+@item notes on certain simultaneous voices no longer ignored
+@item notes overrunning a bar line are no longer truncated
+@item initial key signature and time signature are respected
+@item a problem with octaves in subsequent tracks/voices is fixed
+@item initial support for multiple voices notated on one staff
+@item the instrumentName is set from track data
+@item new --skip option, rests are displayed by default
+@item rests overrunning a bar line are not truncated
+@item new --include-header option for setting titles
+@item new --preview option for big MIDI-files
+@end itemize
+The first feature was sponsored by Valentin Villenave,
+the other features were sponsored by Image-Line Software for FL Studio.
+
+@item
+A new @code{Completion_rest_engraver} is available for automatically
+converting long rests which overrun bar lines, matching the
+@code{Completion_heads_engraver} for notes
+@example
+\layout @{
+  \context @{
+    \Voice
+    \remove "Note_heads_engraver"
+    \consists "Completion_heads_engraver"
+    \remove "Rest_engraver"
+    \consists "Completion_rest_engraver"
+  @}
+@}
+@end example
+This feature was sponsored by Image-Line Software for FL Studio.
+
+@item
+Dots can be added to the table of contents items using:
+@example
+\paper @{
+  tocItemMarkup = \tocItemWithDotsMarkup
+@}
+@end example
+
+@item
+New markup commands @code{\pattern} and @code{\fill-with-pattern} are available.
+@lilypond
+\markup \column {
+  \pattern #3 #Y #0.3 \flat
+  \null
+  \pattern #7 #X #2 \flat
+  \override #'(line-width . 40) \fill-with-pattern #1 #CENTER . left right
+}
+@end lilypond
+
+@item
+A minimal composer toolkit of modal transformations is provided.
+A motif may be @notation{transposed}, @notation{inverted} and/or
+converted to its @notation{retrograde} within any scale.
+
+@lilypond
+pentatonicScale = \relative a' { a c d f g }
+motif = \relative c'' { d8 c f,4 <a f'> <a f'> }
+
+\new Staff <<
+  {
+    \partial 4
+    \pentatonicScale
+    \motif
+    \modalTranspose c a, \pentatonicScale \motif
+    \modalInversion d'' a' \pentatonicScale \motif
+    \retrograde \motif
+  }
+  {
+    \partial 4
+    s4^"pentatonic scale"
+    s1
+    s1^"motif"
+    s1^"transposition"
+    s1^"inversion"
+    s1^"retrograde"
+  }
+>>
+@end lilypond
+
+@item
+Added minimal support for black mensural notation.
+
+@item
+Enhanced support for obliqua shapes within white mensural ligatures.
+
+@lilypond
+\context MensuralStaff
+{
+  \clef "petrucci-c3"
+  \[
+    \override NoteHead #'style = #'semipetrucci
+    c'\maxima
+    \override NoteHead #'style = #'blackpetrucci
+    a\breve
+    \revert NoteHead #'style
+    \override NoteHead #'ligature-flexa = ##t
+    \override NoteHead #'flexa-width = #3
+    g
+    g'
+    \override NoteHead #'flexa-width = #5
+    c'
+    d'
+    \revert NoteHead #'style
+    c'\longa
+  \]
+}
+@end lilypond
 
 @item
-A new @code{\language} command makes it easier to select
-note names languages: instead of the usual
-@code{\include "italiano.ly"} syntax (which is still
-supported and recommended), it is possible to just type
-@code{\language "italiano"}.
+New markup functions @code{\with-link} and @code{\page-link} that add
+hyperlinks to a given label or a given page number. This works in the PDF
+backend only. All entries to the table of contents now automatically add
+hyperlinks to the pages they are referring to.
+
+@item
+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
-auotbeaming is now disabled by @code{\cadenzaOn} and enabled by
+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.
@@ -87,6 +316,7 @@ 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 }
@@ -170,7 +400,7 @@ 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:
+A variant of the Segno sign is provided:
 @lilypond[quote,relative=2]
 c4 d e f \bar "S"
 g4 f e d
@@ -215,7 +445,12 @@ In tablature, frets can be indicated with labels other than numbers:
 @lilypond[verbatim,quote,relative=1]
 \new TabStaff
 \with {
-  stringTunings = #'(17 14 9 5 2 -3)
+  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 {
@@ -261,7 +496,7 @@ With two-sided mode, margins for odd and even pages can be set using
 @end example
 
 @item
-Paper margin defaults, as specified in @file{ly/@/paper@/-defaults@/-init@/.ly}, apply
+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.
 
@@ -411,6 +646,14 @@ 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