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