]> git.donarmstrong.com Git - lilypond.git/blob - NEWS.txt
Merge tag 'upstream/2.18.0' into debian-experimental
[lilypond.git] / NEWS.txt
1 New features in 2.18 since 2.16
2 *******************************
3
4    * There is now a new context type called `NullVoice' which, while not
5      appearing in the printed output, can be used to align lyrics.
6      This can be particularly convenient when used in parallel with a
7      `\partcombine' construct.
8
9           soprano = \relative c' { c e g c }
10           alto = \relative c' { a c e g }
11           verse = \lyricmode { This is my song }
12
13           \score {
14             \new Staff <<
15               \partcombine \soprano \alto
16               \new NullVoice = "aligner" \soprano
17               \new Lyrics \lyricsto "aligner" \verse
18             >>
19             \layout {}
20           }
21            [image of music]
22
23
24    * Several articulations can be put into a single variable or
25      returned from an event function:
26
27           sempreStacc = -. ^\markup \italic sempre
28           \relative { c''4\sempreStacc c c c }
29            [image of music]
30
31
32    * The baseline of score markups is now taken from the reference
33      point (usually the middle of the staff) of the first bottom system
34      rather than the top of the bounding rectangle.  The following
35
36           \markup {
37             violin: \score { \new Staff { <g d' a' e''>1 }
38                              \layout { indent=0 } } ,
39             cello: \score { \new Staff { \clef "bass" <c, g, d a> }
40                             \layout { indent=0 } }
41           }
42            [image of music]
43
44
45      previously looked like
46
47           [image of music]
48
49
50      without a reliable way to get both scores to line up.
51
52    * LilyPond no longer automatically infers a `\defaultchild' context
53      in a context definition with `\accepts' clauses.  Any context
54      definition without an explicit or inherited `\defaultchild'
55      definition counts as a `Bottom' context and will be eligible for
56      rhythmic events and overrides without causing the implicit
57      creation of other contexts.  Be sure to specify a `\defaultchild'
58      for non-`Bottom' contexts when defining them from scratch.
59
60    * There is now extensive support for both discant and bass accordion
61      register symbols in the `scm accreg' module, see *note Accordion
62      Registers: (lilypond-notation)Accordion Registers.
63
64           #(use-modules (scm accreg))
65           \new PianoStaff
66           <<
67             \new Staff \relative
68             { \clef "treble"  \discant "10"
69               r8 s32 f'[ bes f] s e[ a e] s d[ g d] s16 e32[ a]
70               \discant "121"
71               << { r16 <f bes> r <e a> r <d g> } \\
72                  { d r a r bes r } >> |
73               <cis e a>1
74             }
75             \new Staff \relative
76             { \clef "treble"  \freeBass "1"
77               r8 d'32 s16. c32 s16. bes32 s16. a32[ cis] s16
78               \clef "bass"  \stdBass "Master"
79               << { r16 <f, bes d>^"b" r <e a c>^"am" r <d g bes>^"gm" |
80                    <e a cis>1^"a" } \\
81                  { d8_"D" c_"C" bes_"B" | a1_"A" }
82               >>
83             }
84           >>
85            [image of music]
86
87
88    * New commands `markLengthOn' and `markLengthOff' control the
89      allowance of horizontal space for tempo and rehearsal marks.
90
91           [image of music]
92
93
94    * Rehearsal marks at the beginning of a line are now placed to the
95      right of the clef and key signature by default.  As in previous
96      versions, the `break-alignable-interface' controls the behavior.
97
98           [image of music]
99
100
101    * Decimal numbers can now be written directly in music, without a
102      hash sign.  Together with the previous change in the way object
103      properties are specified, the code to change the length of stems
104      has changed from this:
105      \override Stem #'length = #5.6
106      e' f' g' a'
107      to this:
108      \override Stem.length = 5.6
109      e' f' g' a'
110
111      One has to write a digit on both sides of the dot - values like
112      `4.' or `-.3' are not allowed.
113
114      Decimal fractions are also not accepted in `\chordmode'.
115
116    * A number of shorthands like `(', `)', `|', `[', `]', `~', `\(',
117      `\)' and others can now freely be redefined like normal commands.
118      An example would be
119
120           "\\{" = (
121           "\\}" = )
122           "(" = \melisma
123           ")" = \melismaEnd
124
125           \new Staff <<
126             \relative c' {
127               c8 \{ d e f \} % slurred
128               g ( a b c ) % no slur, but with melisma
129               c,1 \bar "|."
130              }
131              \addlyrics { Li -- ly -- pond. }
132           >>
133            [image of music]
134
135
136    * The articulation shorthand for `\staccatissimo' has been renamed
137      from `-|' to `-!'.
138
139    * Tempo change ranges are now written as `\tempo 4 = 60 - 68' rather
140      than `\tempo 4 = 60 ~ 68'.
141
142    * Grob `OctavateEight' was renamed to `ClefModifier'.  Related
143      context properties were renamed from `xxxOctavationyyy' to
144      `xxxTranspositionyyy'.
145
146    * There is a new `\absolute' command explicitly marking music as
147      being entered in absolute pitch.  While this has been the default
148      previously, an explicit `\absolute' also prevents reinterpretation
149      when the passage is placed inside of `\relative':
150
151           \relative c { c'4 \absolute { f'' g'' } c }
152            [image of music]
153
154
155    * When `\relative' is used without an explicit reference pitch, the
156      reference pitch now is the middle of the first octave, making the
157      first entered pitch indistinguishable from absolute pitch.
158      Previously, omitting the reference pitch would have lead to a
159      default of `c''.  Since that choice was somewhat arbitrary,
160      recommended usage was to always specify the reference pitch.
161
162    * A new command `\single' can be used for converting a property
163      override into a tweak to be applied on a single music expression:
164
165           <a \single\voiceTwoStyle e' a>1
166            [image of music]
167
168
169    * Two ways of letting graphical objects not appear in the output are
170      overriding its `transparent' property with `#t' (retaining the
171      original spacing) or overriding its `stencil' property with `#f'
172      (not using any space at all).  Those two operations now have the
173      shorthands `\hide' and `\omit', respectively.  They can either be
174      given a music expression to tweak, or the name of a graphical
175      object for which an override should be created (for specifying
176      both, use `\single' on the override form):
177
178           \new Staff \with { \omit Clef }
179           \relative c'' <a e' \hide a>1
180            [image of music]
181
182
183    * A new command `\temporary' can be applied to overrides in order to
184      not have them replace previous property settings.  If a `\revert'
185      is applied to the same property subsequently, the previous setting
186      reappears:
187
188           \override NoteHead.color = #red c4
189           \override NoteHead.color = #green d
190           \revert NoteHead.color e2
191           \override NoteHead.color = #red c4
192           \temporary\override NoteHead.color = #green d
193           \revert NoteHead.color e
194           \revert NoteHead.color c
195            [image of music]
196
197
198      This is mainly useful for writing music functions that need to
199      have some property changed just for the duration of the function.
200
201    * `\tag', `\removeWithTag', and `\keepWithTag' can now accept a list
202      of symbols rather than just a single symbol for marking, removing,
203      and keeping music with any of multiple tags.  This is particularly
204      important for `\keepWithTag' since one cannot achieve the same
205      effect by using multiple consecutive `\keepWithTag' commands.
206
207    * The `-d old-relative' option has been removed.  Not actually
208      accessible from the command line any more, its remaining use was
209      for interpretating `\relative' in LilyPond files converted
210      automatically from version 1.8 or older.  It is unclear how much
211      of this was actually still operative.
212
213    * The meaning of `instrumentTransposition' has been reversed.  After
214      \set instrumentTransposition = #{ b #}
215      a written `c'' now sounds like `b'.  Previously, this would have
216      been the other way round.  This and the following change should
217      make dealing with transposing instruments more straightforward.
218
219    * The music generated by `\set' and `\override' commands is no
220      longer affected by `\transpose'.  The main consequence is that
221      `\transpose' will transpose audible/concert pitch and printed
222      pitch by the same amount even when the transposed music contains
223      `\transposition'.  Previously,
224      \transpose c' f' \transposition bes'
225      was equivalent to `\transposition f''.  Now it stays equivalent to
226      `\transposition bes''.
227
228    * When checking for collisions, LilyPond no longer treats objects as
229      rectangles.  Instead, the actual shape of objects is approximated
230      using an integral-like approach.  This generally results in more
231      even and snug positioning of objects and systems:
232
233      [image of music]
234
235      Previously, the above snippet looked like this:
236
237      [image of music]
238
239      Affected objects include `Accidentals', `Beams', `Clefs',
240      `Dynamics', `FiguredBass', `Flags', `Glissandos', `Lyrics',
241      `MetronomeMarks', `OttavaBrackets', `Pedals', `RehearsalMarks',
242      `Rests', `Scripts', `TextScripts', `Ties', `Tuplets' and
243      `VoltaBrackets'.
244
245    * Tuplets are now created with the `\tuplet' command, which takes a
246      fraction `T/N' to specify that T notes are played in the time
247      usually allowed for N. One `\tuplet' command can create several
248      tuplet groups if their duration is typed after the fraction.
249
250           \tuplet 3/2 { c8 d e } \tuplet 3/2 { f e d } c2
251           \tuplet 3/2 4 { c8 d e f e d } c2
252            [image of music]
253
254
255      The `\times' command with its inverted fraction order `N/T' is
256      still available.
257
258    * Introducing two new markup-commands; `\draw-dashed-line' and
259      `\draw-dotted-line'.
260
261      The dashed-line extends to the whole length given by DEST, if
262      `full-length' is set to `#t' (this is the default) without any
263      space at the beginning or end.  `off' will then be altered to fit.
264      To insist on the given (or default) values of `on', `off' use
265      `\override #'(full-length . #f)'.  Manual settings for `on', `off'
266      and `phase' are possible.
267
268      The dotted-line always extends to the whole length given by DEST,
269      without any space at the beginning or end.  Manual settings for
270      `off' are possible to get larger or smaller space between the dots.
271      The given (or default) value of `off' will be altered to fit the
272      line-length.
273
274           \markup {
275             \draw-dashed-line #'(5.1 . 2.3)
276             \override #'(on . 0.3)
277             \override #'(off . 0.5)
278             \draw-dashed-line #'(5.1 . 2.3)
279             \draw-dotted-line #'(5.1 . 2.3)
280             \override #'(thickness . 2)
281             \override #'(off . 0.2)
282             \draw-dotted-line #'(5.1 . 2.3)
283           }
284            [image of music]
285
286
287    * Starting with version 2.17.10, error messages or the `textedit'
288      URI used for point-and-click functionality specify column numbers
289      starting with 1 rather than 0.  The byte offset (also part of
290      `textedit' URIs) still starts at 0.
291
292    * The `\clef' command supports optional transposition:
293
294           \clef "treble_(8)"
295           c2 c
296           \clef "bass^[15]"
297           c2 c
298            [image of music]
299
300
301    * The LilyPond syntax of dot-separated words `Voice.Accidental' has
302      been made interchangeable with `#'(Voice Accidental)', a Scheme
303      list of symbols.  As one result, code like
304      \override Voice.TextSpanner #'(bound-details left text) = "rit."
305      is now equivalent to
306      \override Voice.TextSpanner bound-details.left.text = "rit."
307      or even
308      \override #'(Voice TextSpanner) bound-details.left.text = "rit."
309
310    * Grob and grob property path no longer need to be specified as two
311      separate arguments to commands like `\override' and `\revert',
312      allowing for the syntax
313      \override Voice.TextSpanner.bound-details.left.text = "rit."
314      Since complementary music functions like `\overrideProperty'
315      cannot support forms with and without separating space at the same
316      time, using a single dotted path is now the preferred form.
317      Specifying grob path and grob property path separately, currently
318      still supported with `\override' and `\revert' for compatibility
319      reasons, is deprecated.
320
321    * Due to words now being accepted as symbol function arguments, the
322      interfaces of `\accidentalStyle', `\alterBroken', `\footnote' and
323      `\tweak' had to be redesigned where optional symbol arguments were
324      involved.  Please check the respective music function
325      documentation for details.
326
327    * Several commands now accept symbol lists (conveniently entered as
328      dot-separated words) for various kinds of arguments.  These
329      include `\accidentalStyle', `\alterBroken', `\footnote', `\hide',
330      `\omit', `\overrideProperty', `\shape', and `\tweak'.
331
332    * The bar line user interface has changed. Bar glyphs now resemble
333      the appearance of the bar line, so a left repeat sign has to be
334      coded as `.|:'. The command `\defineBarLine' provides an easy way
335      to define additional bar line styles.
336
337    * Accidentals in the key signature may be printed in octaves other
338      than their traditional positions, or in multiple octaves.
339
340           [image of music]
341
342
343
344
345 \1f
346 Local Variables:
347 coding: utf-8
348 End: