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