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