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