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