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