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