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