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