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