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