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