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