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