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