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