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