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