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