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