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