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