]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/topdocs/NEWS.tely
Makam-init.ly -> makam.ly
[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 Three automatic accidentals rules have been added: @code{neo-modern},
88 @code{neo-modern-cautionary} and @code{dodecaphonic}.  The following
89 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 @end example
217
218 @item
219 Metronome marks can now also contain a textual description.  The
220 duration and count (if given) are shown in parentheses after the text.
221
222 @lilypond[]
223 {
224   \tempo "Fast"
225   c'4 c' c' c'
226   c'4 c' c' c'
227   \tempo "Andante" 4 = 120
228   c'4 c' c' c'
229   c'4 c' c' c'
230   \tempo 4 = 100
231   c'4 c' c' c'
232   c'4 c' c' c'
233   \tempo "" 4 = 30
234   c'4 c' c' c'
235   c'4 c' c' c'
236 }
237 @end lilypond
238
239 @item
240 In figured bass you can now also use a backslash through a number to
241 indicate a raised 6th step.
242
243 @lilypond[]
244 \new FiguredBass \figuremode { < 6\\ 5\\ > < 6/ > }
245 @end lilypond
246
247 @item
248 Arpeggios may now use ``parenthesis'' style brackets:
249
250 @lilypond[relative=1]
251 \override Arpeggio #'stencil = #ly:arpeggio::brew-chord-slur
252
253 % Note: does not work for cross-staff arpeggios.
254 \override Arpeggio #'X-extent = #ly:grob::stencil-width
255 <c g' c>2\arpeggio ~ c
256 @end lilypond
257
258 @item
259 Single-system scores are now naturally spaced instead of being
260 stretched to fill the line width.  This can be changed by setting
261 @code{ragged-right = ##f}.
262
263 @item
264 Enclosing text within boxes with rounded corners is now possible,
265 using the @code{\rounded-box} markup command.
266
267 @item
268 @command{lilypond-book} can run any program instead of @command{latex}
269 to guess the line width, thanks to @code{--latex-program} command line
270 option.
271
272 @item
273 Underlining is now possible with the @code{\underline} markup command.
274
275 @item
276 It is now possible to specify, using the @code{page-count} variable in
277 the paper block, the number of pages that will be used.
278
279 @item
280 A new page breaking function, @code{ly:minimal-breaking}, is dedicated
281 to books with many pages or a lot of text.
282
283 @item
284 A table of contents is included using @code{\markuplines \table-of-contents}.
285 Elements are added to it using the @code{\tocItem} command.
286
287 @item
288 Text spreading over several pages is entered using the
289 @code{\markuplines} keyword.  Builtin markup list commands, such as
290 @code{\justified-lines} or @code{\wordwrap-lines} may be used, and new
291 ones created using the @code{define-markup-list-command} Scheme macro.
292
293 @item
294 Particular points of a book may be marked with the @code{\label}
295 command.  Then, the page where these points are placed can be
296 referred to using the @code{\page-ref} markup command.
297
298 @item
299 Page breaking and page turning commands (@code{\pageBreak},
300 @code{\noPageBreak}, etc.) can be used at top-level, between scores and
301 top-level markups.
302
303 @item
304 The following options are now changed as a @code{-d} sub-option:
305 @code{--backend}, @code{--safe}, @code{--preview} and
306 @code{--no-pages} (which became @code{-dno-print-pages}).  The @code{-b}
307 option does not exist any more.
308
309 @item
310 Improved testing procedures now catch changes in CPU and memory
311 performance, page layout, MIDI results and warnings.  This helps to
312 reduce the number of regression errors during development, resulting
313 in more stable releases.
314
315 See @uref{INSTALL.html#Testing-LilyPond} for more information.
316
317 @item
318 Nested properties, such as @code{'details} in @code{Slur}, can be
319 reverted as well.  The syntax for this is
320
321 @example
322 \revert Slur #'(details closeness-factor)
323 @end example
324
325 @item
326 All line spanners are more flexible now in the configuration of
327 their end points.  This includes glissando, voice followers, text
328 crescendos and other text spanners.  The old syntax for setting
329 text on line spanners is no longer valid.
330
331 @lilypond[]
332 \relative c'' {
333   \override Glissando #'bound-details #'right #'text = \markup { \center-align \bold down }
334   \override Glissando #'bound-details #'right #'Y = #-4
335   \override Glissando #'bound-details #'right #'padding = #0.0
336   \override Glissando #'bound-details #'left #'arrow = ##t
337   \override Glissando #'bound-details #'left #'padding = #3.0
338   \override Glissando #'style = #'trill
339   \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods
340   \override Glissando #'minimum-length = #12
341   
342   c1 \glissando c'
343 }
344 @end lilypond
345
346 This feature was sponsored by Trevor Bača.
347
348 @item
349 The environment variable @code{LILYPONDPREFIX} has been renamed
350 @code{LILYPOND_DATADIR}.
351
352 @item
353 Notes or rests, such as a typical end note, that fill an entire
354 measure are preceded by some more space.
355
356 @lilypond[]
357 \relative c' {
358   \time 4/4
359   s1
360   c2. c4
361   \time 3/4
362   c2.
363 }
364 @end lilypond
365
366 @item
367 All @code{\score}s in a lilypond-book fragment are now inserted
368 into the document.  Also, toplevel markups don't result in an entire
369 page.
370
371 @item
372 Alterations (such as a sharp or flat) may now be arbitrary
373 fractions.  This allows some forms of microtonal music.  For example,
374 Turkish makam music uses 1/9th tone alterations.
375
376 @lilypondfile{makam-example.ly}
377
378 @item
379 Tie directions may be set with @code{^~} and @code{_~}.
380
381 @item
382 Tablature now supports harmonics and slides:
383
384 @lilypond[relative=1]
385 \new TabVoice {
386   <c g'\harmonic>4 d\2\glissando e2\2
387 }
388 @end lilypond
389
390 This feature was sponsored by Mike Amundsen
391
392 @item
393 Horizontal spacing now follows object outlines more accurately.
394 This allows tighter horizontal spacing.
395
396 @lilypond[]
397 {
398   \stemUp
399   c''4... ceses'! s16
400 }
401 @end lilypond
402
403 @item
404 Objects that belong outside of the staff are now positioned
405 automatically to avoid collisions.
406
407 @lilypond[relative=1]
408 c''4
409 \once \override TextScript #'self-alignment-X = #CENTER
410 a,4^"this doesn't collide with the c"
411 b4^"this goes above the previous markup"
412 a8_"this goes below the dynamic"
413 a8\f
414 @end lilypond
415
416 @item
417 Staves are spaced vertically using a skyline algorithm.  This helps
418 prevent uneven vertical spacing.
419
420 @lilypond[ragged-right]
421
422 %% todo: fix 'landscape PDF.
423 #(set-default-paper-size "a6")
424 \header {
425   tagline = ##f
426 }
427
428 \book {
429   \score {
430     {
431       a,,1
432       a'4 b' c'' d'' \break
433       \repeat unfold 2 { a'4 b' c'' d''}
434       b''''1
435     }
436   }
437 }
438 @end lilypond
439
440 @end itemize
441
442
443
444 @ifhtml
445 For older news, go to
446 @uref{http://lilypond.org/doc/v2.10/Documentation/topdocs/NEWS.html},
447 or @uref{../,go back} to the Documentation index.
448
449
450 @end ifhtml
451
452 @bye