]> 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 7941e85c2762acbd7328ebca349e1a357c75572f..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,12 +61,285 @@ 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
+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
+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 
+can be generated from a file without having to modify the score for each
 version.
 
 @item
@@ -132,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
@@ -177,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 {
@@ -223,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.
 
@@ -370,6 +643,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