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