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