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