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