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