]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/topdocs/NEWS.tely
* scm/define-grobs.scm (all-grob-descriptions): put ledger lines
[lilypond.git] / Documentation / topdocs / NEWS.tely
1 \input texinfo @c -*-texinfo-*-
2 @setfilename NEWS.info
3 @settitle NEWS
4
5 @node Top, , , 
6 @top
7 @unnumbered New features in 2.5 since 2.4
8
9 @itemize @bullet
10
11 @item
12 With the new @code{tieWaitForNote} property, arpeggios may be written
13 out using ties, for example,
14
15 @lilypond[fragment,verbatim,relative=1,raggedright]
16 \set tieWaitForNote = ##t
17 \grace { c16[~ e~ g]~ } <c, e g>4   
18 @end lilypond
19
20 Thanks to Steve Doonan for funding development of this feature.
21
22 @item
23 Individual objects may be assigned colors, for example,
24
25 @lilypond[fragment,relative=1,verbatim,raggedright] 
26         \override Beam #'color = #cyan
27         \override NoteHead #'color = #darkyellow
28         c4
29 @end lilypond 
30
31 @item
32 The PostScript backend is now used by default. This backend requires
33 less machinery to run, and gives more consistent results.
34
35 Due bugs in GhostScript's PDF handling, it is recommended to upgrade
36 to GhostScript 8.x.
37
38 @item
39 Separator slashes may be inserted between systems in a score. For an
40 example,   see
41 @file{input/regression/system-separator.ly}:
42
43 @lilypondfile{system-separator.ly}
44
45 @item
46 Locations of errors in the input are now calculated more precisely.
47
48 @item
49 LilyPond now uses Pango and FontConfig for selecting and rendering
50 internationalized text in non-@TeX{} backends. A font may be selected
51 by using a FontConfig name,
52
53 @example
54 \override TextScript #'font-name = #"Serif"
55 @end example
56
57
58 @noindent
59 or using the classic font selection mechanism
60
61 @example
62 \override TextScript #'font-family = #'roman
63 \override TextScript #'font-series = #'bold
64 @end example
65
66 Any Type1 and TrueType font recognized by FontConfig is available in
67 LilyPond as well.
68
69 @noindent
70 Input strings encoded in UTF-8 are then rendered through Pango.
71
72 @item
73 Metrics of blocks of text can be retrieved from (La)@TeX{} directly,
74 using the @code{-f texstr} output backend. This provides exact metrics
75 for texts, including kerning and accents.
76
77 @item
78 LilyPond now uses FreeType read the Feta font as an OpenType
79 font. This is cleaner design and more robust.  A recent version of
80 FontForge (11122004 or newer) and Freetype is required.
81
82 As a result, the SVG backend is now a fully functional backend.
83
84 @item
85 A new script, @code{\espressivo} has been added, for a combination of
86 crescendo and decrescendo on a single note.
87
88 @item
89 In markups, expressions stacked with @code{\column},
90 @code{\center-align}, etc, are not grouped with @code{< ... >} anymore,
91 but with @code{@{ ... @}}, eg:
92 @example
93 \markup \column @{
94   \line @{ first line @}
95   \line @{ second line @}
96 @}
97 @end example
98
99 @item
100 LilyPond will now avoid line breaks that cause long texts to stick
101 outside of the page staff.
102
103 @item
104 Grace notes following a main note, used to be entered by letting the
105 grace notes follow a skip in a parallel expression, for example,
106
107 @verbatim
108   << { d1 }
109      { s2 \grace { c16[ d] } } >>
110   c4
111 @end verbatim
112
113 @noindent
114 This can now be shortened by doing
115
116 @example
117 \afterGrace @{ d1 @} @{ c16[ d] @} 
118 @end example 
119
120 @item
121 Pagebreaks can now be forced or forbidden after title blocks. This is
122 achieved by setting @code{breakbefore} in the @code{\header} block to
123 true or false.
124
125 @item
126 Shaped note heads. This feature has been sponsored by Jonathan Walther.
127
128 @item
129 Layout for titles, page header and footer can now be entered as
130 @code{\markup} commands.
131
132 @item Positioning of slurs can now be adjusted manually
133
134 @item Grace notes are correctly quoted and formatted when using cue notes.
135
136 @item Cue notes can now be created with
137
138 @example
139 \cueDuring #@var{voice-name} #@var{direction} @{ @var{music} @}
140 @end example
141
142 @noindent
143 This will set stem directions and put the cue notes in the @code{cue}
144 @code{Voice}
145
146 @item Stemlets, short stems over beamed rests, have been added.
147
148 @end itemize
149
150
151 @unnumbered New features in 2.4 since 2.2
152
153 @itemize @bullet
154
155 @item Parts that use @code{\quote} can now be transposed.
156
157 @item LilyPond does not try to produce output for files that
158 have a parse error.
159
160 @item @code{lilypond-book} will now remove any output  files that
161 contain failed music snippets.
162
163 @item The mode changing commands  (@code{\chords}, @code{\lyrics}, etc.)
164 have been renamed to @code{\chordmode}, @code{\lyricmode}, etc. The
165 command @code{\chords} is an abbreviation for
166
167 @example
168   \new ChordNames \chordmode ... 
169 @end example
170
171 @noindent
172 @code{\drums}, @code{\lyrics}, @code{\chords}, @code{\figures}
173 function similarly.
174
175 @item The types of events quoted with @code{\quote}  can  now be tuned
176 with @code{quotedEventTypes}. By default, only notes and rests end up
177 in quotes.
178
179 @item  LilyPond will try to keep
180 staves at the same distances across a page, but it will stretch
181 distances to prevent collisions. This results in a more even
182 appearance of the page.
183
184 @item Key signature cancellations are now printed before the bar line,
185 and their appearance has been improved.
186
187 @item Different voices that all use  @code{\quote} can now refer to
188 each other.
189
190
191 @item The automatic staff changer, which is invoked with
192 @code{\autochange}, now creates the @code{up} and @code{down} staff
193 automatically, and uses bass clef for the bottom staff.
194
195 @item There is now support for putting two slurs on chords, both above
196 and below. This is switched on with the @code{doubleSlurs} property.
197
198 @item Running trills now have their own spanner and event,
199
200 @example
201   c1\startTrillSpan c4\stopTrillSpan 
202 @end example
203
204 @item There is a new markup command @code{\postscript} that takes a
205 string that is dumped as verbatim PostScript in the output.
206
207 @item The melody  for a @code{\lyricsto} text can be changed during a
208 melody by setting the @code{associatedVoice} property.
209
210 @item The @code{\lyricsto} keyword now automatically switches on
211 lyrics mode.
212
213 @item The LilyPond binary  now supports output options
214 @code{--dvi} @code{--png} @code{--ps} @code{--pdf} and
215 @code{--preview}.  The old wrapper script for La@TeX{} has been
216 renamed to @code{lilypond-latex}.
217
218 @item Support for ambitus has been rewritten. The Ambitus object is now
219 a grouping object, composed of @code{AmbitusLine},
220 @code{AmbitusAccidental} and @code{AmbitusNoteHead}. These objects may
221 be tuned similar to accidentals and note heads.
222
223 @item Ledger lines are now shortened when the spacing is tight. This
224 prevents ledger lines from colliding with each other.
225
226 @item Slur formatting has been rewritten. The new slur code
227 works similar to the Beam formatter: scores are assigned for all
228 esthetic components of a slur. A large number of combinations for
229 begin and end points is then tried out.  Slurs will now also take into
230 account collisions with staff lines, scripts (like staccato and
231 accent) and accidentals.
232
233
234 @item In the LilyPond  emacs mode, entering @code{|} will  display the
235   current beat within the measure.
236
237 @item Colliding notes are now correctly aligned relative to notes in other staves.
238
239 @item An experimental GNOME output backend is available for developers.
240 It depends on several unreleased packages such as gnome-guile TLA and
241 Pango CVS.  The output interface coverage is sparse, but it already
242 does support point-and-click on the GNOME Canvas.  See also
243 @file{scm/output-gnome.scm}.
244
245 @item Context definitions are now stored in identifiers that match the
246 context name, in other words, to modify a @code{Staff} context, the
247 following code may be used.
248
249 @example
250 \context @{
251   \Staff
252   .. 
253 @}
254 @end example
255
256 @item
257 The @code{\paper} block has been renamed to @code{\layout}.  A new
258 @code{\paper} block has been introduced to hold settings for paper
259 size and output scaling.  Further options include @code{raggedbottom}
260 (if set, systems are not vertically filled to reach the bottom of the
261 page), and @code{raggedlastbottom}.
262
263
264 @item Support for fret diagrams  has been contributed by Carl
265 D. Sorensen. @file{input/test/fret-diagram.ly} contains an example.
266  
267 @item The @code{--safe-mode} has been revisited: GUILE evaluation
268 is done in the R5RS safe module, with only the basic @code{ly:}
269 interface available and malicious @TeX{} code is stopped.  However, to
270 be reasonably safe, you are advised to use the PostScript backend
271 rather than the @TeX{} backend anyway; and if possible use an UML
272 sandbox to run gs or latex.
273
274 @item Music syntax can now be extended seamlessly. As an example,
275 here is the new implementation @code{\applymusic},
276
277 @example
278   applymusic = #(ly:make-music-function
279      (list procedure? ly:music?) ; signature
280      (lambda (where func music)  ; the function
281        (func music)))
282 @end example
283
284 @item @code{\apply} has been renamed to @code{\applymusic}.
285
286 @item Music can be used as a markup.
287 When inserting a @code{score} block as part of a @code{\markup}, it
288 produces a rendered markup of the music.  An example is in
289 @file{input/test/markup-score.ly}.
290
291 @item LilyPond expressions can be embedded into Scheme. The syntax for
292 this is @code{#@{ ... #@}}. Within such a block, Scheme forms can be
293 introduced using a @code{$} character (@code{$$} results in a single
294 `$' character).  These forms are then inserted in the pattern.
295
296 @example
297 #(define (textoffset dx dy)
298    (ly:export
299      #@{ \override Voice.TextScript #'extra-offset = #(cons $dx $dy) #@}))
300
301 @{
302   c'^"normal text"
303   %% The following embedded scheme call is the same as
304   %% \override Voice.TextScript #'extra-offset = #(cons 2 -3)
305   #(textoffset 2 -3)
306   c'^"text with offset" 
307 @}
308 @end example
309
310 @item A music list at toplevel is interpreted as implicit @code{\score}
311 a @code{\score} block at toplevel is interpreted as an implicit
312 @code{\book} and @code{\notemode} mode is the default lexer mode.  The
313 result is that
314
315 @example
316 \header @{ title = "The Title" @}
317 @{ a b c @}
318 @end example
319
320 is interpreted as
321
322 @example
323 \header @{ title = "The Title" @}
324 \book @{
325   \score @{
326     \notemode @{ a b c @}
327   @}
328 @}    
329 @end example
330
331 This is handled by the function defined in
332 @code{toplevel-music-handler}.  Similarly, @code{\score} and
333 @code{\book} are handled by @code{toplevel-score-handler} and a
334 @code{toplevel-book-handler}.  By changing these variables, different
335 results can be obtained.
336
337 @item Mode changing commands,
338 such as @code{\chordmode} and @code{\figuremode} must now be directly
339 followed by delimiters. The following example demonstrates the new
340 behavior,
341
342 @verbatim
343   \figuremode \context Figures { .. } % wrong
344   \context Figures \figuremode { .. } % right
345 @end verbatim 
346
347
348 @item The starting pitch for @code{relative} music is optional for music lists.
349 The default value is middle C.
350
351 @item Combining lyrics with music can be done with @code{\addlyrics}
352
353 @example
354     \relative @{
355         \clef bass
356         d2 d c4 bes a2 \break
357     @}
358     \addlyrics @{
359         My first Li -- ly song,
360     @}
361     \addlyrics @{
362         Not much can go wrong!
363     @}
364 @end example
365
366 Syntactically, @code{\addlyrics} is an infix operator. It is a
367 shortcut for a combination of @code{\new Lyrics}, @code{\lyricmode}
368 and @code{\lyricsto}.
369
370 @item The parser is encapsulated in a Scheme function
371 @code{ly:parse-file}, so the following fragment processes two files
372
373 @verbatim
374 #(ly:parse-file "another.ly")
375 \score { \notes { c4 }}
376 @end verbatim
377
378 @item The @code{font-encoding} property can now be used to select
379 differently encoded fonts. The previous default setting
380 @code{TeX-text} has been replaced by latin1. LilyPond requires the
381 @uref{http://www.lilypond.org/download/fonts/,ec-fonts-mftraced}
382 package installed to function properly.
383
384 @item The encoding of a file can be switched with
385 @code{\encoding}. The strings for markup texts are translated
386 automatically.
387
388 @item The toplevel block @code{\book} introduces page layout.
389 A @code{\book} groups @code{\score} blocks into one page layout
390 entity. For example, two scores are combined in one book with   
391
392 @example
393 \book @{
394      \score @{ ... @}
395      \score @{ ... @}
396 @}
397 @end example
398
399
400 @item
401 Titling and page breaks are handled by LilyPond.  Page breaks may be
402 inserted manually with
403
404 @example
405   \pageBreak
406 @end example
407
408 @item
409 Invoking @code{lilypond} runs the actual binary, which not use
410 La@TeX{} for titling or page layout.  If you need La@TeX{} code in
411 titles, you can use the @code{lilypond-book} program. The former
412 @code{lilypond} script has been retained as @code{lilypond-latex}.
413
414 @item There is now less of a noticeable ``hook'' at the end of a long slur.
415
416 @item The meaning of the @code{|} in the input can be redefined, by
417  assigning a music expression to @code{pipeSymbol}.
418  
419 @end itemize
420
421
422
423 @c ****************************************************************
424
425 @unnumbered New features in 2.2 since 2.0
426
427 @itemize @bullet
428
429 @item Setting @code{raggedlast = ##t} in the @code{\paper} block
430 causes the last line to be set flush-left instead of justified. 
431
432 @item The @code{Timing_engraver} now sets the @code{Timing} alias on
433 its containing context automatically.
434
435 @item The code for font selection has been rewritten. In addition to
436 existing font selection properties, the property @code{font-encoding}
437 has been added, which makes the switch between normal @code{text} and
438 other encodings like @code{braces}, @code{music} and @code{math}.
439
440 @item The pmx2ly script has been removed from the distribution.
441
442 @item Pedal brackets will now run to the last bar of a piece if they are not
443 explicitly ended.
444
445 @item Context definitions now use the word @code{\context} instead of @code{\translator}.
446
447 @item Property functions may be used as an argument to @code{set!},
448 for example
449
450 @example
451   (set! (ly:grob-property grob 'beam) ... )
452 @end example
453
454 @item In anticipation of Emacs 21.4 or 22.1, the info documentation contains
455 images.
456
457 @item Cue notes can be quoted directly from the parts that
458 contain them. This will take into account transposition of source and target
459 instrument. For example,
460
461 @verbatim
462 \addquote clarinet \notes\relative c' {
463   \transposition bes
464   fis4 fis fis fis
465 }
466
467 \score {
468     \notes \relative c'' {
469         c8 d8 \quote 2 oboe es8 gis  
470     }
471 }
472 @end verbatim
473
474 @item The transposition of an instrument can be specified using the
475 @code{\transposition} command.  An
476 E-flat alto saxophone is specified as 
477
478 @example
479   \transposition es'
480 @end example 
481
482 @item The naming of exported Scheme functions now follows Scheme conventions.
483 Changes be applied to Scheme files with 
484
485 @example
486         convert-ly -e -n --from=2.1.24 --to=2.1.26 *.scm 
487 @end example
488
489
490 @item Notes can  be excluded from auto-beaming, by  marking them with
491 @code{\noBeam}
492 @example
493   c8 c \noBeam c c 
494 @end example
495
496 @noindent
497 will print two separate eighth notes, and two beamed notes.
498
499 @item  Translators and contexts have been split. The result of this
500 internal cleanup is that @code{Score} no longer is the top context;
501 @code{Score} is contained in the @code{Global} context. Consequently,
502 it is possible to tweak @code{Score} as follows:
503
504 @example
505   \context Score \with @{
506     @dots{}
507   @}
508 @end example
509
510 @item The number of staff lines  in Tablature notation is now
511 automatically deduced from the @code{stringTunings} property.
512
513 @item The program reference has been cleaned up and revised.
514
515 @item The syntax for setting properties has been simplified:
516 the following table lists the differences:
517
518 @example
519       (old)                           (new)
520
521 \property A.B = #C                \set A.B = #C
522 \property A.B \unset              \unset A.B
523 \property A.B \set #C = #D        \override A.B #C = #D 
524 \property A.B \override #C = #D   (removed)
525 \property A.B \revert #C          \revert A.B #C
526 @end example
527
528 Furthermore, if @code{A} is left out, the bottommost context is used
529 by default.  In other words, it is no longer necessary to explicitly
530 mention @code{Voice}, @code{Lyrics} or @code{ChordNames}. 
531
532 Old:
533
534 @example
535    \property Voice.autoBeaming = ##f
536    \property Staff.TimeSignature \set #'style = #'C
537 @end example
538
539 New:
540
541 @example
542    \set autoBeaming = ##f
543    \override Staff.TimeSignature #'style = #'C
544 @end example
545
546
547 @item Tweaks  made with @code{\override} and @code{\revert} no longer
548 hide tweaks at higher context levels.
549
550 @item Melismata in lyrics are also properly handled  in the MIDI output.
551
552 @item The lilypond-book script has been rewritten.
553 It is shorter, cleaner and faster.  The special construct
554 @code{mbinclude} has been removed, plain @code{@@include} or
555 @code{\input} can be used now.
556
557 It now supports running convert-ly on the lilypond snippets,
558 @example
559     lilypond-book --filter='convert-ly --from=2.0.0' my-book.tely
560 @end example
561
562 @item The @code{LyricsVoice} context has been removed. Lyrics should only
563 be constructed in @code{Lyrics}.
564
565 @item The @code{Thread} context has been removed. Note heads and rests
566 are now constructed at @code{Voice} level.
567
568 @item  Harmonic notes can now be entered as
569
570 @example
571    <c' g''\harmonic>
572 @end example
573
574 @item Drum notation is now supported  as a regular feature:
575 percussion may be entered in @code{\drums} mode, and printed or
576 performed in a @code{DrumStaff} context:
577
578 @example
579   \score @{
580     \drums \new DrumStaff @{ hihat4 cowbell8 @}
581   @}
582 @end example
583
584 @item The automatic staff changer was internally rewritten. As a
585 result, the syntax has been simplified as well:
586
587 @example
588   \autochange @var{the-music}
589 @end example
590
591 @item The ergonomic syntax of @code{\markup} now has an equivalent in
592 Scheme. The @code{markup*} macro creates such objects; the following
593 two markup commands are equivalent:
594 @example
595  f4^#(markup* #:raise 0.2 #:bold "hi")
596  f4^\markup @{ \raise #0.2 \bold hi  @}
597 @end example
598
599 @item Voice names, for vocal lines, have been added. They are similar
600 to instrument names.   They can be set by defining @code{vocalName}
601 and @code{vocNam}.
602
603 @item Safe mode has been reinstated for lilypond.
604 When lilypond is invoked with @code{--safe-mode}, @TeX{} and
605 PostScript file output is disallowed, and lilypond-bin is invoked with
606 @code{--safe-mode}, the user's Guile expressions are evaluated in a
607 safe environment and file inclusion is not allowed.
608
609 Warning: this does not protect against denial-of-service attacks using
610 Guile, @TeX{} or PostScript.
611
612 (This feature is still experimental.)
613
614 @item There is now a Scheme macro for defining markup
615 commands. Special mark-up commands can be defined in user-files too.
616
617 @item Many fixes for dimension scaling have been made,
618 resulting in correct results for scores that mix staves in different
619 sizes.
620
621 @item Improved robustness when  layout properties are accidentally removed.  
622
623 @item A  more cleanly constructed part combiner has been installed.
624 It is more robust and less buggy. The part-combiner can be used with
625 @example
626   \partcombine @var{mus1} @var{mus2}
627 @end example
628
629 @noindent
630 See @file{input/regression/new-part-combine.ly} for an example.
631
632 @item Formatting of rehearsal marks has been improved. The @code{\mark}
633 command now only does automatic incrementing for marks specified as
634 integer. For example, @code{\mark #1} will print an A in the default
635 style.  See @file{input/regression/rehearsal-mark-letter.ly},
636 @file{input/regression/rehearsal-mark-number.ly}.
637
638 @item Formatting of ottava brackets has been much improved.
639
640 @item Objects in the output can now be documented: the following fragment
641  boxes the note head, and adds the text ``heads or tails?'' three
642 spaces below the box.
643
644 @example
645        \context Voice \applyoutput #(add-balloon-text
646                                      'NoteHead "heads, or tails?"
647                                      '(0 . -3))
648
649       
650        c8
651 @end example
652
653
654 @item Default staff sizes are now scalable. There are two new mechanisms for
655 setting staff sizes. Both are demonstrated in this fragment:
656
657 @example
658   #(set-global-staff-size 15)
659   \paper @{
660     #(paper-set-staff-size (* 15 pt))
661   @}   
662 @end example
663
664
665 @noindent
666 Both have the same effect on the global layout of a piece. Similarly,
667 the paper size may be changed as follows
668
669 @example
670   #(set-default-paper-size "a4")
671   \paper @{
672     #(set-paper-size "a4")
673   @}
674 @end example 
675
676
677 @item Warnings for bar check errors are more cleverly printed.  This
678 makes @code{barCheckSynchronize} superfluous, so it is now switched
679 off by default.
680
681 Warning: this will cause problems in scores that use bar checks to
682 shorten measures.
683
684 @item The black note head was made a little rounder, which causes a less
685  frantic graphic impression.
686
687 @item
688 A more concise syntax for checking octaves was introduced. A note may
689 be followed by @code{=}@var{quotes} which indicates what its absolute
690 octave should be.  In the following example, 
691
692 @example
693   \relative c'' @{ c='' b=' d,='' @}        
694 @end example
695
696 @noindent
697 the d will generate a warning, because a d'' is
698 expected, but a d' is found.
699 @c @code adds ` ', very confusing.
700
701 @item There is a new mechanism for putting lyrics to melodies.
702 With this mechanism, @code{Lyrics} lines can be put melodies
703 individually, allowing for different melismatic sections in every
704 @code{Lyrics}. See @file{input/regression/lyric-combine-new.ly}.
705
706 @item Bar lines may now be dotted.
707
708
709 @item The documentation now has links to a wiki, where everyone can
710 add personal comments to the manual.
711
712 @item Contexts may now be changed locally for an isolated music
713 expression. For example,
714   
715 @example
716   \new Voice \with @{
717      \consists "Pitch_squash_engraver"
718   @} @{
719     c'4
720   @}
721 @end example
722
723 @item The syntax for changing staffs has changed. The keyword
724 @code{\change} should now be used, e.g.
725
726 @example
727   \change Staff = up
728 @end example 
729
730 @item Features of spanner contexts, like @code{Staff}, can now be changed
731   using @code{\set}, eg.
732
733 @example
734   \new Staff @{
735        \override Staff.StaffSymbol #'line-count = #4
736        c'4
737   @} 
738 @end example
739
740 @noindent
741 puts a quarter note C on a staff with 4 lines.  
742
743
744 @item Multi measure rests are now truly centered between the
745 clefs/barlines of the staff, their position is independent of symbols
746 on the other staffs.
747
748 @item Collision resolution for dots in chords has been improved greatly. 
749
750 @item
751 Spacing following barlines was improved for widely stretched lines.
752
753 @item
754 Lyric hyphens and extenders now conform to standard typesetting
755 practice.
756
757 @item
758 Lyrics are now aligned under note heads conforming to engraving
759 standards. The responsible code has been rewritten, and is drastically
760 simpler from the previous version. To aid this rewrite, the syntactic
761 function of the extender line ( __ ) has been changed: it is now
762 attached to the lyric syllable.
763
764 @item
765 When redefining a context, the associated identifier is also
766 updated. For example, after reading 
767
768 @example
769  \translator @{
770         \ScoreContext
771         autoBeaming = ##f
772  @}
773 @end example
774
775 @noindent
776 the definition of @code{ScoreContext} is updated to include the changed
777 setting.
778
779
780 @item
781 The weight of the stafflines is now heavier at smaller staff sizes.
782 The font has been modified to match this look: at smaller sizes, the
783 font is heavier and the note heads are more rounded.
784
785 @item Processing scores is now done while parsing the file. New
786 Scheme functions give more flexibility: for example, it is now possible
787 interpret a score, collecting synchronized musical events in a list, and
788 manipulate that information using inline Scheme. For an example, see
789 @file{input/no-notation/recording.ly}.
790
791 @item Font sizes can now truly be scaled continuously: the  @code{font-size}
792 is similar to the old @code{font-relative-size}, but may be set to
793 fractional values; the closest design size will be scaled to achieve
794 the desired size. As a side-effect, there are now no longer
795 limitations in using smaller fonts (eg. grace notes) at small staff
796 sizes.
797
798 @item Stem tips are now also engraved with rounded corners.
799
800 @item
801 The placement of accidentals on chords and ledgered notes is improved.
802
803 @end itemize
804
805
806 @unnumbered New features in 2.0 since 1.8
807
808 @itemize
809
810 @item
811 Crescendos can now be drawn dotted or dashed.
812
813 @item
814 Quarter tones are now supported. They are entered by suffixing
815 @code{ih} for a half-sharp and @code{eh} for a half-flat. Hence, the
816 following is an ascending list of pitches:
817
818 @example
819   ceses ceseh ces ceh c cih cis cisih cisis
820 @end example
821
822 @item
823 The following constructs have been removed from the syntax:
824
825 @example
826   \duration #SCHEME-DURATION
827   \pitch #SCHEME-PITCH
828   \outputproperty @var{func} @var{symbol} = @var{value}
829 @end example
830
831 For @code{\outputproperty}, the following may be substituted:
832
833 @example
834    \applyoutput #(outputproperty-compatibility @var{func}
835                   @var{symbol} @var{value}) 
836 @end example 
837
838 @item
839 Clefs may now be transposed arbitrarily, for example
840
841 @example
842   \clef "G_8"
843   \clef "G_15"
844   \clef "G_9"
845 @end example
846
847
848 @item
849 The syntax for chords and simultaneous music have changed.
850 Chords are entered as
851
852 @example
853    <@var{pitches}>
854 @end example
855
856 while simultaneous music is entered as
857
858 @example
859    <<@var{..music list..}>>
860 @end example
861
862 In effect, the meanings of both have been swapped relative to their 1.8
863 definition.  The syntax for lists in @code{\markup} has changed
864 alongside, but figured bass mode was not  changed, i.e.:
865
866 @example
867   \markup @{ \center <@var{..list of markups..}> @}
868   \figure @{ <@var{figures}> @}
869 @end example
870
871 As chords the more often used than simultaneous music, this change will
872 save keystrokes.
873
874 @item
875 Each music expression can now be tagged, to make different printed
876 versions from the same music expression.  In the following example,
877 we see two versions of a piece of music, one for the full score, and
878 one with cue notes for the instrumental part:
879
880 @example
881 << \tag #'part <<
882      @{ c4 f2 g4 @}      % in the part, we have cue-notes  
883      \\ R1 >>
884   \tag #'score R1  % in the score: only a rest
885 >>
886 @end example
887  
888 The same can be applied to articulations, texts, etc.: they are
889 made by prepending
890
891 @example
892         -\tag #@var{your-tags} 
893 @end example
894
895 to an articulation, for example, 
896
897 @example
898         c4-\tag #'with-fingerings -4 -\tag #'with-strings \6
899 @end example
900
901 This defines a note, which has a conditional fingering and a
902 string-number indication.
903
904 @item
905 The settings for chord-fingering are more flexible. You can specify a
906 list where fingerings may be placed, eg.
907
908 @example
909         \property Voice.fingeringOrientations = #'(left down)
910 @end example
911
912 This will put the fingering for the lowest note below the chord, and the
913 rest to the left.
914
915 @item
916 The script previously known as @code{ly2dvi} has been renamed to
917 @code{lilypond}. The binary itself is now installed as
918 @code{lilypond-bin}.
919
920 @item
921 Markup text (ie. general text formatting) may now be used for lyrics too. 
922
923 @item
924 Two new commands for grace notes have been added, @code{\acciaccatura}
925 and @code{\appoggiatura},
926
927 @example
928   \appoggiatura f8 e4
929   \acciaccatura g8 f4
930 @end example
931
932 Both reflect the traditional meanings of acciaccatura and appogiatura,
933 and both insert insert a slur from the first grace note to the main
934 note.
935
936 @item 
937 Layout options for grace notes are now stored in a context property,
938 and may now be set separately from musical content.
939
940 @item
941 The @code{\new} command will create a context with a unique
942 name automatically. Hence, for multi-staff scores, it is no longer
943 necessary to invent arbitrary context names. For example, a two-staff
944 score may be created by
945
946 @example
947   \simultaneous @{
948     \new Staff @{ @var{notes for 1st staff} @}
949     \new Staff @{ @var{notes for 2nd staff} @}
950   @}
951 @end example
952
953
954
955 @item
956 Octave checks make octave errors easier to correct.
957 The syntax is 
958
959 @example
960   \octave @var{pitch}
961 @end example
962
963 This checks that @var{pitch} (without octave) yields @var{pitch} (with
964 octave) in \relative mode. If not, a warning is printed, and the
965 octave is corrected.
966
967 @item
968 All articulations must now be entered postfix. For example,
969
970 @example
971         c8[( d8]) 
972 @end example
973
974 @noindent
975 is a pair of beamed slurred eighth notes.
976
977 @item
978 The definition of @code{\relative} has been simplified.  Octaves are
979 now always propagated in the order that music is entered. In the
980 following example,  
981
982 @example
983   PRE
984   \repeat "unfold" 3  BODY \alternative @{ ALT1 ALT2 @}
985   POST
986 @end example
987
988 @noindent
989 the octave of BODY is based on PRE, the starting octave of ALT1 on
990 BODY, the starting octave of ALT2 on ALT1, and the starting octave of
991 POST on ALT2.
992
993 The same mechanism is used for all other music expressions, except the
994 chord. Backwards compatibility is retained through a special program option,
995 which is set through 
996
997 @example
998   #(ly:set-option 'old-relative)
999 @end example
1000
1001 @item
1002 Windows users can double click a @code{.ly} file to process and view
1003 it automagically through the new @code{lily-wins} frontend.
1004
1005 @end itemize
1006
1007
1008
1009
1010 @unnumbered New features in 1.8 since 1.6
1011
1012 @itemize
1013
1014 @item 
1015 The chord entry code has been completely rewritten. It is now
1016 cleaner and more flexible.
1017
1018 @item 
1019 A new syntax has been added for text entry.  This syntax is more
1020 friendly than the old mechanism, and it is implemented in a more
1021 robust and modular way. For more information, refer to the section on
1022 "Text markup" in the notation manual.
1023
1024 @item 
1025 The integration of the input language and Scheme has been made deeper:
1026 you can now use LilyPond identifiers in Scheme, and use Scheme
1027 expressions instead of LilyPond identifiers.
1028
1029 @item 
1030 The internal representation of music has been cleaned up completely
1031 and converted to Scheme data structures.  The representation may be
1032 exported as XML.
1033
1034 @item 
1035 A new uniform postfix syntax for articulation has been introduced.
1036 A beamed slurred pair of eighth notes can be entered as
1037
1038 @example
1039         c8-[-( d8-]-) 
1040 @end example
1041
1042 In version 2.0, postfix syntax will be the only syntax
1043 available, and the dashes will become optional.
1044
1045 This will simplify the language: all articulations can be entered as
1046 postfix, in any order.
1047
1048 @item 
1049 A new syntax has been added for chords:
1050
1051
1052 @example
1053         << PITCHES >>
1054 @end example 
1055
1056 It is not necessary to update files to this syntax, but it will be for
1057 using LilyPond version 2.0.  In version 2.0, this syntax will be
1058 changed to
1059
1060 @example
1061         < PITCHES >
1062 @end example
1063
1064 for chords, and
1065
1066 @example
1067         \simultaneous @{ .. @} 
1068 @end example
1069
1070 for simultaneous music.
1071
1072 To convert your files from <PITCHES> to <<PITCHES>>, use the script
1073 included in @file{buildscripts/convert-new-chords.py}.
1074
1075 This change was introduced for the following reasons
1076
1077 @itemize @bullet
1078 @item
1079 It solves the "start score with chord" problem, where you have to
1080   state \context Voice explicitly when a chord was the start of a
1081   Staff or Score.
1082 @item
1083 With the new syntax, it is possible to distinguish between
1084   articulations (or fingerings) which are for a single chord note,
1085   and which are for the entire chord. This allows for per-note
1086   fingerings, and is more logical on the whole.
1087 @end itemize
1088
1089 @item 
1090 User code may now be executed during interpreting.  The syntax for
1091 this code is
1092
1093 @example
1094         \applycontext #SCHEME-FUNCTION
1095 @end example
1096
1097 @item 
1098 User code may now be executed on arbitrary grobs during interpreting.
1099 The syntax for this feature is
1100
1101 @example
1102         \applyoutput #SCHEME-FUNCTION
1103 @end example
1104
1105 @noindent
1106 SCHEME-FUNCTION takes a single argument, and is called for every grob
1107 that is created in the current context.
1108
1109 @item 
1110 New algorithms for chord-name formatting have been installed. They
1111 can be tuned and have ergonomic syntax for entering exceptions.
1112
1113 @item 
1114 Texts may now be put on multimeasure rests, e.g.
1115
1116 @example
1117         R1*20^\markup @{ "GP" @}
1118 @end example
1119
1120 @item
1121 Ancient notation now prints ligatures in Gregorian square neumes
1122 notation, roughly following the typographical style of the Liber
1123 hymnarius of Solesmes, published in 1983.  Ligatures are still printed
1124 without the proper line breaking and horizontal spacing.
1125
1126 @item 
1127 Glissandi can now be printed using the zigzag style.
1128
1129 @item 
1130 LilyPond can now print clusters. The syntax is
1131
1132 @example
1133         \apply #notes-to-clusters @{ NOTE NOTE .. @}
1134 @end example
1135
1136 @item
1137 For irregular meters, beat grouping marks can be printed. The
1138 syntax for this is
1139
1140 @example
1141         #(set-time-signature 7 8 '(3 2 2))
1142 @end example
1143
1144
1145 @item 
1146 Nested horizontal brackets for music analysis can now be printed:
1147
1148 @example
1149         NOTE-\startGroup
1150                 ..
1151         NOTE-\stopGroup
1152 @end example
1153
1154
1155 @item  Ottava brackets are now fully supported as a feature.  The syntax
1156 is
1157
1158 @example
1159         #(set-octavation 1)
1160 @end example
1161
1162
1163 @item  Metronome markings are printed when a \tempo command is processed.
1164
1165
1166
1167 @item Fingerings can be put on chords horizontally.
1168
1169
1170
1171 @item  The appearance of various glyphs has been fine-tuned.
1172
1173
1174
1175 @item  Different types of percent style repeats may now be nested.
1176
1177
1178
1179 @item  The emacs support has been extended.
1180
1181
1182 @item 
1183 The manual has been completely revised and extended.
1184
1185 @end itemize
1186
1187 @unnumbered New features in 1.6 since 1.4
1188
1189
1190 @itemize @bullet
1191
1192 @item
1193 Support for figured bass and tablature.
1194
1195 @item
1196 Completely rewritten beam formatting: provides much better output
1197 now.
1198
1199
1200 @item
1201 Completely revised and improved music font.
1202
1203
1204 @item
1205 Completely rewritten MIDI import support.
1206
1207 @item
1208 Completely rewritten grace note support. Practically speaking this
1209 means that grace notes can be slurred to normal normal notes.
1210
1211
1212 @item
1213 Improved accidental handling and formatting: styles for producing
1214 cautionaries may vary, and complex collisions between accidentals of a
1215 chord are handled much better.
1216
1217 @item
1218 Better spacing: both globally and locally. This includes subtle
1219 details like optical stem spacing.
1220
1221 @item
1222 More support for ancient notation: mensural ligatures, ambitus
1223 (pitch range) of voices, more shapes, etc.
1224
1225 @item
1226 More support for piano notation: bracket pedals, directed arpeggios,
1227 arpeggio brackets.
1228
1229 @item
1230 Easier music polyphonic music entry.
1231
1232 @item
1233 More extensibility, many speedups and bugfixes
1234
1235 @item
1236 The manual has been thoroughly revised.
1237
1238 @item
1239 Development is now hosted at http://savannah.gnu.org, and sources
1240 can be downloaded through anonymous CVS.
1241
1242 @item
1243 Support for windows: LilyPond is part of the cygwin distribution,
1244 which comes with a user-friendly installer.
1245
1246 @end itemize