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