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