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