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