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