@setfilename NEWS.info
@settitle NEWS
-@node Top, , ,
+@ifhtml
+@macro inputfileref{DIR,NAME}
+@uref{../../../\DIR\/out-www/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
+@end macro
+@macro usermanref{NAME}
+@inforef{\NAME\,,../../user/out-www/lilypond/lilypond}@c
+@end macro
+@end ifhtml
+
+@ifnothtml
+@macro inputfileref{DIR,NAME}
+@file{\DIR\/\NAME\}@c
+@end macro
+@macro usermanref{NAME}
+See user manual, \NAME\
+@end macro
+@end ifnothtml
+
+
+@documentencoding utf-8
+@documentlanguage en
+
+@ifnottex
+@node Top
@top
+@end ifnottex
@unnumbered New features in 2.5 since 2.4
+
@itemize @bullet
+@item
+Global font styles (roman, sans, typewriter) can be defined for each
+@code{\paper} block, with
+
+@verbatim
+#(define fonts
+ (make-pango-font-tree
+ "Times New Roman" "Helvetica" "Courier"
+ (/ myStaffSize 20)))
+@end verbatim
+
+
+@item
+Newly created staves and lyric lines, can be put in any vertical order,
+by setting @code{alignBelowContext} or @code{alignAboveContext}
+properties in the newly created context. An example of the use of this
+is in @inputfileref{input/regression,alignment-order.ly}.
+
+This feature has been sponsored by Bertalan Fodor.
+
+
+@item
+Staves may be stopped and started halfway a line, e.g.
+
+@lilypond[relative=2,fragment,verbatim]
+b4 b \stopStaff b \startStaff b
+@end lilypond
+
+@noindent
+This feature has been sponsored by Hans Forbrich.
+
+@item
+Grid lines, vertical lines synchronized with notes, can be drawn across
+staves, by adding suitable engravers.
+An example is in @inputfileref{input/regression,grid-lines.ly},
+
+@lilypondfile[]{grid-lines.ly}
+
+@item
+Lines, such as glissandi or Text-spanner lines, can have arrows at the
+end, e.g.
+
+@lilypond[verbatim,fragment]
+\override Glissando #'arrow = ##t
+b''2 \glissando b'
+@end lilypond
+
+@item
+Chord names may now be rendered in Italian and French.
+
+@item
+@file{lilypond-book} now makes @file{lilypond} print line numbers
+relative to the input file for every error message.
+
+@item
+The command @code{\epsfile} allows inclusion of EPS graphics into
+markup texts.
+
+@item
+There is a music function @code{\musicDisplay}, which will display a
+music expression as indented Scheme code.
+
+@item
+Automatic beaming is now specified explicitly for each moment
+throughout a measure, which enables automatic beaming in compound
+measures, as demonstrated in the following item.
+
+@item
+A plus sign was added to the number font. This enables printing of
+compound time signatures
+
+@lilypondfile[]{compound-time.ly}
+
+@item
+A new @code{\circle} markup command allows for all kinds of circled
+texts
+
+@lilypondfile[]{circle.ly}
+
+@item
+String numbers are now printed on chords as well
+
+@lilypond[relative,relative=1,raggedright,fragment,verbatim]
+<c\1 e\2 g\3>
+@end lilypond
+
+See also @inputfileref{input/regression,string-number.ly}.
+
+This feature was sponsored by Gunther Strube.
+
+@item
+Notes with ledger lines will be kept at a distance, so they never
+disappear.
+
+@item
+Clefs that are below notes of other staves are now spaced according to
+engraving conventions.
+
+@item
+Markup texts can be appended to a @code{\score} block or toplevel
+music expression, for example,
+
+@example
+\relative @{ c' d e @}
+\markup @{ first text @}
+\markup @{ second text @}
+@end example
+@c FIXME, cannot use toplevel music examples in lilypond-book,
+@c but it works at toplevel too, as shown.
+@lilypond[quote,raggedright]
+\paper {
+ vsize = 60\mm
+ hsize = 60\mm
+ %% FIXME?
+ printpagenumber = ##f
+}
+\header {
+ tagline = ""
+}
+\book {
+ \score {
+ \relative { c' d e }
+ }
+ \markup { first text }
+ \markup { second text }
+}
+@end lilypond
+
+
+See @inputfileref{input/regression,score-text.ly}.
+
+
+@item
+@TeX{}'s @code{kpathsea} library is loaded dynamically, so installing
+LilyPond does not require installing @TeX{} anymore.
+
+@item
+Point and click editing is now supported in the PS/PDF backend as
+well.
+See
+@ifhtml
+@uref{../../user/out-www/lilypond/Point-and-click.html,Point and click}.
+@end ifhtml
+@ifnothtml
+the section Point and click in he user manual.
+@end ifnothtml
+
+@item
+White mensural ligatures now conform more closely to Renaissance
+usage.
+
+
@item
With the new @code{tieWaitForNote} property, arpeggios may be written
out using ties, for example,
Individual objects may be assigned colors, for example,
@lilypond[fragment,relative=1,verbatim,raggedright]
- \override Beam #'color = #cyan
- \override NoteHead #'color = #darkyellow
+ \override NoteHead #'color = #red
c4
@end lilypond
@item
-The PostScript backend is now used by default. This backend requires
+The PostScript backend is now used by default. This backend requires
less machinery to run, and gives more consistent results.
-Due bugs in GhostScript's PDF handling, it is recommended to upgrade
-to GhostScript 8.x.
+Ghostscript 8.x is required for PDF output. Earlier versions may hang
+while converting PostScript to PDF.
@item
Separator slashes may be inserted between systems in a score. For an
-example, see
-@file{input/regression/system-separator.ly}:
-
-@lilypondfile{system-separator.ly}
+example, see @inputfileref{input/regression,system-separator.ly}:
@item
Locations of errors in the input are now calculated more precisely.
+
+
@item
LilyPond now uses Pango and FontConfig for selecting and rendering
-internationalized text in non-@TeX{} backends. A font may be selected
-by using a FontConfig name,
+UTF-8 input in non-@TeX{} backends. A font may be selected by using a
+FontConfig name,
@example
\override TextScript #'font-name = #"Serif"
Any Type1 and TrueType font recognized by FontConfig is available in
LilyPond as well.
-@noindent
-Input strings encoded in UTF-8 are then rendered through Pango.
-
@item
Metrics of blocks of text can be retrieved from (La)@TeX{} directly,
using the @code{-f texstr} output backend. This provides exact metrics
for texts, including kerning and accents.
@item
-LilyPond now uses FreeType read the Feta font as an OpenType
-font. This is cleaner design and more robust. A recent version of
-FontForge (11122004 or newer) and Freetype is required.
+LilyPond now uses FreeType read the Feta font as an OpenType font. This
+is a cleaner design and more robust. Recent versions of FontForge (2004
+1211 or newer) and Freetype are required. As a result,
-As a result, the SVG backend is now a fully functional backend.
+@item
+the SVG backend is now a fully functional backend.
@item
A new script, @code{\espressivo} has been added, for a combination of
true or false.
@item
-Shaped note heads. This feature has been sponsored by Jonathan Walther.
+Shaped note heads. This feature has been sponsored by Jonathan Walther,
+
+@lilypond[relative=1,fragment,verbatim,raggedright]
+ \set shapeNoteStyles = ##(do re mi fa #f la ti)
+ c d e f g a b c d e f g a b c
+@end lilypond
@item
Layout for titles, page header and footer can now be entered as
@noindent
This will set stem directions and put the cue notes in the @code{cue}
-@code{Voice}
+@code{Voice}.
@item Stemlets, short stems over beamed rests, have been added.
-@end itemize
-
-
-@unnumbered New features in 2.4 since 2.2
-
-@itemize @bullet
-
-@item Parts that use @code{\quote} can now be transposed.
-
-@item LilyPond does not try to produce output for files that
-have a parse error.
-
-@item @code{lilypond-book} will now remove any output files that
-contain failed music snippets.
-
-@item The mode changing commands (@code{\chords}, @code{\lyrics}, etc.)
-have been renamed to @code{\chordmode}, @code{\lyricmode}, etc. The
-command @code{\chords} is an abbreviation for
-
-@example
- \new ChordNames \chordmode ...
-@end example
-
-@noindent
-@code{\drums}, @code{\lyrics}, @code{\chords}, @code{\figures}
-function similarly.
-
-@item The types of events quoted with @code{\quote} can now be tuned
-with @code{quotedEventTypes}. By default, only notes and rests end up
-in quotes.
-
-@item LilyPond will try to keep
-staves at the same distances across a page, but it will stretch
-distances to prevent collisions. This results in a more even
-appearance of the page.
-
-@item Key signature cancellations are now printed before the bar line,
-and their appearance has been improved.
-
-@item Different voices that all use @code{\quote} can now refer to
-each other.
-
-
-@item The automatic staff changer, which is invoked with
-@code{\autochange}, now creates the @code{up} and @code{down} staff
-automatically, and uses bass clef for the bottom staff.
-
-@item There is now support for putting two slurs on chords, both above
-and below. This is switched on with the @code{doubleSlurs} property.
-
-@item Running trills now have their own spanner and event,
-
-@example
- c1\startTrillSpan c4\stopTrillSpan
-@end example
-
-@item There is a new markup command @code{\postscript} that takes a
-string that is dumped as verbatim PostScript in the output.
-
-@item The melody for a @code{\lyricsto} text can be changed during a
-melody by setting the @code{associatedVoice} property.
-
-@item The @code{\lyricsto} keyword now automatically switches on
-lyrics mode.
-
-@item The LilyPond binary now supports output options
-@code{--dvi} @code{--png} @code{--ps} @code{--pdf} and
-@code{--preview}. The old wrapper script for La@TeX{} has been
-renamed to @code{lilypond-latex}.
-
-@item Support for ambitus has been rewritten. The Ambitus object is now
-a grouping object, composed of @code{AmbitusLine},
-@code{AmbitusAccidental} and @code{AmbitusNoteHead}. These objects may
-be tuned similar to accidentals and note heads.
-
-@item Ledger lines are now shortened when the spacing is tight. This
-prevents ledger lines from colliding with each other.
-
-@item Slur formatting has been rewritten. The new slur code
-works similar to the Beam formatter: scores are assigned for all
-esthetic components of a slur. A large number of combinations for
-begin and end points is then tried out. Slurs will now also take into
-account collisions with staff lines, scripts (like staccato and
-accent) and accidentals.
-
-
-@item In the LilyPond emacs mode, entering @code{|} will display the
- current beat within the measure.
-
-@item Colliding notes are now correctly aligned relative to notes in other staves.
-
-@item An experimental GNOME output backend is available for developers.
-It depends on several unreleased packages such as gnome-guile TLA and
-Pango CVS. The output interface coverage is sparse, but it already
-does support point-and-click on the GNOME Canvas. See also
-@file{scm/output-gnome.scm}.
-
-@item Context definitions are now stored in identifiers that match the
-context name, in other words, to modify a @code{Staff} context, the
-following code may be used.
-
-@example
-\context @{
- \Staff
- ..
-@}
-@end example
-
-@item
-The @code{\paper} block has been renamed to @code{\layout}. A new
-@code{\paper} block has been introduced to hold settings for paper
-size and output scaling. Further options include @code{raggedbottom}
-(if set, systems are not vertically filled to reach the bottom of the
-page), and @code{raggedlastbottom}.
-
-
-@item Support for fret diagrams has been contributed by Carl
-D. Sorensen. @file{input/test/fret-diagram.ly} contains an example.
-
-@item The @code{--safe-mode} has been revisited: GUILE evaluation
-is done in the R5RS safe module, with only the basic @code{ly:}
-interface available and malicious @TeX{} code is stopped. However, to
-be reasonably safe, you are advised to use the PostScript backend
-rather than the @TeX{} backend anyway; and if possible use an UML
-sandbox to run gs or latex.
-
-@item Music syntax can now be extended seamlessly. As an example,
-here is the new implementation @code{\applymusic},
-
-@example
- applymusic = #(ly:make-music-function
- (list procedure? ly:music?) ; signature
- (lambda (where func music) ; the function
- (func music)))
-@end example
-
-@item @code{\apply} has been renamed to @code{\applymusic}.
-
-@item Music can be used as a markup.
-When inserting a @code{score} block as part of a @code{\markup}, it
-produces a rendered markup of the music. An example is in
-@file{input/test/markup-score.ly}.
-
-@item LilyPond expressions can be embedded into Scheme. The syntax for
-this is @code{#@{ ... #@}}. Within such a block, Scheme forms can be
-introduced using a @code{$} character (@code{$$} results in a single
-`$' character). These forms are then inserted in the pattern.
-
-@example
-#(define (textoffset dx dy)
- (ly:export
- #@{ \override Voice.TextScript #'extra-offset = #(cons $dx $dy) #@}))
-
-@{
- c'^"normal text"
- %% The following embedded scheme call is the same as
- %% \override Voice.TextScript #'extra-offset = #(cons 2 -3)
- #(textoffset 2 -3)
- c'^"text with offset"
-@}
-@end example
-
-@item A music list at toplevel is interpreted as implicit @code{\score}
-a @code{\score} block at toplevel is interpreted as an implicit
-@code{\book} and @code{\notemode} mode is the default lexer mode. The
-result is that
-
-@example
-\header @{ title = "The Title" @}
-@{ a b c @}
-@end example
-
-is interpreted as
-
-@example
-\header @{ title = "The Title" @}
-\book @{
- \score @{
- \notemode @{ a b c @}
- @}
-@}
-@end example
-
-This is handled by the function defined in
-@code{toplevel-music-handler}. Similarly, @code{\score} and
-@code{\book} are handled by @code{toplevel-score-handler} and a
-@code{toplevel-book-handler}. By changing these variables, different
-results can be obtained.
-
-@item Mode changing commands,
-such as @code{\chordmode} and @code{\figuremode} must now be directly
-followed by delimiters. The following example demonstrates the new
-behavior,
-
-@verbatim
- \figuremode \context Figures { .. } % wrong
- \context Figures \figuremode { .. } % right
-@end verbatim
-
-
-@item The starting pitch for @code{relative} music is optional for music lists.
-The default value is middle C.
-
-@item Combining lyrics with music can be done with @code{\addlyrics}
-
-@example
- \relative @{
- \clef bass
- d2 d c4 bes a2 \break
- @}
- \addlyrics @{
- My first Li -- ly song,
- @}
- \addlyrics @{
- Not much can go wrong!
- @}
-@end example
-
-Syntactically, @code{\addlyrics} is an infix operator. It is a
-shortcut for a combination of @code{\new Lyrics}, @code{\lyricmode}
-and @code{\lyricsto}.
-
-@item The parser is encapsulated in a Scheme function
-@code{ly:parse-file}, so the following fragment processes two files
-
-@verbatim
-#(ly:parse-file "another.ly")
-\score { \notes { c4 }}
-@end verbatim
-
-@item The @code{font-encoding} property can now be used to select
-differently encoded fonts. The previous default setting
-@code{TeX-text} has been replaced by latin1. LilyPond requires the
-@uref{http://www.lilypond.org/download/fonts/,ec-fonts-mftraced}
-package installed to function properly.
-
-@item The encoding of a file can be switched with
-@code{\encoding}. The strings for markup texts are translated
-automatically.
-
-@item The toplevel block @code{\book} introduces page layout.
-A @code{\book} groups @code{\score} blocks into one page layout
-entity. For example, two scores are combined in one book with
-
-@example
-\book @{
- \score @{ ... @}
- \score @{ ... @}
-@}
-@end example
-
-
-@item
-Titling and page breaks are handled by LilyPond. Page breaks may be
-inserted manually with
-
-@example
- \pageBreak
-@end example
-
-@item
-Invoking @code{lilypond} runs the actual binary, which not use
-La@TeX{} for titling or page layout. If you need La@TeX{} code in
-titles, you can use the @code{lilypond-book} program. The former
-@code{lilypond} script has been retained as @code{lilypond-latex}.
-
-@item There is now less of a noticeable ``hook'' at the end of a long slur.
+@lilypond[relative=1,verbatim,fragment,raggedright]
+\override Stem #'stemlet-length = #0.75
+c8[ r8 c16 r16 c8]
+@end lilypond
-@item The meaning of the @code{|} in the input can be redefined, by
- assigning a music expression to @code{pipeSymbol}.
-
@end itemize
+@ifhtml
+For older news, go to
+@uref{http://lilypond.org/doc/v2.4/Documentation/topdocs/out-www/NEWS.html}.
+@end ifhtml
-
-@c ****************************************************************
-
-@unnumbered New features in 2.2 since 2.0
-
-@itemize @bullet
-
-@item Setting @code{raggedlast = ##t} in the @code{\paper} block
-causes the last line to be set flush-left instead of justified.
-
-@item The @code{Timing_engraver} now sets the @code{Timing} alias on
-its containing context automatically.
-
-@item The code for font selection has been rewritten. In addition to
-existing font selection properties, the property @code{font-encoding}
-has been added, which makes the switch between normal @code{text} and
-other encodings like @code{braces}, @code{music} and @code{math}.
-
-@item The pmx2ly script has been removed from the distribution.
-
-@item Pedal brackets will now run to the last bar of a piece if they are not
-explicitly ended.
-
-@item Context definitions now use the word @code{\context} instead of @code{\translator}.
-
-@item Property functions may be used as an argument to @code{set!},
-for example
-
-@example
- (set! (ly:grob-property grob 'beam) ... )
-@end example
-
-@item In anticipation of Emacs 21.4 or 22.1, the info documentation contains
-images.
-
-@item Cue notes can be quoted directly from the parts that
-contain them. This will take into account transposition of source and target
-instrument. For example,
-
-@verbatim
-\addquote clarinet \notes\relative c' {
- \transposition bes
- fis4 fis fis fis
-}
-
-\score {
- \notes \relative c'' {
- c8 d8 \quote 2 oboe es8 gis
- }
-}
-@end verbatim
-
-@item The transposition of an instrument can be specified using the
-@code{\transposition} command. An
-E-flat alto saxophone is specified as
-
-@example
- \transposition es'
-@end example
-
-@item The naming of exported Scheme functions now follows Scheme conventions.
-Changes be applied to Scheme files with
-
-@example
- convert-ly -e -n --from=2.1.24 --to=2.1.26 *.scm
-@end example
-
-
-@item Notes can be excluded from auto-beaming, by marking them with
-@code{\noBeam}
-@example
- c8 c \noBeam c c
-@end example
-
-@noindent
-will print two separate eighth notes, and two beamed notes.
-
-@item Translators and contexts have been split. The result of this
-internal cleanup is that @code{Score} no longer is the top context;
-@code{Score} is contained in the @code{Global} context. Consequently,
-it is possible to tweak @code{Score} as follows:
-
-@example
- \context Score \with @{
- @dots{}
- @}
-@end example
-
-@item The number of staff lines in Tablature notation is now
-automatically deduced from the @code{stringTunings} property.
-
-@item The program reference has been cleaned up and revised.
-
-@item The syntax for setting properties has been simplified:
-the following table lists the differences:
-
-@example
- (old) (new)
-
-\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.
-
-It now supports running convert-ly on the lilypond snippets,
-@example
- lilypond-book --filter='convert-ly --from=2.0.0' my-book.tely
-@end example
-
-@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-default-paper-size "a4")
- \paper @{
- #(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{Lyrics} lines can be put melodies
-individually, allowing for different melismatic sections in every
-@code{Lyrics}. 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{\set}, eg.
-
-@example
- \new Staff @{
- \override Staff.StaffSymbol #'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
-
-@example
- \translator @{
- \ScoreContext
- autoBeaming = ##f
- @}
-@end example
-
-@noindent
-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
-
-
-@unnumbered New features in 2.0 since 1.8
-
-@itemize
-
-@item
-Crescendos can now be drawn dotted or dashed.
-
-@item
-Quarter tones are now supported. They are entered by suffixing
-@code{ih} for a half-sharp and @code{eh} for a half-flat. Hence, the
-following is an ascending list of pitches:
-
-@example
- ceses ceseh ces ceh c cih cis cisih cisis
-@end example
-
-@item
-The following constructs have been removed from the syntax:
-
-@example
- \duration #SCHEME-DURATION
- \pitch #SCHEME-PITCH
- \outputproperty @var{func} @var{symbol} = @var{value}
-@end example
-
-For @code{\outputproperty}, the following may be substituted:
-
-@example
- \applyoutput #(outputproperty-compatibility @var{func}
- @var{symbol} @var{value})
-@end example
-
-@item
-Clefs may now be transposed arbitrarily, for example
-
-@example
- \clef "G_8"
- \clef "G_15"
- \clef "G_9"
-@end example
-
-
-@item
-The syntax for chords and simultaneous music have changed.
-Chords are entered as
-
-@example
- <@var{pitches}>
-@end example
-
-while simultaneous music is entered as
-
-@example
- <<@var{..music list..}>>
-@end example
-
-In effect, the meanings of both have been swapped relative to their 1.8
-definition. The syntax for lists in @code{\markup} has changed
-alongside, but figured bass mode was not changed, i.e.:
-
-@example
- \markup @{ \center <@var{..list of markups..}> @}
- \figure @{ <@var{figures}> @}
-@end example
-
-As chords the more often used than simultaneous music, this change will
-save keystrokes.
-
-@item
-Each music expression can now be tagged, to make different printed
-versions from the same music expression. In the following example,
-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 #'score R1 % in the score: only a rest
->>
-@end example
-
-The same can be applied to articulations, texts, etc.: they are
-made by prepending
-
-@example
- -\tag #@var{your-tags}
-@end example
-
-to an articulation, for example,
-
-@example
- c4-\tag #'with-fingerings -4 -\tag #'with-strings \6
-@end example
-
-This defines a note, which has a conditional fingering and a
-string-number indication.
-
-@item
-The settings for chord-fingering are more flexible. You can specify a
-list where fingerings may be placed, eg.
-
-@example
- \property Voice.fingeringOrientations = #'(left down)
-@end example
-
-This will put the fingering for the lowest note below the chord, and the
-rest to the left.
-
-@item
-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.
-
-@item
-Two new commands for grace notes have been added, @code{\acciaccatura}
-and @code{\appoggiatura},
-
-@example
- \appoggiatura f8 e4
- \acciaccatura g8 f4
-@end example
-
-Both reflect the traditional meanings of acciaccatura and appogiatura,
-and both insert insert a slur from the first grace note to the main
-note.
-
-@item
-Layout options for grace notes are now stored in a context property,
-and may now be set separately from musical content.
-
-@item
-The @code{\new} command will create a context with a unique
-name automatically. Hence, for multi-staff scores, it is no longer
-necessary to invent arbitrary context names. For example, a two-staff
-score may be created by
-
-@example
- \simultaneous @{
- \new Staff @{ @var{notes for 1st staff} @}
- \new Staff @{ @var{notes for 2nd staff} @}
- @}
-@end example
-
-
-
-@item
-Octave checks make octave errors easier to correct.
-The syntax is
-
-@example
- \octave @var{pitch}
-@end example
-
-This checks that @var{pitch} (without octave) yields @var{pitch} (with
-octave) in \relative mode. If not, a warning is printed, and the
-octave is corrected.
-
-@item
-All articulations must now be entered postfix. For example,
-
-@example
- c8[( d8])
-@end example
-
-@noindent
-is a pair of beamed slurred eighth notes.
-
-@item
-The definition of @code{\relative} has been simplified. Octaves are
-now always propagated in the order that music is entered. In the
-following example,
-
-@example
- PRE
- \repeat "unfold" 3 BODY \alternative @{ ALT1 ALT2 @}
- POST
-@end example
-
-@noindent
-the octave of BODY is based on PRE, the starting octave of ALT1 on
-BODY, the starting octave of ALT2 on ALT1, and the starting octave of
-POST on ALT2.
-
-The same mechanism is used for all other music expressions, except the
-chord. Backwards compatibility is retained through a special program option,
-which is set through
-
-@example
- #(ly:set-option 'old-relative)
-@end example
-
-@item
-Windows users can double click a @code{.ly} file to process and view
-it automagically through the new @code{lily-wins} frontend.
-
-@end itemize
-
-
-
-
-@unnumbered New features in 1.8 since 1.6
-
-@itemize
-
-@item
-The chord entry code has been completely rewritten. It is now
-cleaner and more flexible.
-
-@item
-A new syntax has been added for text entry. This syntax is more
-friendly than the old mechanism, and it is implemented in a more
-robust and modular way. For more information, refer to the section on
-"Text markup" in the notation manual.
-
-@item
-The integration of the input language and Scheme has been made deeper:
-you can now use LilyPond identifiers in Scheme, and use Scheme
-expressions instead of LilyPond identifiers.
-
-@item
-The internal representation of music has been cleaned up completely
-and converted to Scheme data structures. The representation may be
-exported as XML.
-
-@item
-A new uniform postfix syntax for articulation has been introduced.
-A beamed slurred pair of eighth notes can be entered as
-
-@example
- c8-[-( d8-]-)
-@end example
-
-In version 2.0, postfix syntax will be the only syntax
-available, and the dashes will become optional.
-
-This will simplify the language: all articulations can be entered as
-postfix, in any order.
-
-@item
-A new syntax has been added for chords:
-
-
-@example
- << PITCHES >>
-@end example
-
-It is not necessary to update files to this syntax, but it will be for
-using LilyPond version 2.0. In version 2.0, this syntax will be
-changed to
-
-@example
- < PITCHES >
-@end example
-
-for chords, and
-
-@example
- \simultaneous @{ .. @}
-@end example
-
-for simultaneous music.
-
-To convert your files from <PITCHES> to <<PITCHES>>, use the script
-included in @file{buildscripts/convert-new-chords.py}.
-
-This change was introduced for the following reasons
-
-@itemize @bullet
-@item
-It solves the "start score with chord" problem, where you have to
- state \context Voice explicitly when a chord was the start of a
- Staff or Score.
-@item
-With the new syntax, it is possible to distinguish between
- articulations (or fingerings) which are for a single chord note,
- and which are for the entire chord. This allows for per-note
- fingerings, and is more logical on the whole.
-@end itemize
-
-@item
-User code may now be executed during interpreting. The syntax for
-this code is
-
-@example
- \applycontext #SCHEME-FUNCTION
-@end example
-
-@item
-User code may now be executed on arbitrary grobs during interpreting.
-The syntax for this feature is
-
-@example
- \applyoutput #SCHEME-FUNCTION
-@end example
-
-@noindent
-SCHEME-FUNCTION takes a single argument, and is called for every grob
-that is created in the current context.
-
-@item
-New algorithms for chord-name formatting have been installed. They
-can be tuned and have ergonomic syntax for entering exceptions.
-
-@item
-Texts may now be put on multimeasure rests, e.g.
-
-@example
- R1*20^\markup @{ "GP" @}
-@end example
-
-@item
-Ancient notation now prints ligatures in Gregorian square neumes
-notation, roughly following the typographical style of the Liber
-hymnarius of Solesmes, published in 1983. Ligatures are still printed
-without the proper line breaking and horizontal spacing.
-
-@item
-Glissandi can now be printed using the zigzag style.
-
-@item
-LilyPond can now print clusters. The syntax is
-
-@example
- \apply #notes-to-clusters @{ NOTE NOTE .. @}
-@end example
-
-@item
-For irregular meters, beat grouping marks can be printed. The
-syntax for this is
-
-@example
- #(set-time-signature 7 8 '(3 2 2))
-@end example
-
-
-@item
-Nested horizontal brackets for music analysis can now be printed:
-
-@example
- NOTE-\startGroup
- ..
- NOTE-\stopGroup
-@end example
-
-
-@item Ottava brackets are now fully supported as a feature. The syntax
-is
-
-@example
- #(set-octavation 1)
-@end example
-
-
-@item Metronome markings are printed when a \tempo command is processed.
-
-
-
-@item Fingerings can be put on chords horizontally.
-
-
-
-@item The appearance of various glyphs has been fine-tuned.
-
-
-
-@item Different types of percent style repeats may now be nested.
-
-
-
-@item The emacs support has been extended.
-
-
-@item
-The manual has been completely revised and extended.
-
-@end itemize
-
-@unnumbered New features in 1.6 since 1.4
-
-
-@itemize @bullet
-
-@item
-Support for figured bass and tablature.
-
-@item
-Completely rewritten beam formatting: provides much better output
-now.
-
-
-@item
-Completely revised and improved music font.
-
-
-@item
-Completely rewritten MIDI import support.
-
-@item
-Completely rewritten grace note support. Practically speaking this
-means that grace notes can be slurred to normal normal notes.
-
-
-@item
-Improved accidental handling and formatting: styles for producing
-cautionaries may vary, and complex collisions between accidentals of a
-chord are handled much better.
-
-@item
-Better spacing: both globally and locally. This includes subtle
-details like optical stem spacing.
-
-@item
-More support for ancient notation: mensural ligatures, ambitus
-(pitch range) of voices, more shapes, etc.
-
-@item
-More support for piano notation: bracket pedals, directed arpeggios,
-arpeggio brackets.
-
-@item
-Easier music polyphonic music entry.
-
-@item
-More extensibility, many speedups and bugfixes
-
-@item
-The manual has been thoroughly revised.
-
-@item
-Development is now hosted at http://savannah.gnu.org, and sources
-can be downloaded through anonymous CVS.
-
-@item
-Support for windows: LilyPond is part of the cygwin distribution,
-which comes with a user-friendly installer.
-
-@end itemize
+@bye