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