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