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