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