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