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