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