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