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