]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/topdocs/NEWS.tely
(Top): document \new syntax.
[lilypond.git] / Documentation / topdocs / NEWS.tely
1 \input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
2 @setfilename NEWS.info
3 @settitle NEWS
4
5 @ifhtml
6 @macro inputfileref{DIR,NAME}
7 @uref{../../\DIR\/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
8 @end macro
9 @macro usermanref{NAME}
10 @inforef{\NAME\,,../user/lilypond/lilypond}@c
11 @end macro
12 @end ifhtml
13
14 @ifnothtml
15 @macro inputfileref{DIR,NAME}
16 @file{\DIR\/\NAME\}@c
17 @end macro
18 @macro usermanref{NAME}
19 See user manual, \NAME\
20 @end macro
21 @end ifnothtml
22
23
24 @macro textanchor{NAME}
25 @html
26 <a name="\NAME\"></a>
27 @end html
28 @end macro
29
30
31 @documentencoding utf-8
32 @documentlanguage en
33
34 @ifnottex
35 @node Top
36 @top
37 @end ifnottex
38 @unnumbered New features in 2.7 since 2.6
39
40 @ifhtml
41 This document is also available in @uref{NEWS.pdf,PDF}. It's part of
42 the @uref{../,LilyPond Documentation} 
43 @end ifhtml
44
45
46
47
48 @itemize @bullet
49
50 @ignore
51
52 HINTS
53
54 * only show verbatim input for syntax/input changes
55
56 * try to be as brief possible in those cases
57
58 * don't try to provide real-world examples, they often get too big,
59 which scares away people.
60
61 * Write complete sentences.
62
63 * only show user-visible changes. 
64
65 @end ignore
66 @item Newly created contexts may also be named with the following
67 syntax,
68
69 @verbatim
70 \new Voice = "alto" ... 
71 @end verbatim
72
73 @item Thicknesses of tie and slurs may be  tuned separately for the
74 endings and the middle part.
75
76 @item Items directly connected with a music input element may be
77 parenthesized, for example,
78
79 @lilypond[verbatim,ragged-right,fragment,relative=2]
80 c4-\parenthesize -.
81 <d \parenthesize fis a> 
82 @end lilypond
83
84 This feature was sponsored by Ramana Kumar.
85
86 @item Multi-word
87  variables in the @code{\paper} and @code{\layout} block are now
88  separated with dashes, i.e.
89
90 @verbatim
91 \paper {
92   ragged-right = ##t
93   top-margin = 5 \cm
94 }
95 @end verbatim
96
97 @noindent
98 The same holds for analogous options in lilypond-book.
99
100 @item
101 Music for multiple parts can be interleaved, similar to MUP input.
102 This is done with the @code{\parallelMusic} function,
103   
104 @lilypond[verbatim,ragged-right]
105 \parallelMusic #'(voiceA voiceB) {
106   r8     g'16[ c''] e''[ g' c'' e''] r8     g'16[ c''] e''[ g' c'' e''] |
107   c'2                                c'2                                |
108   r8     a'16[ d''] f''[ a' d'' f''] r8     a'16[ d''] f''[ a' d'' f''] |
109   c'2                                c'2                                |
110 }
111 \new StaffGroup <<
112   \new Staff
113     \new Voice \voiceA 
114   \new Staff
115     \new Voice \voiceB
116 >> 
117 @end lilypond
118
119 This feature was contributed by Nicolas Sceaux.
120
121 @item Alignments of staves may be tuned per system.   
122 @lilypond[]
123 #(set-global-staff-size 13)
124
125 \relative c'' \new StaffGroup <<
126   \new Staff { c1 c }
127   \new Staff { c c  }
128   \new Staff { 
129         \overrideProperty
130         #"Score.NonMusicalPaperColumn"
131         #'line-break-system-details
132         #'((alignment-offsets . (0 -5 -20)))
133         c1 \break
134         \overrideProperty
135         #"Score.NonMusicalPaperColumn"
136         #'line-break-system-details
137         #'((alignment-offsets . (0 -15 -20)))
138         c1 
139   }
140 >>
141 @end lilypond
142
143 This feature was sponsored by Trevor Bača.
144
145 @item Individual systems may be positioned manually,
146
147 @lilypond[]
148 \header{
149   tagline = "lily was here"
150 }
151
152 #(set-default-paper-size "a7" 'landscape)
153 \paper {
154   head-separation = 0.0
155   foot-separation = 0.0
156   }
157 \book {
158  \score {
159    \relative c'' {
160      c1\break
161       \overrideProperty 
162       #"Score.NonMusicalPaperColumn"
163       #'line-break-system-details
164       #'((Y-offset . 24.5)
165          (X-offset . -7.5))
166       c1 
167    }
168    }
169  \paper {
170    annotatepage = ##t
171    annotateheaders = ##t
172  }
173 }
174 @end lilypond
175
176 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
177
178 @item A linebreaking configuration can now be saved as a @file{.ly}
179 file automatically. This allows vertical alignments to be stretched to
180 fit pages in a second formatting run. See
181 @inputfileref{input/regression,page-layout-twopass.ly} for an
182 example.
183
184 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
185
186 @item The tie formatting for chords has been further polished. More
187 cases are handled gracefully, and all scoring parameters may now be
188 changed through the @code{details} property of the @code{Tie} grob.
189
190 This refinement was sponsored by Steve Doonan.
191
192 @item Positions of staff lines may now be set individually, for
193 example
194
195 @lilypond[ragged-right]
196 \new Staff  \relative c' {
197   \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 7)
198   g c f b e a
199 }
200 @end lilypond
201
202 This feature  was sponsored by Andrea Valle.
203
204
205 @item A MusicXML importer is included now.
206
207 It was sponsored by among others, Mark van den Borre, 
208 and Muziekacademie Lede.
209
210 @item
211 Stem direction on the center staff line are now interpolated between
212 neighbors. This results in less stem direction changes, leading to a
213 more even appearance. For example,
214
215 @lilypond[ragged-right]
216 \relative c'' {
217   c4 b c b
218   c c c r
219   b a b a
220 }
221 @end lilypond 
222
223 This feature was sponsored by Mike Rolish and Basil Crow.
224
225 @item
226 Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
227 staff.
228
229 @lilypond[ragged-right]
230 \relative {
231   \slurUp
232   \override TupletBracket #'bracket-visibility = ##f
233   \override TupletBracket #'staff-padding = ##f
234   \override Slur #'details #'region-size  = #6
235   
236   \times 2/3
237   {
238     c(  \stemDown g' \stemNeutral  c,)
239   }
240 }
241 @end lilypond
242
243 This feature was sponsored by Trent Johnston.
244
245
246 @item Tuplet brackets and numbers  are implemented as separate grobs,
247 @code{TupletBracket} and @code{TupletNumber}.
248
249 This rewrite was sponsored by Trent Johnston.
250
251 @item String arguments for music functions may be specified without
252 @code{#} marks. Now, \clef and \bar are also music functions.
253
254 @item Ties in chords are also formatted using a scoring based
255 formatting. This reduces the number of collisions for ties in chords,
256
257 @lilypond[ragged-right,fragment,relative=2]
258   <b  d f g> ~  <b  d f g> 
259 @end lilypond
260
261 Here, the tie for the D is flipped, in spite the default rule for
262 tie directions.
263
264 This rewrite was sponsored by Steve Doonan.
265
266 @item With the @code{\tweak} music function, layout objects that are directly
267 connected to input may be tuned easily,
268
269 @lilypond[relative=2,fragment,verbatim,ragged-right]
270 <
271   \tweak #'font-size #3  c
272   \tweak #'color #red d
273   \tweak #'style #'cross  g
274   \tweak #'duration-log #1  a
275 >4
276 @end lilypond
277
278 This feature was sponsored by Sean Reed and Bertalan Fodor.
279
280 @item Generic music functions may now also be used on articulations
281 and chord elements, eg.
282
283 @verbatim
284   < \displayMusic c
285     e-\keepWithTag #'bla -\tag #'bla ^2 >
286 @end verbatim
287
288 This feature was sponsored by Sean Reed and Bertalan Fodor.
289
290
291 @item Spaces between lyrics and distance between syllables with
292 hyphens may now be separately tuned through the
293 @code{LyricSpace} grob.
294
295 This feature has been sponsored by Bertalan Fodor.
296
297 @item Texts set in a TrueType font are now kerned. This requires CVS
298 Pango or Pango 1.12.
299
300 @lilypond[relative=2,fragment,ragged-right]
301   c4^"VAVAVAffififl"
302 @end lilypond
303
304
305 @item Using the @TeX{}  no longer requires linking or dynamically
306 opening the kpathsea library, making the backend more easily usable on
307 various systems.
308
309 This fix was sponsored by Black Trash Productions.
310
311 @item The horizontal location of rehearsal marks can be adjusted by
312 setting the @code{rehearsalMarkAlignSymbol} property,
313
314 @lilypond[ragged-right]
315 \relative {
316   c1
317   \key cis \major
318   \clef alto
319   \set Score.rehearsalMarkAlignSymbol = #'key-signature
320   \mark "on-key"
321   cis
322  \key ces \major
323   \set Score.rehearsalMarkAlignSymbol = #'clef
324   \clef treble
325   \mark "on clef"
326   ces
327 }
328 @end lilypond 
329
330
331 This feature was sponsored by Trevor Bača.
332
333
334 @item
335 It's now possible to easily create deeply nested system start
336 delimiters,
337
338 @lilypond[ragged-right]
339 \new StaffGroup 
340 \relative <<
341   \set StaffGroup.systemStartDelimiterHierarchy
342     = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
343   \new Staff { c1 }
344   \new Staff { c1 }
345   \new Staff { c1 }
346   \new Staff { c1 }
347   \new Staff { c1 }
348 >>
349 @end lilypond
350
351
352 In addition, there is now also support for ``square'' system start
353 brackets.
354
355 This feature was sponsored by Trevor Bača.
356
357 @item
358 Tie formatting now uses scoring. This opens the road to formatting
359 which handles complex situations require tradeoffs between different
360 beauty factors.
361
362 This refactoring has been sponsored by Steve Doonan.
363  
364 @item
365 Each grob property may also be a ``grob closure.'' This means that it
366 is possible to combine functions. For example, the @code{Y-offset} of
367 a @code{InstrumentName} grob is defined to be 
368
369 @verbatim
370 ,(ly:make-simple-closure
371   `(,+
372     ,(ly:make-simple-closure
373       (,ly:self-alignment-interface::y-aligned-on-self))
374     ,(ly:make-simple-closure
375       (,ly:side-position-interface::y-aligned-on-support-refpoints)))
376 @end verbatim
377
378 @noindent
379 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
380 as
381
382 @example
383 (+ (ly:self-alignment-interface::y-aligned-on-self @var{grob})
384    (ly:self-alignment-interface::y-aligned-on-support-refpoints @var{grob}))
385 @end example
386
387
388 @item
389 Calculation of extent and offset of grob is now controlled via the
390 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
391 properties, for example
392
393 @verbatim
394 \override TextScript #'Y-offset = #-6
395 @end verbatim
396
397 @noindent
398 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
399 grobs.
400
401 @item
402 Each grob property can be a procedure. If this is the case, it is
403 assumed to be a routine that calculates said property.  This is a
404 major internal cleanup, which also provides advanced tweakability for
405 power users. For example,
406
407 @verbatim
408 \override Beam #'direction
409   = #(lambda (grob)
410       (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
411           DOWN
412           UP))
413 @end verbatim 
414
415 @noindent
416 With this code fragment, the direction of a beam is decided to be up
417 or down, depending on the number of stems in the beam.
418
419
420 @item
421 Support for figured bass has been rewritten. Now it supports
422 continuation lines, slashed figures, and its figures, brackets, and
423 alignments may tuned separately.
424
425 @lilypond[ragged-right,fragment]
426 <<
427   \relative { c4 c c c }
428   \figures {
429     \set useBassFigureExtenders = ##t
430     <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
431 } >>
432 @end lilypond
433
434 This rewrite was sponsored by Trent Johnston and John Mandereau.
435
436 @item
437 Subproperties, like the @code{details} field of @code{Slur} and
438 @code{Tie} may now be tuned with @code{\override}. For example, 
439
440 @verbatim
441 \override Stem #'details #'beamed-lengths = #'(4 4 3) 
442 @end verbatim
443
444 @noindent
445 shortens the stems in beams.
446
447 @item
448 The default paper size may now be set from the command line using
449 @code{-dpaper-size}.
450
451 @item
452 Beamlets may stick out of the side of beams.
453
454
455 @lilypond[fragment,ragged-right,relative=2]
456 {
457   \override Beam #'break-overshoot = #'(-0.5 . 0.5) 
458   \set stemLeftBeamCount = #2
459   c8[
460     c16
461     \set stemRightBeamCount = #3
462     c ]  
463 }
464 @end lilypond
465
466 This feature was sponsored by Trevor Bača.
467  
468
469
470 @item  
471 Vertical alignments of staves can now be tuned easily for individual
472 systems.
473
474 @lilypond[ragged-right]
475 #(set-global-staff-size 13)
476 \relative c'' <<
477   \new PianoStaff <<
478     \new Voice  {
479       c1
480       
481       \overrideProperty
482       #"Score.NonMusicalPaperColumn"
483       #'line-break-system-details
484       #'((fixed-alignment-extra-space . 15))
485       c
486
487     }
488     { 
489         c1\break 
490         c\break 
491     }
492   >>
493 >>
494 @end lilypond
495
496 This feature was sponsored by Nicolas Sceaux.
497
498 @item 
499 Vertical spacing for page layout can now be tuned for each system
500 individually.  The dimensions that can be tuned can be visualized.
501
502 @lilypond[verbatim]
503 #(set-default-paper-size "a7" 'landscape)
504 \book {
505  \score { { c4 } }
506  \paper { annotatespacing = ##t }
507 }
508 @end lilypond
509
510 These features were sponsored by Trevor Bača and Nicolas Sceaux.
511
512 @item
513 The slope of a stem-tremolo may be set manually
514
515 @lilypond[fragment,relative=1,ragged-right]
516 c8:16[ 
517 \once \override StemTremolo #'slope = #0.45
518 c:16 c:16 c:16 ]
519 @end lilypond 
520
521 This feature was sponsored by Sven Axelsson.
522
523 @item
524 Laissez vibrer ties can be created with @code{\laissezVibrer},
525
526 @lilypond[fragment,ragged-right,relative=1]
527   <c e g>\laissezVibrer r  <d f>\laissezVibrer
528 @end lilypond
529
530 This feature was sponsored by Henrik Frisk.
531
532 @item
533 The order of words in @code{\markup} commands may now be reversed by
534 setting the @code{text-direction} property. This is useful for
535 Right-to-Left languages like Hebrew.
536
537 This feature was sponsored by Aaron Mehl.
538
539 @item
540 Texts over multi measure rests can stretch the corresponding measure,
541 if the appropriate @code{spring-and-rods} callback is set.
542
543 @lilypond[relative=2,fragment,ragged-right]
544 \override MultiMeasureRestText #'springs-and-rods
545   = #ly:multi-measure-rest::set-text-rods
546 c1 R1 R1^"Very long long long text" 
547 @end lilypond
548
549 This feature was sponsored by Kris Shaffer.
550
551
552 @item @textanchor{tie-chords}
553 Formatting of ties in chords has been improved. Ties no longer collide
554 with note heads and stems. In addition, it is possible to manually
555 specify tie formatting
556
557 @lilypond[relative=2, fragment,ragged-right]
558   <a c d f> ~ <a c d f>
559   
560   \override TieColumn #'tie-configuration =
561   #'((0 . -1) '() (5.5 . 1) (7 . 1))
562   <b d f g> ~ <b d f g>
563 @end lilypond
564
565 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
566 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
567 Dell¡.
568
569 @item
570 Formatting of isolated, single ties has been improved. Now, ties avoid
571 staff lines, flags and dots, without compromising their shape.
572
573 @lilypond[fragment,ragged-right]
574 \relative c'' {
575   \stemUp
576   c16 c2...~ c16 ~ c2... |
577   c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
578 }
579 @end lilypond
580
581 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
582 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
583 Dell¡.
584  
585
586 @item  @textanchor{repeat-counter}
587 With the @code{countPercentRepeats} property,
588 percent repeats get incremental numbers to indicate the accumulated repeat count.
589
590 @lilypond[relative=2,fragment,ragged-right]
591 \set countPercentRepeats = ##t
592 \repeat percent 4 { c1 }
593 \time 2/4
594 \repeat percent 4 { c2 c2 }
595 @end lilypond
596
597 This feature was sponsored by Yoshinobu Ishizaki
598                   
599 @item
600 Text scripts such as fingering instructions and dynamics avoid
601 collisions with slurs
602
603 @lilypond[fragment,relative=1]
604 {
605   b_1( f'_1_2_3 c_3_4_5 a)
606   b( f'\p b,)
607   c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
608 }
609 @end lilypond
610
611 @item
612 Tuplets can be made to reach the next non-tuplet note by setting the
613 @code{tupletFullLength}  property,
614
615 @lilypond[fragment,relative=2]
616 \new Voice \with {
617   \remove Forbid_line_break_engraver
618   allowBeamBreak = ##t
619 }
620 {
621   \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
622   \set tupletFullLength = ##t
623   \times 2/3 { c8[ c c] }
624   c4
625 }
626 @end lilypond  
627
628 This feature was sponsored by Trevor Bača. 
629
630 @item
631 When @code{strict-note-spacing} is set, notes are spaced without regard
632 for clefs, bar lines, and grace notes. For example,
633
634 @lilypond[fragment,relative=2]
635 \override Score.SpacingSpanner #'strict-note-spacing = ##t 
636 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c]  c32[ c32] }
637 @end lilypond
638
639 This feature was sponsored by Trevor Bača. 
640
641 @item
642 Beams support the @code{break-overshoot} property, for example
643
644 @lilypond[relative=2,fragment]
645 \set allowBeamBreak = ##t
646 \override Beam #'break-overshoot = #'(1.0 . 2.0)
647 c2.. c8[ \break c]
648 @end lilypond
649  
650 This feature was sponsored by Trevor Bača. 
651
652 @item
653 Proportional notation is supported.  Notes can be spaced proportional
654 to their time-difference by assigning a duration to
655 @code{proportionalNotationDuration}. For example,
656
657 @lilypond[relative=2,fragment,ragged-right]
658 <<
659   \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
660   \new Staff { c8[ c c c c c]  c4 c2 r2 }
661   \new Staff { c2  \times 2/3 { c8 c c } c4 c1 }
662 >>
663 @end lilypond
664
665 This feature was sponsored by Trevor Bača.
666
667 @item 
668 Symbol sizes (e.g. accidentals) are disregarded for spacing if
669 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
670
671
672 @lilypond[relative=2,fragment]
673 <<
674   \override  Score.SpacingSpanner #'uniform-stretching = ##t 
675   \new Staff { c16[ c c c c c c c c c16]  }
676   \new Staff {
677     \times 6/7 { c16 c c cis c c c }
678     c8[ c32 c32 c16]
679   }
680 >>
681 @end lilypond
682
683 This feature was sponsored by Trevor Bača.
684  
685 @item
686 Endings of broken tuplet brackets can be tuned.  For example, you can
687 add arrows to the brackets,
688
689 @lilypond[fragment,ragged-right,relative=2]
690 \override TupletBracket
691  #'edge-text = #(cons
692              (markup #:arrow-head X LEFT #f)
693              (markup #:arrow-head X RIGHT #f))
694 \times 4/5 {
695  c c c \bar "empty" \break c c
696 }
697 @end lilypond
698
699 This feature was sponsored by Trevor Bača.
700
701
702 @item @textanchor{arrow-glyph}
703 Arrow heads were added to the Feta font.
704
705 @lilypond[]
706 \lyrics {
707   \markup {
708     filled, to the right:  \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
709     open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
710   }
711 }
712 @end lilypond
713
714 These glyphs have been sponsored by Trevor Bača.
715
716
717 @item
718 Nested tuplets are automatically positioned,
719
720 @lilypond[fragment,ragged-right,relative=2]
721 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
722 \times 4/6 {
723   a4 a 
724   \times 3/5 { a a a a a }
725 }
726 @end lilypond
727
728 This feature was sponsored by Trevor Bača.
729
730 @item
731 Music expressions can be displayed, in LilyPond notation, using the
732 new @code{\displayLilyMusic} function. For instance:
733 @verbatim
734 \displayLilyMusic \transpose c a, { c d e f }
735 @end verbatim
736 will print:
737 @verbatim
738 { a, b, cis d }
739 @end verbatim
740
741 This feature was contributed by Nicolas Sceaux.
742
743 @item
744 The current bar number may be checked with @code{\barNumberCheck}, eg.
745
746 @verbatim
747 \barNumberCheck #22
748 @end verbatim
749
750 @noindent
751 will print a warning if it doesn't happen in measure 22.
752  
753 @item
754 If @code{showLastLength} is set, only the last few measures of a piece
755 are rendered, which speeds up correcting scores. For example, setting
756
757 @verbatim
758 showLastLength = R1*5
759 \score { ... }
760 @end verbatim
761
762 @noindent
763 will render only the last five measures (assuming 4/4 time signature)
764 of a piece.
765
766 @item @textanchor{simple-melismata}
767 Melismata can be specified simply in the lyrics now, eg.
768
769 @lilypond[relative=1,verbatim,fragment]
770 {
771   c d( e) f e d
772 } \addlyrics {
773   Ky -- _ _ ri e
774 }
775 @end lilypond 
776
777 This feature was sponsored by Nancho Alvarez 
778
779 @item
780 Suggested accidentals (for notating musica ficta) may be switched on
781 with @code{suggestAccidentals}
782
783 @lilypond[verbatim,fragment,relative=2]
784 \set suggestAccidentals = ##t
785 ais bis
786 @end lilypond 
787
788 This feature was sponsored by Nancho Alvarez.
789
790 @item
791 The setting @code{whichBar} and time-bookkeeping is now split into a
792 @code{Default_bar_line_engraver} and @code{Timing_translator}
793 respectively.
794
795 @item @textanchor{pitched-trill}
796 Explicit pitches may be added to trills,
797
798 @lilypond[relative,verbatim,fragment]
799   \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
800 @end lilypond 
801
802 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
803
804 @item
805 Markup now supports formatting of text paragraphs, using
806 @code{\wordwrap} and @code{\justify}.
807
808 This feature was sponsored by Sven Axelsson.
809 @end itemize
810
811 @ifhtml
812 For older news, go to
813 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
814 or @uref{../,go back} to the Documentation index.
815
816
817 @end ifhtml
818
819 @bye