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