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