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