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