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