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