]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/topdocs/NEWS.tely
Merge commit 'origin' into beamlets2
[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 @macro textanchor{NAME}
24 @html
25 <a name="\NAME\"></a>
26 @end html
27 @end macro
28
29
30 @documentencoding utf-8
31 @documentlanguage en
32
33 @finalout
34
35 @node Top
36 @top New features in 2.11 since 2.10
37
38 @ifhtml
39 This document is also available in @uref{NEWS.pdf,PDF}. It is part of
40 the @uref{../,LilyPond Documentation}.
41 @end ifhtml
42
43
44
45
46 @itemize @bullet
47
48 @ignore
49
50 HINTS
51
52 * only show verbatim input for syntax/input changes
53
54 * try to be as brief possible in those cases
55
56 * don't try to provide real-world examples, they often get too big,
57 which scares away people.
58
59 * Write complete sentences.
60
61 * only show user-visible changes. 
62
63 @end ignore
64
65 @item
66 Unbeamed 128th notes are now supported:
67 @lilypond
68 \relative c'' {
69   g128
70 }
71 @end lilypond
72
73 @item
74 Straight flags (used in old scores of e.g. Bach, but also in different form in 
75 modern scores of e.g. Stockhausen) are now implemented:
76 @lilypond
77 \relative c'' {
78   \override Stem #'flag = #modern-straight-flag
79   c,16 \acciaccatura {c'8} d4 d32 
80   \bar":"
81   \override Stem #'flag = #old-straight-flag
82   c,16 \acciaccatura {c'8} d4 d32 
83 }
84 @end lilypond
85
86 @item
87 @code{\bookpart} blocks may be used to split a book into several parts,
88 separated by a page break, in order to ease the page breaking, or to use
89 different @code{\paper} settings in different parts.
90
91 @example
92 \bookpart @{
93   \header @{
94     title = "Book title"
95     subtitle = "First part"
96   @}
97   \score @{ @dots{} @}
98   @dots{}
99 @}
100 \bookpart @{
101   \header @{
102     subtitle = "Second part"
103   @}
104   \score @{ @dots{} @}
105   @dots{}
106 @}
107 @end example
108
109 @item
110 Nested contexts of the same type are now allowed.
111 This deprecates @code{InnerStaffGroup} and @code{InnerChoirStaff}.
112 @lilypond[relative=1]
113 \new StaffGroup <<
114   \new Staff { c1 }
115   \new StaffGroup <<
116     \new Staff { c1 }
117     \new Staff { c1 }
118   >>
119 >>
120 @end lilypond
121
122 @item
123 Percent repeat counters can be shown at regular intervals using the
124 context property @code{repeatCountVisibility}.
125 @lilypond[relative=1]
126 {
127   \set countPercentRepeats = ##t
128   \set repeatCountVisibility = #(every-nth-repeat-count-visible 2)
129   \repeat percent 8 { c4 d e f }
130 }
131 @end lilypond
132
133 @item
134 In addition to the already existing @code{showLastLength} property,
135 @code{showFirstLength} can now be set as well, rendering only the first
136 measures of a piece.  Both properties may be set at the same time:
137 @lilypond[]
138 showFirstLength = R1*2
139 showLastLength = R1*3
140 \relative c' { c1 d e f g a b c }
141 @end lilypond
142
143 @item
144 The file extension for MIDI can be set using the command-line
145 program default @code{midi-extension}.  For Windows, the default
146 extension has been changed to @code{.mid}.
147
148 @item
149 Two variations on the default double repeat bar line are now available.
150 @lilypond[]
151 {
152   \set Score.doubleRepeatType = #":|.:"
153   \repeat volta 2 {
154     c'1
155   }
156   \repeat volta 2 {
157     c'1
158   } 
159   \bar ":|.|:"
160   c'1
161 }
162 @end lilypond
163
164 @item
165 Four automatic accidentals rules have been added: @code{neo-modern},
166 @code{neo-modern-cautionary}, @code{dodecaphonic} and @code{teaching}.
167 The following example illustrates @code{neo-modern} rule.
168 @lilypond[]
169 notes = {
170   <<
171     \relative c' {
172       cis'8 fis, d'4 <a cis>8 f bis4 |
173       cis2. <c, fis>4 |
174     }
175     \\
176     \relative c' {
177       ais'2 cis, |
178       fis8 b a4 cis2 |
179     }
180   >>
181 }
182
183 \new Staff {
184   #(set-accidental-style 'neo-modern)
185   \notes
186 }
187 @end lilypond
188
189 @item
190 Flags can now be generated with Scheme-code using the @code{'flag}
191 @code{Stem} grob property.  Existing scores will work without change.
192 @lilypond[]
193 testnotes = {
194   \autoBeamOff
195   c'8 d'16 c''8 d''16
196 }
197
198 #(define (inverted-flag stem-grob)
199   (let* ((dir (if (eqv? (ly:grob-property stem-grob 'direction) UP) "d" "u"))
200          (flag (retrieve-glyph-flag "" dir "" stem-grob))
201          (line-thickness (ly:staff-symbol-line-thickness stem-grob))
202          (stem-thickness (ly:grob-property stem-grob 'thickness))
203          (stem-width (* line-thickness stem-thickness))
204          (stroke-style (ly:grob-property stem-grob 'stroke-style))
205          (stencil (if (null? stroke-style) flag
206                          (add-stroke-glyph flag stem-grob dir stroke-style "")))
207                          (rotated-flag (ly:stencil-rotate-absolute stencil 180 0 0)))
208     (ly:stencil-translate rotated-flag (cons (- (/ stem-width 2))  0))))
209
210 #(define-public (weight-flag stem-grob)
211   (let* ((log (- (ly:grob-property stem-grob 'duration-log) 2))
212          (is-up (eqv? (ly:grob-property stem-grob 'direction) UP))
213          (yext (if is-up (cons (* log -0.8) 0) (cons 0 (* log 0.8))))
214          (flag-stencil (make-filled-box-stencil '(-0.4 . 0.4) yext))
215          (stroke-style (ly:grob-property stem-grob 'stroke-style))
216          (stroke-stencil (if (equal? stroke-style "grace")
217              (make-line-stencil 0.2 -0.9 -0.4 0.9 -0.4)
218              empty-stencil)))
219     (ly:stencil-add flag-stencil stroke-stencil)))
220
221 {
222   \time 3/8
223   \override Stem #'flag = #weight-flag
224   \testnotes
225
226   \override Stem #'flag = #inverted-flag
227   \testnotes
228 }
229 @end lilypond
230
231 @item
232 Harp pedalling diagrams were added:
233
234 @lilypond[]
235 \markup { \harp-pedal #"^v-|vv-o^" }
236 @end lilypond
237
238 @item
239 Predefined, user-configurable, transposable fret diagrams
240 are now available in the @code{FretBoards} context:
241 @lilypond[]
242 \include "predefined-guitar-fretboards.ly"
243 <<
244   \new ChordNames {
245     \chordmode {
246       c1
247       \transpose c e { c }
248     }
249   }
250   \new FretBoards {
251     \chordmode {
252       c1
253       \transpose c e { c }
254     }
255   }
256 >>
257 @end lilypond
258
259 @item
260 The following syntax changes were made, in chronological order. In
261 addition, fret diagram properties have been moved to
262 @code{fret-diagram-details}, and the @code{#'style} property is
263 used to select solid/dashed lines instead of @code{#'dash-fraction}.
264
265 @example
266 'break-align-symbol -> 'break-align-symbols
267 scripts.caesura -> scripts.caesura.curved
268 \setEasyHeads -> \easyHeadsOn
269 \easyHeadsOff (new command)
270 \fatText -> \textLengthOn
271 \emptyText -> \textLengthOff
272 \set hairpinToBarline -> \override Hairpin #'to-barline
273 \compressMusic -> \scaleDurations
274 \octave -> \octaveCheck
275 \arpeggioUp -> \arpeggioArrowUp
276 \arpeggioDown -> \arpeggioArrowDown
277 \arpeggioNeutral -> \arpeggioNormal
278 \setTextCresc -> \crescTextCresc
279 \setTextDecresc -> \dimTextDecresc
280 \setTextDecr -> \dimTextDecr
281 \setTextDim -> \dimTextDim
282 \setHairpinCresc -> \crescHairpin
283 \setHairpinDecresc -> \dimHairpin
284 \sustainUp -> \sustainOff
285 \sustainDown -> \sustainOn
286 \sostenutoDown -> \sostenutoOn
287 \sostenutoUp -> \sostenutoOff
288 'infinite-spacing-height -> 'extra-spacing-height
289 #(set-octavation oct) -> \ottava #oct
290 \put-adjacent markup axis dir markup -> \put-adjacent axis dir markup markup
291 \pointAndClickOn (new command)
292 \pointAndClickOff (new command)
293 \center-align -> \center-column
294 \hcenter -> \center-align
295 printallheaders -> print-all-headers
296 \bigger -> \larger (already existing command)
297 systemSeparatorMarkup -> system-separator-markup
298 @end example
299
300 @noindent
301 Moreover, some files in the @code{ly/} directory have been renamed;
302 the *-init.ly filenames are now only used for files that are automatically
303 included, while such files as @code{makam-init.ly} or @code{gregorian-init.ly}
304 have been renamed to @code{makam.ly} or @code{gregorian.ly}.
305
306 @item
307 The ``tex'' and ``texstr'' backends have been removed.  Font are now
308 accessed via the fontconfig library; the Pango library is used to display
309 text strings.
310
311 @item
312 Metronome marks can now also contain a textual description.  The
313 duration and count (if given) are shown in parentheses after the text.
314
315 @lilypond[]
316 {
317   \tempo "Fast"
318   c'4 c' c' c'
319   c'4 c' c' c'
320   \tempo "Andante" 4 = 120
321   c'4 c' c' c'
322   c'4 c' c' c'
323   \tempo 4 = 100
324   c'4 c' c' c'
325   c'4 c' c' c'
326   \tempo "" 4 = 30
327   c'4 c' c' c'
328   c'4 c' c' c'
329 }
330 @end lilypond
331
332 @item
333 In figured bass you can now also use a backslash through a number to
334 indicate a raised 6th step.
335
336 @lilypond[]
337 \new FiguredBass \figuremode { < 6\\ 5\\ > < 6/ > }
338 @end lilypond
339
340 @item
341 Arpeggios may now use ``parenthesis'' style brackets:
342
343 @lilypond[relative=1]
344 \override Arpeggio #'stencil = #ly:arpeggio::brew-chord-slur
345
346 % Note: does not work for cross-staff arpeggios.
347 \override Arpeggio #'X-extent = #ly:grob::stencil-width
348 <c g' c>2\arpeggio ~ c
349 @end lilypond
350
351 @item
352 Single-system scores are now naturally spaced instead of being
353 stretched to fill the line width.  This can be changed by setting
354 @code{ragged-right = ##f}.
355
356 @item
357 Enclosing text within boxes with rounded corners is now possible,
358 using the @code{\rounded-box} markup command.
359
360 @item
361 @command{lilypond-book} can run any program instead of @command{latex}
362 to guess the line width, thanks to @code{--latex-program} command line
363 option.
364
365 @item
366 Underlining is now possible with the @code{\underline} markup command.
367
368 @item
369 It is now possible to specify, using the @code{page-count} variable in
370 the paper block, the number of pages that will be used.
371
372 @item
373 A new page breaking function, @code{ly:minimal-breaking}, is dedicated
374 to books with many pages or a lot of text.
375
376 @item
377 A table of contents is included using @code{\markuplines \table-of-contents}.
378 Elements are added to it using the @code{\tocItem} command.
379
380 @item
381 Text spreading over several pages is entered using the
382 @code{\markuplines} keyword.  Builtin markup list commands, such as
383 @code{\justified-lines} or @code{\wordwrap-lines} may be used, and new
384 ones created using the @code{define-markup-list-command} Scheme macro.
385
386 @item
387 Particular points of a book may be marked with the @code{\label}
388 command.  Then, the page where these points are placed can be
389 referred to using the @code{\page-ref} markup command.
390
391 @item
392 Page breaking and page turning commands (@code{\pageBreak},
393 @code{\noPageBreak}, etc.) can be used at top-level, between scores and
394 top-level markups.
395
396 @item
397 The following options are now changed as a @code{-d} sub-option:
398 @code{--backend}, @code{--safe}, @code{--preview} and
399 @code{--no-pages} (which became @code{-dno-print-pages}).  The @code{-b}
400 option does not exist any more.
401
402 @item
403 Improved testing procedures now catch changes in CPU and memory
404 performance, page layout, MIDI results and warnings.  This helps to
405 reduce the number of regression errors during development, resulting
406 in more stable releases.
407
408 See @uref{INSTALL.html#Testing-LilyPond} for more information.
409
410 @item
411 Nested properties, such as @code{'details} in @code{Slur}, can be
412 reverted as well.  The syntax for this is
413
414 @example
415 \revert Slur #'(details closeness-factor)
416 @end example
417
418 @item
419 All line spanners are more flexible now in the configuration of
420 their end points.  This includes glissando, voice followers, text
421 crescendos and other text spanners.  The old syntax for setting
422 text on line spanners is no longer valid.
423
424 @lilypond[]
425 \relative c'' {
426   \override Glissando #'(bound-details right text) = \markup { \center-align \bold down }
427   \override Glissando #'(bound-details right Y) = #-4
428   \override Glissando #'(bound-details right padding) = #0.0
429   \override Glissando #'(bound-details left arrow) = ##t
430   \override Glissando #'(bound-details left padding) = #3.0
431   \override Glissando #'style = #'trill
432   \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods
433   \override Glissando #'minimum-length = #12
434   
435   c1 \glissando c'
436 }
437 @end lilypond
438
439 This feature was sponsored by Trevor Bača.
440
441 @item
442 The environment variable @code{LILYPONDPREFIX} has been renamed
443 @code{LILYPOND_DATADIR}.
444
445 @item
446 Notes or rests, such as a typical end note, that fill an entire
447 measure are preceded by some more space.
448
449 @lilypond[relative=1]
450 \time 4/4
451 s1
452 c2. c4
453 \time 3/4
454 c2.
455 @end lilypond
456
457 @item
458 All @code{\score}s in a lilypond-book fragment are now inserted
459 into the document.  Also, toplevel markups don't result in an entire
460 page.
461
462 @item
463 Alterations (such as a sharp or flat) may now be arbitrary
464 fractions.  This allows some forms of microtonal music.  For example,
465 Turkish makam music uses 1/9th tone alterations.
466
467 @lilypondfile{makam-example.ly}
468
469 @item
470 Tie directions may be set with @code{^~} and @code{_~}.
471
472 @item
473 Tablature now supports harmonics and slides:
474
475 @lilypond[relative=1]
476 \new TabVoice {
477   <c g'\harmonic>4 d\2\glissando e2\2
478 }
479 @end lilypond
480
481 This feature was sponsored by Mike Amundsen
482
483 @item
484 Horizontal spacing now follows object outlines more accurately.
485 This allows tighter horizontal spacing.
486
487 @lilypond[]
488 {
489   \stemUp
490   c''4... ceses'! s16
491 }
492 @end lilypond
493
494 @item
495 Objects that belong outside of the staff are now positioned
496 automatically to avoid collisions.
497
498 @lilypond[relative=1]
499 c''4
500 \once \override TextScript #'self-alignment-X = #CENTER
501 a,4^"this doesn't collide with the c"
502 b4^"this goes above the previous markup"
503 a8_"this goes below the dynamic"
504 a8\f
505 @end lilypond
506
507 @item
508 Staves are spaced vertically using a skyline algorithm.  This helps
509 prevent uneven vertical spacing.
510
511 @lilypond[ragged-right]
512
513 %% todo: fix 'landscape PDF.
514 #(set-default-paper-size "a6")
515 \header {
516   tagline = ##f
517 }
518
519 \book {
520   \score {
521     {
522       a,,1
523       a'4 b' c'' d'' \break
524       \repeat unfold 2 { a'4 b' c'' d''}
525       b''''1
526     }
527   }
528 }
529 @end lilypond
530
531 @end itemize
532
533
534
535 @ifhtml
536 For older news, go to
537 @uref{http://lilypond.org/doc/v2.10/Documentation/topdocs/NEWS.html},
538 or @uref{../,go back} to the Documentation index.
539
540
541 @end ifhtml
542
543 @bye