]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/topdocs/NEWS.texi
* lily/spacing-spanner.cc (note_spacing): don't make longer
[lilypond.git] / Documentation / topdocs / NEWS.texi
1 \input texinfo @c -*-texinfo-*-
2 @setfilename NEWS.info
3 @settitle NEWS
4
5 @node Top, , , 
6 @top
7
8 @chapter New features in 2.0 since 1.8
9
10 @itemize
11
12 @item
13 Crescendos can now be drawn dotted or dashed.
14
15 @item
16 Quarter tones are now supported. They are entered by suffixing
17 @code{ih} for a half-sharp and @code{eh} for a half-flat. Hence, the
18 following is an ascending list of pitches:
19
20 @example
21   ceses ceseh ces ceh c cih cis cisih cisis
22 @end example
23
24 @item
25 The following constructs have been removed from the syntax:
26
27 @example
28   \duration #SCHEME-DURATION
29   \pitch #SCHEME-PITCH
30   \outputproperty @var{func} @var{symbol} = @var{value}
31 @end example
32
33 For @code{\outputproperty}, the following may be substituted:
34
35 @example
36    \applyoutput #(outputproperty-compatibility @var{func}
37                   @var{symbol} @var{value}) 
38 @end example 
39
40 @item
41 Clefs may now be transposed arbitrarily, for example
42
43 @example
44   \clef "G_8"
45   \clef "G_15"
46   \clef "G_9"
47 @end example
48
49
50 @item
51 The syntax for chords and simultaneous music have changed.
52 Chords are entered as
53
54 @example
55    <@var{pitches}>
56 @end example
57
58 while simultaneous music is entered as
59
60 @example
61    <<@var{..music list..}>>
62 @end example
63
64 In effect, the meanings of both have been swapped relative to their 1.8
65 definition.  The syntax for lists in @code{\markup} has changed
66 alongside, but figured bass mode was not  changed, i.e.:
67
68 @example
69   \markup @{ \center <@var{..list of markups..}> @}
70   \figure @{ <@var{figures}> @}
71 @end example
72
73 As chords the more often used than simultaneous music, this change will
74 save keystrokes.
75
76 @item
77 Each music expression can now be tagged, to make different printed
78 versions from the same music expression.  In the following example,
79 we see two versions of a piece of music, one for the full score, and
80 one with cue notes for the instrumental part:
81
82 @example
83 << \tag #'part <<
84      @{ c4 f2 g4 @}      % in the part, we have cue-notes  
85      \\ R1 >>
86   \tag #'score R1  % in the score: only a rest
87 >>
88 @end example
89  
90 The same can be applied to articulations, texts, etc.: they are
91 made by prepending
92
93 @example
94         -\tag #@var{your-tags} 
95 @end example
96
97 to an articulation, for example, 
98
99 @example
100         c4-\tag #'with-fingerings -4 -\tag #'with-strings \6
101 @end example
102
103 This defines a note, which has a conditional fingering and a
104 string-number indication.
105
106 @item
107 The settings for chord-fingering are more flexible. You can specify a
108 list where fingerings may be placed, eg.
109
110 @example
111         \property Voice.fingeringOrientations = #'(left down)
112 @end example
113
114 This will put the fingering for the lowest note below the chord, and the
115 rest to the left.
116
117 @item
118 The script previously known as @code{ly2dvi} has been renamed to
119 @code{lilypond}. The binary itself is now installed as
120 @code{lilypond-bin}.
121
122 @item
123 Markup text (ie. general text formatting) may now be used for lyrics too. 
124
125 @item
126 Two new commands for grace notes have been added, @code{\acciaccatura}
127 and @code{\appoggiatura},
128
129 @example
130   \appoggiatura f8 e4
131   \acciaccatura g8 f4
132 @end example
133
134 Both reflect the traditional meanings of acciaccatura and appogiatura,
135 and both insert insert a slur from the first grace note to the main
136 note.
137
138 @item 
139 Layout options for grace notes are now stored in a context property,
140 and may now be set separately from musical content.
141
142 @item
143 The @code{\new} command will create a context with a unique
144 name automatically. Hence, for multi-staff scores, it is no longer
145 necessary to invent arbitrary context names. For example, a two-staff
146 score may be created by
147
148 @example
149   \simultaneous @{
150     \new Staff @{ @var{notes for 1st staff} @}
151     \new Staff @{ @var{notes for 2nd staff} @}
152   @}
153 @end example
154
155
156
157 @item
158 Octave checks make octave errors easier to correct.
159 The syntax is 
160
161 @example
162   \octave @var{pitch}
163 @end example
164
165 This checks that @var{pitch} (without octave) yields @var{pitch} (with
166 octave) in \relative mode. If not, a warning is printed, and the
167 octave is corrected.
168
169 @item
170 All articulations must now be entered postfix. For example,
171
172 @example
173         c8[( d8]) 
174 @end example
175
176 @noindent
177 is a pair of beamed slurred eighth notes.
178
179 @item
180 The definition of @code{\relative} has been simplified.  Octaves are
181 now always propagated in the order that music is entered. In the
182 following example,  
183
184 @example
185   PRE
186   \repeat "unfold" 3  BODY \alternative @{ ALT1 ALT2 @}
187   POST
188 @end example
189
190 @noindent
191 the octave of BODY is based on PRE, the starting octave of ALT1 on
192 BODY, the starting octave of ALT2 on ALT1, and the starting octave of
193 POST on ALT2.
194
195 The same mechanism is used for all other music expressions, except the
196 chord. Backwards compatibility is retained through a special program option,
197 which is set through 
198
199 @example
200   #(ly:set-option 'old-relative)
201 @end example
202
203 @item
204 Windows users can double click a @code{.ly} file to process and view
205 it automagically through the new @code{lily-wins} frontend.
206
207 @end itemize
208
209
210
211
212 @chapter New features in 1.8 since 1.6
213
214 @itemize
215
216 @item 
217 The chord entry code has been completely rewritten. It is now
218 cleaner and more flexible.
219
220 @item 
221 A new syntax has been added for text entry.  This syntax is more
222 friendly than the old mechanism, and it is implemented in a more
223 robust and modular way. For more information, refer to the section on
224 "Text markup" in the notation manual.
225
226 @item 
227 The integration of the input language and Scheme has been made deeper:
228 you can now use LilyPond identifiers in Scheme, and use Scheme
229 expressions instead of LilyPond identifiers.
230
231 @item 
232 The internal representation of music has been cleaned up completely
233 and converted to Scheme data structures.  The representation may be
234 exported as XML.
235
236 @item 
237 A new uniform postfix syntax for articulation has been introduced.
238 A beamed slurred pair of eighth notes can be entered as
239
240 @example
241         c8-[-( d8-]-) 
242 @end example
243
244 In version 2.0, postfix syntax will be the only syntax
245 available, and the dashes will become optional.
246
247 This will simplify the language: all articulations can be entered as
248 postfix, in any order.
249
250 @item 
251 A new syntax has been added for chords:
252
253
254 @example
255         << PITCHES >>
256 @end example 
257
258 It is not necessary to update files to this syntax, but it will be for
259 using LilyPond version 2.0.  In version 2.0, this syntax will be
260 changed to
261
262 @example
263         < PITCHES >
264 @end example
265
266 for chords, and
267
268 @example
269         \simultaneous @{ .. @} 
270 @end example
271
272 for simultaneous music.
273
274 To convert your files from <PITCHES> to <<PITCHES>>, use the script
275 included in buildscripts/convert-new-chords.py
276
277 This change was introduced for the following reasons
278
279 @itemize @bullet
280 @item
281 It solves the "start score with chord" problem, where you have to
282   state \context Voice explicitly when a chord was the start of a
283   Staff or Score.
284 @item
285 With the new syntax, it is possible to distinguish between
286   articulations (or fingerings) which are for a single chord note,
287   and which are for the entire chord. This allows for per-note
288   fingerings, and is more logical on the whole.
289 @end itemize
290
291 @item 
292 User code may now be executed during interpreting.  The syntax for
293 this code is
294
295 @example
296         \applycontext #SCHEME-FUNCTION
297 @end example
298
299 @item 
300 User code may now be executed on arbitrary grobs during interpreting.
301 The syntax for this feature is
302
303 @example
304         \applyoutput #SCHEME-FUNCTION
305 @end example
306
307 @noindent
308 SCHEME-FUNCTION takes a single argument, and is called for every grob
309 that is created in the current context.
310
311 @item 
312 New algorithms for chord-name formatting have been installed. They
313 can be tuned and have ergonomic syntax for entering exceptions.
314
315 @item 
316 Texts may now be put on multimeasure rests, e.g.
317
318 @example
319         R1*20^\markup @{ "GP" @}
320 @end example
321
322 @item
323 Ancient notation now prints ligatures in Gregorian square neumes
324 notation, roughly following the typographical style of the Liber
325 hymnarius of Solesmes, published in 1983.  Ligatures are still printed
326 without the proper line breaking and horizontal spacing.
327
328 @item 
329 Glissandi can now be printed using the zigzag style.
330
331 @item 
332 LilyPond can now print clusters. The syntax is
333
334 @example
335         \apply #notes-to-clusters @{ NOTE NOTE .. @}
336 @end example
337
338 @item
339 For irregular meters, beat grouping marks can be printed. The
340 syntax for this is
341
342 @example
343         #(set-time-signature 7 8 '(3 2 2))
344 @end example
345
346
347 @item 
348 Nested horizontal brackets for music analysis can now be printed:
349
350 @example
351         NOTE-\startGroup
352                 ..
353         NOTE-\stopGroup
354 @end example
355
356
357 @item  Ottava brackets are now fully supported as a feature.  The syntax
358 is
359
360 @example
361         #(set-octavation 1)
362 @end example
363
364
365 @item  Metronome markings are printed when a \tempo command is processed.
366
367
368
369 @item Fingerings can be put on chords horizontally.
370
371
372
373 @item  The appearance of various glyphs has been fine-tuned.
374
375
376
377 @item  Different types of percent style repeats may now be nested.
378
379
380
381 @item  The emacs support has been extended.
382
383
384 @item 
385 The manual has been completely revised and extended.
386
387 @end itemize
388
389 @chapter New features in 1.6 since 1.4
390
391
392 @itemize @bullet
393
394 @item
395 Support for figured bass and tablature.
396
397 @item
398 Completely rewritten beam formatting: provides much better output
399 now.
400
401
402 @item
403 Completely revised and improved music font.
404
405
406 @item
407 Completely rewritten MIDI import support.
408
409 @item
410 Completely rewritten grace note support. Practically speaking this
411 means that grace notes can be slurred to normal normal notes.
412
413
414 @item
415 Improved accidental handling and formatting: styles for producing
416 cautionaries may vary, and complex collisions between accidentals of a
417 chord are handled much better.
418
419 @item
420 Better spacing: both globally and locally. This includes subtle
421 details like optical stem spacing.
422
423 @item
424 More support for ancient notation: mensural ligatures, ambitus
425 (pitch range) of voices, more shapes, etc.
426
427 @item
428 More support for piano notation: bracket pedals, directed arpeggios,
429 arpeggio brackets.
430
431 @item
432 Easier music polyphonic music entry.
433
434 @item
435 More extensibility, many speedups and bugfixes
436
437 @item
438 The manual has been thoroughly revised.
439
440 @item
441 Development is now hosted at http://savannah.gnu.org, and sources
442 can be downloaded through anonymous CVS.
443
444 @item
445 Support for windows: LilyPond is part of the cygwin distribution,
446 which comes with a user-friendly installer.
447
448 @end itemize