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