]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/topdocs/NEWS.texi
release commit
[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 stippled.
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 g @}      % 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 @file{ly2dvi} has been renamed to
119 @file{lilypond}. The binary itself is now installed as
120 @file{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 @end itemize
204
205
206
207
208 @chapter New features in 1.8 since 1.6
209
210 @itemize
211
212 @item 
213 The chord entry code has been completely rewritten. It is now
214 cleaner and more flexible.
215
216 @item 
217 A new syntax has been added for text entry.  This syntax is more
218 friendly than the old mechanism, and it is implemented in a more
219 robust and modular way. For more information, refer to the section on
220 "Text markup" in the notation manual.
221
222 @item 
223 The integration of the input language and Scheme has been made deeper:
224 you can now use LilyPond identifiers in Scheme, and use Scheme
225 expressions instead of LilyPond identifiers.
226
227 @item 
228 The internal representation of music has been cleaned up completely
229 and converted to Scheme data structures.  The representation may be
230 exported as XML.
231
232 @item 
233 A new uniform postfix syntax for articulation has been introduced.
234 A beamed slurred pair of eighth notes can be entered as
235
236 @example
237         c8-[-( d8-]-) 
238 @end example
239
240 In version 2.0, postfix syntax will be the only syntax
241 available, and the dashes will become optional.
242
243 This will simplify the language: all articulations can be entered as
244 postfix, in any order.
245
246 @item 
247 A new syntax has been added for chords:
248
249
250 @example
251         << PITCHES >>
252 @end example 
253
254 It is not necessary to update files to this syntax, but it will be for
255 using LilyPond version 2.0.  In version 2.0, this syntax will be
256 changed to
257
258 @example
259         < PITCHES >
260 @end example
261
262 for chords, and
263
264 @example
265         \simultaneous @{ .. @} 
266 @end example
267
268 for simultaneous music.
269
270 To convert your files from <PITCHES> to <<PITCHES>>, use the script
271 included in buildscripts/convert-new-chords.py
272
273 This change was introduced for the following reasons
274
275 @itemize @bullet
276 @item
277 It solves the "start score with chord" problem, where you have to
278   state \context Voice explicitly when a chord was the start of a
279   Staff or Score.
280 @item
281 With the new syntax, it is possible to distinguish between
282   articulations (or fingerings) which are for a single chord note,
283   and which are for the entire chord. This allows for per-note
284   fingerings, and is more logical on the whole.
285 @end itemize
286
287 @item 
288 User code may now be executed during interpreting.  The syntax for
289 this code is
290
291 @example
292         \applycontext #SCHEME-FUNCTION
293 @end example
294
295 @item 
296 User code may now be executed on arbitrary grobs during interpreting.
297 The syntax for this feature is
298
299 @example
300         \applyoutput #SCHEME-FUNCTION
301 @end example
302
303 @noindent
304 SCHEME-FUNCTION takes a single argument, and is called for every grob
305 that is created in the current context.
306
307 @item 
308 New algorithms for chord-name formatting have been installed. They
309 can be tuned and have ergonomic syntax for entering exceptions.
310
311 @item 
312 Texts may now be put on multimeasure rests, e.g.
313
314 @example
315         R1*20^\markup @{ "GP" @}
316 @end example
317
318 @item
319 Ancient notation now prints ligatures in Gregorian square neumes
320 notation, roughly following the typographical style of the Liber
321 hymnarius of Solesmes, published in 1983.  Ligatures are still printed
322 without the proper line breaking and horizontal spacing.
323
324 @item 
325 Glissandi can now be printed using the zigzag style.
326
327 @item 
328 LilyPond can now print clusters. The syntax is
329
330 @example
331         \apply #notes-to-clusters @{ NOTE NOTE .. @}
332 @end example
333
334 @item
335 For irregular meters, beat grouping marks can be printed. The
336 syntax for this is
337
338 @example
339         #(set-time-signature 7 8 '(3 2 2))
340 @end example
341
342
343 @item 
344 Nested horizontal brackets for music analysis can now be printed:
345
346 @example
347         NOTE-\startGroup
348                 ..
349         NOTE-\stopGroup
350 @end example
351
352
353 @item  Ottava brackets are now fully supported as a feature.  The syntax
354 is
355
356 @example
357         #(set-octavation 1)
358 @end example
359
360
361 @item  Metronome markings are printed when a \tempo command is processed.
362
363
364
365 @item Fingerings can be put on chords horizontally.
366
367
368
369 @item  The appearance of various glyphs has been fine-tuned.
370
371
372
373 @item  Different types of percent style repeats may now be nested.
374
375
376
377 @item  The emacs support has been extended.
378
379
380 @item 
381 The manual has been completely revised and extended.
382
383 @end itemize
384
385 @chapter New features in 1.6 since 1.4
386
387
388 @itemize @bullet
389
390 @item
391 Support for figured bass and tablature.
392
393 @item
394 Completely rewritten beam formatting: provides much better output
395 now.
396
397
398 @item
399 Completely revised and improved music font.
400
401
402 @item
403 Completely rewritten MIDI import support.
404
405 @item
406 Completely rewritten grace note support. Practically speaking this
407 means that grace notes can be slurred to normal normal notes.
408
409
410 @item
411 Improved accidental handling and formatting: styles for producing
412 cautionaries may vary, and complex collisions between accidentals of a
413 chord are handled much better.
414
415 @item
416 Better spacing: both globally and locally. This includes subtle
417 details like optical stem spacing.
418
419 @item
420 More support for ancient notation: mensural ligatures, ambitus
421 (pitch range) of voices, more shapes, etc.
422
423 @item
424 More support for piano notation: bracket pedals, directed arpeggios,
425 arpeggio brackets.
426
427 @item
428 Easier music polyphonic music entry.
429
430 @item
431 More extensibility, many speedups and bugfixes
432
433 @item
434 The manual has been thoroughly revised.
435
436 @item
437 Development is now hosted at http://savannah.gnu.org, and sources
438 can be downloaded through anonymous CVS.
439
440 @item
441 Support for windows: LilyPond is part of the cygwin distribution,
442 which comes with a user-friendly installer.
443
444 @end itemize