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