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