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