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