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