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