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