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