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