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