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