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