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