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