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