]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/changes.tely
d6700d995af2adb4e7e8cda75eb12e3ad49c1475
[lilypond.git] / Documentation / changes.tely
1 \input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
2 @setfilename lilypond-changes.info
3 @settitle LilyPond Changes
4
5 @include macros.itexi
6
7 @ifhtml
8 @macro inputfileref{DIR,NAME}
9 @uref{../../\DIR\/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
10 @end macro
11 @macro usermanref{NAME}
12 @inforef{\NAME\,,../user/lilypond/lilypond}@c
13 @end macro
14 @end ifhtml
15
16 @ifnothtml
17 @macro inputfileref{DIR,NAME}
18 @file{\DIR\/\NAME\}@c
19 @end macro
20 @macro usermanref{NAME}
21 See user manual, \NAME\
22 @end macro
23 @end ifnothtml
24
25 @macro textanchor{NAME}
26 @html
27 <a name="\NAME\"></a>
28 @end html
29 @end macro
30
31
32 @documentencoding utf-8
33 @documentlanguage en
34 @afourpaper
35
36 @finalout
37
38 @node Top
39 @top New features in 2.13 since 2.12
40
41 @allowcodebreaks false
42
43 @itemize @bullet
44
45 @ignore
46
47 HINTS
48
49 * add new items at the top
50
51 * only show verbatim input for syntax/input changes
52
53 * try to be as brief possible in those cases
54
55 * don't try to provide real-world examples, they often get too big,
56 which scares away people.
57
58 * Write complete sentences.
59
60 * only show user-visible changes.
61
62 @end ignore
63
64 @item
65 Dots can be added to the table of contents items using:
66 @example
67 \paper @{
68   tocItemMarkup = \tocItemWithDotsMarkup
69 @}
70 @end example
71
72 @item
73 New markup commands @code{\pattern} and @code{\fill-with-pattern} are available.
74 @lilypond
75 \markup \column {
76   \pattern #3 #Y #0.3 \flat
77   \null
78   \pattern #7 #X #2 \flat
79   \override #'(line-width . 40) \fill-with-pattern #1 #CENTER . left right
80 }
81 @end lilypond
82
83 @item
84 A minimal composer toolkit of modal transformations is provided.
85 A motif may be @notation{transposed}, @notation{inverted} and/or
86 converted to its @notation{retrograde} within any scale.
87
88 @lilypond
89 pentatonicScale = \relative a' { a c d f g }
90 motif = \relative c'' { d8 c f,4 <a f'> <a f'> }
91
92 \new Staff <<
93   {
94     \partial 4
95     \pentatonicScale
96     \motif
97     \modalTranspose c a, \pentatonicScale \motif
98     \modalInversion d'' a' \pentatonicScale \motif
99     \retrograde \motif
100   }
101   {
102     \partial 4
103     s4^"pentatonic scale"
104     s1
105     s1^"motif"
106     s1^"transposition"
107     s1^"inversion"
108     s1^"retrograde"
109   }
110 >>
111 @end lilypond
112
113 @item
114 Black mensural notation has minimal support.
115
116 @item
117 Support for obliqua shapes within white mensural ligatures enhanced.
118 @lilypond
119 \context MensuralStaff
120 {
121   \clef "petrucci-c3"
122   \[
123     \override NoteHead #'style = #'semipetrucci
124     c'\maxima
125     \override NoteHead #'style = #'blackpetrucci
126     a\breve
127     \revert NoteHead #'style
128     \override NoteHead #'ligature-flexa = ##t
129     \override NoteHead #'flexa-width = #3
130     g
131     g'
132     \override NoteHead #'flexa-width = #5
133     c'
134     d'
135     \revert NoteHead #'style
136     c'\longa
137   \]
138 }
139 @end lilypond
140
141 @item
142 Compound time signatures are now supported by the @code{\compoundMeter} command,
143 which can be used instead of @code{\time}:
144 @lilypond
145 \relative c'' {
146   \compoundMeter #'(3 1 8)
147   c8 c c c
148   \compoundMeter #'((2 8) (5 8))
149   c8 c c c c c c
150   \compoundMeter #'((1 2 3 8) (1 4) (3 8))
151   c8 c c c c c c4 c8 c c
152 }
153 @end lilypond
154
155 @item
156 Lyrics above a staff must have their @code{staff-affinity} set to
157 @code{DOWN} or must have their @code{alignAboveContext} property
158 set in order to be properly aligned.  For more information, see
159 @ruser{Placing lyrics vertically}.
160
161 @item
162 @code{stringTunings} property values have changed from a list of
163 semitones above middle C to a list of LilyPond pitch values.
164 convert-ly will handle the change automatically where the value
165 of @code{stringTunings} is set to a Scheme constant value.
166
167 New commands @code{makeStringTuning} and @code{contextStringTuning}
168 allow the creation of string tunings in the form of a Lilypond
169 chord construct.
170
171 @item
172 By using @code{\cueDuringWithClef}, cue notes can now also have their own
173 clef, which is correctly reset at the end of the cue notes.  At the begin
174 of each line, the standard clef is still displayed, but the cue clef is
175 shown after the time/key signature in smaller size.
176 @lilypond
177 vI = \relative c'' { \clef "treble" \repeat unfold 40 g4 }
178 \addQuote vIQuote { \vI }
179
180 Solo = \relative c {
181   \clef "bass"
182   \cueDuringWithClef #"vIQuote" #DOWN #"treble" { R1 } |
183   c4 \cueDuringWithClef #"vIQuote" #DOWN #"treble" {
184     r4 r2 |
185     r4
186   } c4 c2 |
187   \cueDuringWithClef #"vIQuote" #DOWN "soprano" { R1*2 \break R1 } |
188   c1
189 }
190
191 \score {
192   <<
193     \new Staff \new Voice \Solo
194   >>
195 }
196 @end lilypond
197
198
199 @item
200 Note names can be selected with a new
201 @code{@bs{}language "italiano"} command, which
202 can be used in safe mode.  The old
203 @code{@bs{}include "italiano.ly"} syntax is
204 still supported for now, but will be deprecated
205 in the future.
206
207 @item
208 autobeaming is now disabled by @code{\cadenzaOn} and enabled by
209 @code{\cadenzaOff}.  Beaming in cadenzas should be indicated manually.
210 Also, if a cadenza is used in a piece with autobeaming disabled, it
211 will need to be disabled again after the cadenza.
212
213 @item
214 The user is now able to specify the name of the predefined fretboard
215 table.  This allows the use of multiple tables, with switching between them
216 based on user input.
217
218 @item
219 The part-combiner's decision to combine/not combine notes can now be customized
220 @lilypond[quote,relative=2]
221 \partcombine
222 \relative c' { c2 \partcombineApart c | \partcombineChordsOnce e' e }
223 \relative c' { c2 \partcombineApart c | c c }
224 @end lilypond
225
226 @item
227 Tablature staves show fret numbers only by default. To get the
228 former style, @code{\tabFullNotation} is provided.
229
230 @item
231 Funk-style and Walker-style shape notes have been added.
232
233 @item
234 Rests will no longer keep a staff alive if @code{\RemoveEmptyStaffContext}
235 is used.
236
237 @item
238 New option @code{-dinclude-settings=INCLUDEFILE.ly}, which causes lilypond
239 to include the given file before the score is processed. This allows the
240 user to change global settings without the need to change the score itself.
241 That way, several different editions/version (e.g. different page sizes)
242 can be generated from a file without having to modify the score for each
243 version.
244
245 @item
246 The autobeaming settings syntax has been changed.  beatLength,
247 beatGrouping, beamSettings, and measureGrouping have all been eliminated.
248 Autobeaming is now controlled by baseMoment, beatStructure, and
249 beamExceptions.  Default settings for each of these properties can be
250 stored for any time signature in time-signature-settings, so that
251 when the time signature is changed, the autobeaming will automatically
252 change.  The new syntax should be much easier and require fewer
253 overrides.
254
255 @item
256 The SVG backend has optional support for
257 @uref{http://www.w3.org/Submission/WOFF, WOFF fonts}.  Using the Scheme
258 option @code{-d svg-woff} together with the SVG backend selection
259 @code{-d backend=svg}, produces SVG output with CSS WOFF font selection.
260
261 @item
262 The LilyPond G clef has been rotated 1.5 degrees clockwise for improved
263 balance.  The old and new versions can be compared by looking at the
264 documentation:
265 @uref{http://lilypond.org/doc/v2.12/Documentation/user/lilypond/The-Feta-font.html#Clef-glyphs,
266 old version},
267 @uref{http://lilypond.org/doc/v2.13/Documentation/notation/the-feta-font.html#Clef-glyphs,
268 new version}.
269
270
271 @item
272 Text crescendo spanners can now be added directly using @code{\cresc},
273 @code{\dim} and @code{\decresc}.
274 @lilypond[quote,relative=2]
275 c4\cresc c c c\f |
276 c4\dim c c c\!
277 @end lilypond
278
279
280 @item
281 The documented syntax of @samp{lilypond} environments in the @LaTeX{}
282 mode of @command{lilypond-book} has been changed to conform with
283 standard @LaTeX{} syntax: options now come after the environment name:
284 @example
285 \begin@{lilypond@}[@var{options}] @dots{}
286 @end example
287
288 The previous syntax with options after @samp{\begin} is still accepted
289 by @command{lilypond-book} but deprecated.  Something like
290 @example
291 sed -i '/begin\[/s/begin\(\[[^]]*]\)\(@{lilypond@}\)/begin\2\1/'
292 @end example
293
294 might do the trick for conversion.
295
296 @item
297 Aesthetics of shape note heads have been enhanced.  Variable line thicknesses
298 have been implemented.  All note widths have been made consistent.
299 Minor shape note commands that use the relative major key for scale steps
300 have been added.
301
302 @item
303 A variant of the Segno sign is provided:
304 @lilypond[quote,relative=2]
305 c4 d e f \bar "S"
306 g4 f e d
307 @end lilypond
308
309 @item
310 Context modifications (@code{\with} blocks) can be stored in variables and
311 inserted into contexts or other @code{\with} blocks:
312 @lilypond[quote,verbatim]
313 coloredheads = \with { \override NoteHead #'color = #red }
314 noclef = \with { \remove "Clef_engraver" }
315 \score {
316   \new Staff {
317     \new Voice \with { \coloredheads } \relative c' { c4 e g c }
318   }
319   \layout {
320     \context {
321       \Staff
322       \noclef
323     }
324   }
325 }
326 @end lilypond
327
328 @item
329 A half-open articulation was added:
330 @lilypond[quote,relative=2]
331 c4\halfopen
332 @end lilypond
333 This is sometimes used to indicate half-open hi-hats.
334
335 @item
336 The Unicode Bidirectional Algorithm is now fully supported for
337 single-line markup due to enhanced integration with Pango.
338
339 @item
340 LilyPond is now licensed under the GNU GPL v3+.
341
342 @item
343 In tablature, frets can be indicated with labels other than numbers:
344
345 @lilypond[verbatim,quote,relative=1]
346 \new TabStaff
347 \with {
348   stringTunings = #`(,(ly:make-pitch 1 3 NATURAL)
349                      ,(ly:make-pitch 1 1 NATURAL)
350                      ,(ly:make-pitch 0 5 NATURAL)
351                      ,(ly:make-pitch 0 3 NATURAL)
352                      ,(ly:make-pitch 0 1 NATURAL)
353                      ,(ly:make-pitch -1 5 NATURAL))
354   tablatureFormat = #fret-letter-tablature-format
355 }
356 \new TabVoice {
357   \set fretLabels = #`(,(markup #:with-color red "a")
358                        "b"
359                        ,(markup #:italic #:smaller "c"))
360   <f d>4. <bes>8 <g e>4
361 }
362 @end lilypond
363
364 @item
365 Layout objects can be printed over a white background, which whites-out objects
366 in lower layers which lie beneath:
367
368 @lilypond[verbatim,quote,relative=1]
369 \time 3/4
370 \override Staff.StaffSymbol #'layer = #4
371 \once \override Tie #'layer = #2
372 b'2.~
373 \once \override Staff.TimeSignature #'whiteout = ##t
374 \once \override Staff.TimeSignature #'layer = #3
375 \time 5/4
376 b4
377 @end lilypond
378
379 @item
380 Chords can be repeated using the @code{q} shortcut:
381
382 @lilypond[verbatim,quote,relative=2]
383 <c e g>8.-^ q16 q4-^
384 @end lilypond
385
386 @item
387 With two-sided mode, margins for odd and even pages can be set using
388 @code{inner-margin} and @code{outer-margin}:
389
390 @example
391 \paper @{
392   two-sided = ##t
393   inner-margin = 10 \mm
394   outer-margin = 20 \mm
395 @}
396 @end example
397
398 @item
399 Paper margin defaults, as specified in @file{ly/paper@/-defaults-init.ly}, apply
400 to the default paper size (a4) and are automatically scaled according to the
401 paper size chosen.
402
403 @item
404 All combinations of @code{left-margin}, @code{right-margin} and
405 @code{line-width} work now.  There is no more need to set @code{line-width}
406 manually unless you explicitly want to.
407
408 @item
409 Support for using an alternative music font, such as Gonville, is now
410 added.
411
412 @item
413 In addition to the existing @code{\hspace} markup command,
414 a new @code{\vspace} command has been added to provide an easy
415 and flexible way to add vertical space in markups.
416
417 @item
418 The direction of manual beams can be set with @code{^[} and @code{_[}.
419
420 @item
421 A version of the breve note head has been added with two vertical lines on each side.
422 @lilypond[quote,relative=2]
423 \time 4/2
424 \override Staff.NoteHead #'style = #'altdefault
425 c\breve | b\breve
426 @end lilypond
427
428 @item
429 Instrument names and vocal names now take into account the extent of
430 system start delimiters in other staves for their positioning,
431 resulting in improved default alignment for left-, center- and
432 right-aligned names.
433 @lilypond[quote,indent=18\mm]
434 <<
435   \new StaffGroup <<
436     \new GrandStaff <<
437       \new Staff {
438         \set Staff.instrumentName = #"Piccolo"
439         c''1
440       }
441       \new Staff {
442         \set Staff.instrumentName = #"Flute"
443         c''1
444       }
445     >>
446     \new Staff {
447       \set Staff.instrumentName = #"Bassoon"
448       \clef tenor
449       c'1
450     }
451   >>
452   \new PianoStaff <<
453     \set PianoStaff.instrumentName = #"Piano"
454     \context Staff = "up" {
455       c'1
456     }
457     \context Staff = "down" {
458       \clef bass
459       c1
460     }
461   >>
462 >>
463 @end lilypond
464
465 @item
466 Braces in markup can now be selected by point size using the markup commands
467 @code{\left-brace} and @code{\right-brace}.
468 @lilypond[quote]
469 \markup {
470   \left-brace #35
471   \hspace #2
472   \right-brace #45
473 }
474 @end lilypond
475
476 @item
477 Intermediate .ps files which are created by LilyPond
478 during compilation are now deleted by default.  To keep them,
479 add the following line to your input files:
480 @example
481 #(ly:set-option 'delete-intermediate-files #f)
482 @end example
483
484 @item
485 Dashed and dotted slurs, phrasing slurs, and ties
486 have been made variable thickness, and
487 partially dashed slurs are now available:
488 @lilypond[quote,relative=2]
489 \slurDashed
490 c4( d e f) |
491 \slurDotted
492 g4( f e d) |
493 \slurHalfDashed
494 c4( d e f)
495 @end lilypond
496
497 @item
498 An eyeglasses markup was added, indicating strongly to look at the
499 conductor for instructions:
500 @lilypond[quote,relative=2]
501 \mark \markup { \eyeglasses }
502 c4_\markup { \eyeglasses }
503 @end lilypond
504
505 @item
506 A snap-pizzicato (also known as Bartok-pizzicato) articulation was added:
507 @lilypond[quote,relative=2]
508 c4\snappizzicato
509 @end lilypond
510
511 @item
512 Tuplet number formatting functions are now available to print other fractions
513 and to add notes to the number or fraction:
514 @lilypond[quote,relative=2]
515 \once \override TupletNumber #'text =
516   #(tuplet-number::non-default-tuplet-denominator-text 7)
517 \times 2/3 { c4. c4. c4. c4. }
518
519 \once \override TupletNumber #'text =
520   #(tuplet-number::non-default-tuplet-fraction-text 12 7)
521 \times 2/3 { c4. c4. c4. c4. }
522 \once \override TupletNumber #'text =
523   #(tuplet-number::append-note-wrapper
524     (tuplet-number::non-default-tuplet-fraction-text 12 7) "8")
525 \times 2/3 { c4. c4. c4. c4. }
526
527 \once \override TupletNumber #'text =
528   #(tuplet-number::append-note-wrapper tuplet-number::calc-denominator-text "4")
529 \times 2/3 { c8 c8 c8 c8 c8 c8 }
530 \once \override TupletNumber #'text =
531   #(tuplet-number::append-note-wrapper tuplet-number::calc-fraction-text "4")
532 \times 2/3 { c8 c8 c8 c8 c8 c8 }
533
534 \once \override TupletNumber #'text =
535   #(tuplet-number::fraction-with-notes "4." "8")
536 \times 2/3 { c4. c4. c4. c4. }
537 \once \override TupletNumber #'text =
538   #(tuplet-number::non-default-fraction-with-notes 12 "8" 4 "4")
539 \times 2/3  { c4. c4. c4. c4. }
540 @end lilypond
541
542 @item
543 FretBoards now have a chordChanges property to keep repeated FretBoard objects
544 from being typeset.
545
546 @item
547 The vertical spacing engine has been drastically changed, making
548 it more flexible and easier to control.
549 The spacing between staves within a system can now change
550 to better use the space on the page.
551 User-defined contexts may participate in this flexible spacing,
552 depending on how their @code{staff-affinity} is defined.
553 Some page formatting variables (@code{page-top-space},
554 @code{between-system-space -padding}, and
555 @code{before- between- after-title-space}) have been replaced
556 by flexible vertical dimensions.
557
558 @end itemize
559
560
561
562 @ifhtml
563 For older news, go to
564 @uref{http://lilypond.org/doc/v2.12/Documentation/topdocs/NEWS.html},
565 @uref{http://lilypond.org/doc/v2.10/Documentation/topdocs/NEWS.html},
566 or @uref{../,go back} to the Documentation index.
567
568
569 @end ifhtml
570
571 @bye