]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/topdocs/NEWS.texi
($(outdir)/%.pdf): add DVIPS_FLAGS. This will
[lilypond.git] / Documentation / topdocs / NEWS.texi
index bae8da8d130bd2b6d4cf942c4592702e169db74f..81db48e9556b219bc106bad604070bc182df0a02 100644 (file)
 @node Top, , , 
 @top
 
+@chapter New features in 2.1 since 2.0
+
+@ignore
+Unreleased:
+
+@itemize
+@end itemize
+
+Version 2.1.13
+@end ignore
+
+@itemize @bullet
+
+@item The syntax for setting properties has been simplified:
+the following table lists the differences:
+
+@example
+\property A.B = #C                \set A.B = #C
+\property A.B \unset              \unset A.B
+\property A.B \set #C = #D        \override A.B #C = #D 
+\property A.B \override #C = #D   (removed)
+\property A.B \revert #C          \revert A.B #C
+@end example
+
+Furthermore, if @code{A} is left out, the bottommost context is used
+by default.  In other words, it is no longer necessary to explicitly
+mention @code{Voice}, @code{Lyrics} or @code{ChordNames}. 
+
+Old:
+
+@example
+   \property Voice.autoBeaming = ##f
+   \property Staff.TimeSignature \set #'style = #'C
+@end example
+
+New:
+
+@example
+   \set autoBeaming = ##f
+   \override Staff.TimeSignature #'style = #'C
+@end example
+
+
+@item Tweaks  made with @code{\override} and @code{\revert} no longer
+hide tweaks at higher context levels.
+
+@item Melismata in lyrics are also properly handled  in the MIDI output.
+
+@item The lilypond-book script has been rewritten.
+It is shorter, cleaner and faster.  The special construct
+@code{mbinclude} has been removed, plain @code{@@include} or
+@code{\\input} can be used now.
+
+@ignore
+It now supports
+running convert-ly on the lilypond snippets like so:
+@example
+    lilypond-book --filter='convert-ly --from=2.0.0' my-book.tely
+@end example
+@end ignore
+
+@item The @code{LyricsVoice} context has been removed. Lyrics should only
+be constructed in @code{Lyrics}.
+
+@item The @code{Thread} context has been removed. Note heads and rests
+are now constructed at @code{Voice} level.
+
+@item  Harmonic notes can now be entered as
+
+@example
+   <c' g''\harmonic>
+@end example
+
+@item Drum notation is now supported  as a regular feature:
+percussion may be entered in @code{\drums} mode, and printed or
+performed in a @code{DrumStaff} context:
+
+@example
+  \score @{
+    \drums \new DrumStaff @{ hihat4 cowbell8 @}
+  @}
+@end example
+
+@item The automatic staff changer was internally rewritten. As a
+result, the syntax has been simplified as well:
+
+@example
+  \autochange @var{the music}
+@end example
+
+@item The ergonomic syntax of @code{\markup} now has an equivalent in
+Scheme. The @code{markup*} macro creates such objects; the following
+two markup commands are equivalent:
+@example
+ f4^#(markup* #:raise 0.2 #:bold "hi")
+ f4^\markup @{ \raise #0.2 \bold hi  @}
+@end example
+
+@item Voice names, for vocal lines, have been added. They are similar
+to instrument names.   They can be set by defining @code{vocalName}
+and @code{vocNam}.
+
+@item Safe mode has been reinstated for lilypond.
+When lilypond is invoked with @code{--safe-mode}, @TeX{} and
+PostScript file output is disallowed, and lilypond-bin is invoked with
+@code{--safe-mode}, the user's Guile expressions are evaluated in a
+safe environment and file inclusion is not allowed.
+
+Warning: this does not protect against denial-of-service attacks using
+Guile, @TeX{} or PostScript.
+
+(This feature is still experimental.)
+
+@item There is now a Scheme macro for defining markup
+commands. Special mark-up commands can be defined in user-files too.
+
+@item Many fixes for dimension scaling have been made,
+resulting in correct results for scores that mix staves in different
+sizes.
+
+@item Improved robustness when  layout properties are accidentally removed.  
+
+@item A  more cleanly constructed part combiner has been installed.
+It is more robust and less buggy. The part-combiner can be used with
+@example
+  \partcombine @var{mus1} @var{mus2}
+@end example
+
+@noindent
+See @file{input/regression/new-part-combine.ly} for an example.
+
+@item Formatting of rehearsal marks has been improved. The @code{\mark}
+command now only does automatic incrementing for marks specified as
+integer. For example, @code{\mark #1} will print an A in the default
+style.  See @file{input/regression/rehearsal-mark-letter.ly},
+@file{input/regression/rehearsal-mark-number.ly}.
+
+@item Formatting of ottava brackets has been much improved.
+
+@item Objects in the output can now be documented: the following fragment
+ boxes the note head, and adds the text ``heads or tails?'' three
+spaces below the box.
+
+@example
+       \context Voice \applyoutput #(add-balloon-text
+                                    'NoteHead "heads, or tails?"
+                                    '(0 . -3))
+
+      
+       c8
+@end example
+
+
+@item Default staff sizes are now scalable. There are two new mechanisms for
+setting staff sizes. Both are demonstrated in this fragment:
+
+@example
+  #(set-global-staff-size 15)
+  \paper @{
+    #(paper-set-staff-size (* 15 pt))
+  @}   
+@end example
+
+
+@noindent
+Both have  the same effect on the global layout  of a
+piece. Similarly, the paper size may be changed as follows
+
+@example
+  #(set-paper-size "a4")
+@end example 
+
+
+@item Warnings for bar check errors are more cleverly printed.  This
+makes @code{barCheckSynchronize} superfluous, so it is now switched
+off by default.
+
+Warning: this will cause problems in scores that use bar checks to
+shorten measures.
+
+@item The black note head was made a little rounder, which causes a less
+ frantic graphic impression.
+
+@item
+A more concise syntax for checking octaves was introduced. A note may
+be followed by @code{=}@var{quotes} which indicates what its absolute
+octave should be.  In the following example, 
+
+@example
+  \relative c'' @{ c='' b=' d,='' @}        
+@end example
+
+@noindent
+the d will generate a warning, because a d'' is
+expected, but a d' is found.
+@c @code adds ` ' very confusing.
+
+@item There is a new mechanism for putting lyrics to melodies.
+With this mechanism, @code{LyricVoice}s can be put melodies
+individually, allowing for different melismatic sections in every
+@code{LyricVoice}. See @file{input/regression/lyric-combine-new.ly}.
+
+@item Bar lines may now be dotted.
+
+
+@item The documentation now has links to a wiki, where everyone can
+add personal comments to the manual.
+
+@item Contexts may now be changed locally for an isolated music
+expression. For example,
+  
+@example
+  \new Voice \with @{
+     \consists "Pitch_squash_engraver"
+  @} @{
+    c'4
+  @}
+@end example
+
+@item The syntax for changing staffs has changed. The keyword
+@code{\change} should now be used, e.g.
+
+@example
+  \change Staff = up
+@end example 
+
+@item Features of spanner contexts, like @code{Staff}, can now be changed
+  using @code{\property}, eg.
+
+@example
+  \new Staff @{
+       \property Staff.StaffSymbol \set #'line-count = #4
+       c'4
+  @} 
+@end example
+
+@noindent
+puts a quarter note C on a staff with 4 lines.  
+
+
+@item Multi measure rests are now truly centered between the
+clefs/barlines of the staff, their position is independent of symbols
+on the other staffs.
+
+@item Collision resolution for dots in chords has been improved greatly. 
+
+@item
+Spacing following barlines was improved for widely stretched lines.
+
+@item
+Lyric hyphens and extenders now conform to standard typesetting
+practice.
+
+@item
+Lyrics are now aligned under note heads conforming to engraving
+standards. The responsible code has been rewritten, and is drastically
+simpler from the previous version. To aid this rewrite, the syntactic
+function of the extender line ( __ ) has been changed: it is now
+attached to the lyric syllable.
+
+@item
+When redefining a context, the associated identifier is also
+updated. For example, after reading the following snippet,
+@example
+ \translator @{
+        \ScoreContext
+        autoBeaming = ##f
+ @}
+@end example
+the definition of @code{ScoreContext} is updated to include the changed
+setting.
+
+
+@item
+The weight of the stafflines is now heavier at smaller staff sizes.
+The font has been modified to match this look: at smaller sizes, the
+font is heavier and the note heads are more rounded.
+
+@item Processing scores is now done while parsing the file. New
+Scheme functions give more flexibility: for example, it is now possible
+interpret a score, collecting synchronized musical events in a list, and
+manipulate that information using inline Scheme. For an example, see
+@file{input/no-notation/recording.ly}.
+
+@item Font sizes can now truly be scaled continuously: the  @code{font-size}
+is similar to the old @code{font-relative-size}, but may be set to
+fractional values; the closest design size will be scaled to achieve
+the desired size. As a side-effect, there are now no longer
+limitations in using smaller fonts (eg. grace notes) at small staff
+sizes.
+
+@item Stem tips are now also engraved with rounded corners.
+
+@item
+The placement of accidentals on chords and ledgered notes is improved.
+
+@end itemize
+
+
 @chapter New features in 2.0 since 1.8
 
 @itemize
 
 @item
-@c dotted or dashed?
-Crescendos can now be drawn dotted or stippled.
+Crescendos can now be drawn dotted or dashed.
 
 @item
 Quarter tones are now supported. They are entered by suffixing
@@ -68,7 +366,7 @@ alongside, but figured bass mode was not  changed, i.e.:
 
 @example
   \markup @{ \center <@var{..list of markups..}> @}
-  \figure @{ <@var{figures> @}
+  \figure @{ <@var{figures}> @}
 @end example
 
 As chords the more often used than simultaneous music, this change will
@@ -81,11 +379,11 @@ we see two versions of a piece of music, one for the full score, and
 one with cue notes for the instrumental part:
 
 @example
-< \tag #'part <
-  @{ c4 f2 g4 @}      % in the part, we have cue-notes  
-  \\ R1 >
+<< \tag #'part <<
+     @{ c4 f2 g4 @}      % in the part, we have cue-notes  
+     \\ R1 >>
   \tag #'score R1  % in the score: only a rest
->
+>>
 @end example
  
 The same can be applied to articulations, texts, etc.: they are
@@ -116,9 +414,9 @@ This will put the fingering for the lowest note below the chord, and the
 rest to the left.
 
 @item
-The script previously known as @file{ly2dvi} has been renamed to
-@file{lilypond}. The binary itself is now installed as
-@file{lilypond-bin}.
+The script previously known as @code{ly2dvi} has been renamed to
+@code{lilypond}. The binary itself is now installed as
+@code{lilypond-bin}.
 
 @item
 Markup text (ie. general text formatting) may now be used for lyrics too.