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