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