]> git.donarmstrong.com Git - lilypond.git/blob - CHANGES
release: 1.3.111
[lilypond.git] / CHANGES
1 1.3.110.hwn1
2 ============
3
4 * Fixed non-empty-text feature.
5
6 * Bugfix for Grob::has_extent_callback_b ()
7
8 * Added infrastructure for music property documentation strings.
9
10 * Syntax change: \notenames -> \pitchnames
11
12 * Changed syntax \push -> \override, \pop -> \revert. Add:
13
14         \property Context.Element \set #'foo = #bar
15
16 which  does a \revert followed by a \override.
17
18 * Documentation updates.
19
20 * Fixed typechecks for \push, \pop and \property
21
22 * Bugfix: Local_key_engraver.
23
24 * Fixes for lilypond-mode.el (patch by Mark Hindley)
25
26 1.3.110
27 =======
28
29 * Fixed a mysterious typo in toplevel index.
30
31 * Enabled property-engraver.
32
33 * Cleanup in Auto-beam-engraver (still broken, because timings are off?)
34
35 * Collapsed all ``void Foo::create_grobs () { deprecated_process_music
36 (); }'' occurences, and reactivated some disabled code (note-name,
37 chord-name, custos, lyrics).  Reactivated Timing_translator using
38 process_music ().
39
40 1.3.109.hwn1
41 ============
42
43 * unsmob_element -> unsmob_grob
44
45 * Make a Slur::height callback, to prevent early brew_molecule
46 call. This fixes cross-staff slurs.
47
48 * Bugfix: custodes style must be symbol, not string.
49
50 * do_creation_processing () -> initialize (), do_removal_processing ()
51 -> finalize ().  Remove (do_)add_processing.
52
53 * Move Relative_octave_music::last_pitch_ into SCM, junk
54 Transposed_music::to_pitch_, junked Time_scaled_music::{den_i_,
55 num_i_}, Rhythmic_req::duration_, Melodic_req::pitch_
56
57 1.3.109
58 =======
59
60 * Bugfix: resurrected point-and-click. 
61
62 * Use scheme object props for storing type predicates and doc-strings
63 Dump global lists of properties into auto-documentation.
64
65 * Bugfix: extent callback for Rest, so  ledger lines don't disappear for
66 rest-collisions.
67
68 * Removed some hair from chord code
69
70 * Rewrite of engraver pass scheme: try to make graphical objects in
71 acknowledge_element()/process_acknowledged(), not in process_music()
72
73 * Remove Translator::status_ and associated code. Removes the need for
74 various XXXX functions as wrapper for do_XXX functions.
75
76 * Search replace: Score_element -> Grob (Graphical object),
77 {pre,post}_move_processing -> {stop,start}_translation_timestep,
78 do_try_music -> try_music.
79
80 1.3.108
81 =======
82
83 * Dropped ly_lists_equal for gh_equal_
84
85 * Removed Array from chord.
86
87 * Small bugfix to lilypond-mode.
88
89 * lily/part-combine-music-iterator.cc: fixed (switch `combineParts'
90 property on), and removed Array.
91
92 1.3.107.uu1
93 ===========
94
95 * Bugfix: don't call Crescendo::brew_molecule () too early if there is
96 an absolute dynamic.
97
98 * Rename class Crescendo to Hairpin.
99
100 * Search/replace: Musical_pitch -> Pitch 
101
102 * More links in the backend documentation.
103
104 1.3.106.jcn2
105 ============
106
107 * Cross compilation and info build fixes, really cancel all builtin
108 rules, sigh.
109
110 * Generated documentation fixes: Generate all interface descriptions,
111 separately, don't list non-set interface properties with element
112 descriptions.
113
114 1.3.106.hwn1
115 ============
116
117 * Deprecate `mudela' name: rename mudela to lilypond globally.
118
119 * construct Music_iterators decentrally.
120
121 * Make smob of Duration 
122
123 * Make smob of Musical_pitch.
124
125 * Move Repeated_music members into SCM. Length is computed via a SCM
126 function. (todo: write SCM function to unfold all repeats. \apply for
127 \midi)
128
129 * Remove Time_signature_change_req, \time is disguise for \property
130 Score.timeSignatureFraction = ...
131
132 * \property barCheckNoSynchronize: don't reset measurePosition when
133 finding a bbarcheck. This makes bar-checks for polyphonic music
134 easier.
135
136 * elt property full-size-change for clefs.
137
138 * Bugfix: use Stem::dim_callback (), so brew_molecule () is not called
139 too early.
140
141 * Bugfix: use extent of Note_head (iso. Note_column) for rest
142 collisions, so Stem::brew_molecule() is not called too early.
143
144 1.3.105.jcn1
145 ============
146
147 * Makeinfo html documentation generation fixes.
148
149 1.3.105.uu1
150 ===========
151
152 * Remove Bar_req, \bar is now a frontend to setting Score.whichBar
153
154 * Move Context_specced_music::translator_{type,id}_str_ into music
155 properties.
156
157 * Don't make line breaks during note playing.
158
159 * Clef engraver rewrite. Clef-engraver is now controlled through
160 properties clefPosition, clefGlyph, clefOctavation. The \clef command
161 is just a front-end to these, see scm/lily.scm, function
162 clef-name-to-properties.  See also input/test/manual-clef.ly
163
164 1.3.105
165 =======
166
167 * Bit of temporary makefile hacking to stay in sync with makeinfo patch.
168
169 * Separate interface description (test phase).
170
171 * Makeinfo --html split fix: http://appel.lilypond.org/fred/software/texinfo-4.0.jcn2.diff
172
173 * Use headers for makeinfo html output.
174
175 * Made some --scrdir build fixes.
176
177 1.3.104.uu1
178 ===========
179
180 * Smobified molecule, and cache molecule (ie. generate each molecule
181 only once).  Lily should be faster now. (approx. 6 % ?)
182
183 * Coded properties-to-font-name in C++. Measured speedup: 14% (wtk1-fugue2)
184
185 * Use music properties for Request data.
186
187 1.3.104
188 =======
189
190 * Documentation build fix: don't run LilyPond when generating plain info doc.
191
192 * Resurrected info documentation and made cross links between manual
193 and generated doco, some small fixes.
194
195 * Made small time signature style fix.
196
197 * Generate texinfo iso html documentation.
198
199 * Added x-references for elements->engravers and engravers->contexts.
200
201 * Fixed number font listing in style sheet.
202
203 * Fixed default font settings for text items, text-item now uses
204 font-interface's alist-chain.
205
206 * Renamed property AutoBeam to autoBeamSettings to avoid confusion
207 about non-existing AutoBeam element.
208
209 * Mensural clefs (courtesy Juergen Reuter)
210
211 1.3.103.lec1
212 ============
213
214 * abc2ly enhancements
215
216         * %%LY comments
217
218         * explanation of rationale for %%MIDI nobarlines
219
220         * supports -8va as a syntax for tenor clef
221
222         * pushing the Staff.timeSignatureStyle property
223
224         * parses space between key letter and mode in K: statement
225
226         * default for guitar chords is above the staff
227
228         * fix for translation of :: repeat
229
230 1.3.103
231 =======
232
233 * Translated auto-beam properties to alist.
234
235 * Rewrite of tfmtoafm in scm.
236
237 * Rewrite of emacs LilyPond mode, based upon auctex interface.
238
239 * Chord name fixes and additions (Atte Andr'e Jensen)
240
241 * ly-get-mus-property, ly-set-mus-property: set properties of Music
242
243 * Move Span_req::span_dir_ into Scheme
244
245 * removed numberOfStaffLines, staffSpace. Use StaffSymbol \push
246 staff-space, line-count
247
248 * removed minVerticalAlign, maxVerticalAlign; use VerticalAlignment
249 \push #'threshold = #(MIN . MAX)
250
251 * \property tremoloFlags can be set anywhere now
252
253 * \apply #function music 
254
255 * Bugfix: padding of dots.
256
257 * Generate documentation for separate engravers as well as for contexts.
258
259 * Move some reference manual into the  SCM documentation system.
260
261 * Bugfix: fixed hyphen spanners.
262
263 1.3.102
264 =======
265
266 * Fixed bracket, and made some other PostScript code fixes.
267
268 * Silly font initialisation fix for paper19 non-feature.
269
270 * Automatic engraver/property documentation infrastructure. 
271
272 * Fixed system-start braces
273
274 * Fix for forgetAccidentals: do print accidentals, just don't remember
275 them.
276
277 * Bugfix: forced script directions for scripts that have relative stem-direction.
278
279 * Bugfix: Tie_column doesn't force Tie directions ties that already
280 have a direction.
281
282 * Bugfix: multimeasure rest 
283
284 1.3.101
285 =======
286
287 * Custodes (patch by Juergen Reuter), mods by hwn.
288
289 * Font initialisation and markup translation fixes. (99.jcn2)
290
291 * Remove staffspace calls. Removed markScriptPadding. Fixes some
292 problems with tuplet, brace and volta spanners.
293
294 * make Font_interface::font_alist_chain (), and use default font
295 settings. Fixes too large time sigs.
296
297 1.3.100
298 =======
299
300 * Tweaks of .scm font-selection. 
301
302 * Rewrote font management of Score_element and Paper_def.
303
304 * Introduced outputscale: internally do computation in terms of
305 outputscale.  Prepare to deprecate staffspace internally.  Rewrote
306 .scm side of font selectioning. 
307
308 1.3.99.jcn1
309 ===========
310
311 * Made several font size and initialisation fixes.
312
313 * Renamed all occurrences of font-size to font-relative-size
314
315 * Renamed all occurrences of font-point to font-point-size
316
317 * Fixed interface.scm descriptions to use symbols iso strings
318
319 * Fixes for chord names, and added jazz style (James Hammons)
320
321 * Some font-size fixes.
322
323 * Added dynamics font in all staff-sizes.
324
325 * Quick fix for regtest.
326
327 1.3.98.hwn2
328 ===========
329
330 * Removed all paper vars except linewidth, indent, staffspace and
331 stafflinethickness.
332
333 * Rewrote Scheme side of font-selection.
334
335 * Bugfix: deprecate group-center-element thoroughly.
336
337 * Bugfix: LeftEdge must also have Break_align_item::alignment_callback
338 X-offset-callback.
339
340 * Add use music property "direction" for storing direction in
341 Script_req, use music property "text-type" for storing 'dynamic,
342 'finger, etc. Remove Dynamic_script_req. Resurrect fingerings.
343
344 1.3.98.lec1
345 ===========
346
347 * fixed scale-definition.ly for greek mode names.
348
349 1.3.98
350 ======
351
352 * Backend documentation updates and related cleanups
353
354 * Removed \property bracketCollapseHeight, systemStartDelimiterGlyph
355
356 * Bugfix: instrument-name on grandstaffs, see
357 input/test/instrument-name-grandstaff.ly
358
359 * Bugfix for tie/staffline collision.
360
361 * Bugfix: also send out end-repeat if there are no alternatives.
362
363 * Small solo cello suite fixes.
364
365 1.3.97.jcn1
366 ===========
367
368 * Added some interface documentation.
369
370 * Added raise and kern to markup.  This should make Chord names usable.
371
372 1.3.97
373 ======
374
375 * Made small fixes to basic properties: regression-test compiles.
376
377 * Moved Text_script_req's text_ member into mus-property.
378
379 * Renamed ChordName to ChordNames, for consistency.
380
381 * Resurrected most of chord names, superscripting and kerning
382   is currently broken, though.
383
384 * Junked all old style text lookups, except for feta definitions.
385
386 * Added support for name-based character lookups.
387
388 * Added support for font styles and papersize style sheets.
389
390 * Added new code for font selection and scm text markup.  Only used
391   for testing in \textscript SCM. See input/test/markup.ly.
392
393 * Fixed (added actually, it got lost?) word-space for chords.
394
395 * Added slope-limit and attachment-offset properties to slur.
396
397 * Slur's broken trend now weighs in the number of note-columns.
398
399 * Spacing tweaks
400
401 1.3.96.hwn1
402 ===========
403
404 * Mudela-book fixes (Tom Cato Amundsen)
405
406 * Put marks above chords.
407
408 * Solaris fix.
409
410 * Type checking for \push and \pop; elt property description (docs
411 inclusive) is now in Scheme.
412
413 * Self-documenting backend using ly/generate-documentation.ly
414
415 1.3.96
416 ======
417
418 * Added friendly message for the clueless dvips user.
419
420 * Clef-engraver: changed c0-position, clef-position and glyph into properties,
421   enabling ottava spanners: input/test/ottava.ly.
422
423 * Added option for edge lines to Text spanner.
424
425 * Bugfix for early initialisation of invalid (grace->voice) slur.
426
427 * Dropped text support and padding of crescendo symbol.  Horizontal
428   alignment of dynamics is handled by side-support, Text crescendos
429   use the generic Text spanner.
430
431 * Added a generic Text spanner.
432
433 1.3.95.hwn1
434 ===========
435
436 * Bugfix: octavate eight.
437
438 * Rewrote arpeggio.
439
440 * mudela-book fixes (Tom Cato)
441
442 * Cleaned up Group_interface and Pointer_group_interface
443
444 * Add accidentals to arpeggio support.
445
446 * Stemup + barline combination gets extra space.
447
448 * Score_element::extent () now takes a reference point argument.
449
450 1.3.95
451 ======
452
453 * Use music property for setting type. This prevents accidental
454 forgotten copies.
455
456 1.3.94.jcn3
457 ===========
458
459 * Added Arpeggio and Trill elements to feta font.
460
461 * Yet another bugfix for output-property (Han-Wen)
462
463 * Made some fixes to les-nereides.
464
465 * Fixed output-property (Dankje).
466
467 * Added backend framework for arpeggios.
468
469 * Fixes for les-nereides.  Should we do asymmetric slurs...?
470
471 * Don't print repeat bars at start of line.
472
473 1.3.94
474 ======
475
476 1.3.93.uu1
477 ==========
478
479 * Bugfix: don't crash if there is no volta bracket to end.
480
481 * Move offset, dimension callbacks into Scheme.  They can be initialized from basicXXXX properties using
482
483         (X-offset-callbacks . (callback1 callback2 .. .))
484         (Y-offset-callbacks . (callback1 callback2 .. .))
485         (X-extent-callback . callback1) 
486         (Y-extent-callback . callback1)
487
488 * naming: basicXXXProperties -> XXX, some other changes in naming;
489 convert-mudela rules added.
490
491 * naming: \voiceone -> \voiceOne and related changes. convert-mudela
492 rules added
493
494 * syntax: \property XXX \pop #'bla -> \property Context.XXX \pop #'bla
495
496 * changed aclocal.m4 to have better check for guile version. (Laura Conrad)
497
498 * updates for mudela-book (Tom Cato Amundsen)
499
500 1.3.93.jcn1
501 ===========
502
503 * Try at nastiest competition piece: input/les-nereides.ly.
504
505 * Moved Pedal_engraver to Staff context.
506
507 1.3.93
508 ======
509
510 * Added some error messages for toplevel and stray string parse errors.
511
512 * Don't start more than one slur at a time.
513
514 * Set direction of Slur too in a2-engraver.
515
516 1.3.92.hwn1
517 ===========
518 * Removed calls to global GUILE namespace.
519
520 * Added \property: scriptDefinitions, explicitClefVisibility,
521 explicitKeySignatureVisibility, instrumentEqualizer,
522 dynamicAbsoluteVolumeFunction
523
524 * Added element properties Bar::break-glyph-function,
525 Break_align_item::space-alist, Chord_name::chord-name-function
526
527 * Added \property combineParts: part combiner switched off by default.
528
529 * Remove all print methods.
530
531 * Use Scope::try_retrieve if possible.
532
533 * Remove FAQ in favor of URL.
534
535 * etf2ly.py robustness fixes.
536
537 * Don't compensate for left edge in broken volta spanner.
538
539 1.3.92
540 ======
541
542 * RPM .spec fixes.
543
544 * italiano.ly
545
546 * mudela-book updates by Tom Cato Amundsen.
547
548 * Allow lyric hara kiri as well.
549
550 * Bugfix: left/right mixup  in Side_position_interface::aligned_on_self ()
551
552 * rest collision of differing rests.
553
554 * Cleanup of Sequential_music_iterator, Simple_music_iterator.
555
556 * Unfolded_repeat_iterator now signals repeats using \property
557   repeatCommands. You could override this, eg.
558
559         \property Score.repeatCommands = #'((volta "X") start-repeat)
560
561   will print a |: and a volta bracket saying X. See also
562   input/test/manual-volta.ly
563   
564 * Volta_engraver, Repeat_acknowledge_engraver: new engravers that are
565 controlled by repeatCommands; much cleaner than the Repeat_engraver.
566
567 * Junked Repeat_engraver.
568
569 1.3.91.jcn1
570 ===========
571 * Abort all running spanners when part-combiner combines voices.
572
573 1.3.91
574 ======
575
576 * Use S_ISDIR () and check for stat.h.
577
578 * Various fixes for RedHat 7.0 / gcc 2.96.54
579
580 * separate basic propertylist for fingerings, center them on
581 noteheads.
582
583 * Side_position_interface::aligned_on_self() now can take a real
584 number for self-alignment-{X,Y}.
585
586 * etf2ly: single line GF field.
587
588 1.3.90.mb1
589 ===========
590
591 * Added an interscorelinefill paper variable. Set to a positive number 
592   in order to stretch the inter-line spacing to fill the full pages,
593   except for the last page (where it would look really ugly).
594
595 1.3.89.jcn1
596 ===========
597
598 * Changed lilypond to LilyPond in ly2dvi, Mudela to LilyPond source.
599
600 * Website fixes: Changed \interline to \staffspace in manual, removed offending
601   braces from mudela-book.tely.
602
603 * Fixed slur attachment correction bug.
604
605 * Made some fixes to Coriolan.
606
607 1.3.89.hwn1
608 ===========
609
610 * Only open files, not directories 
611
612 * bugfix: textNonEmpty.
613
614 * Look ahead in auto-change iterator for rests. This means rests
615 before the note leading to an automatic staff switch are switched as
616 well (improves the looks of scarlatti-test).  Associated fixes and
617 additions for  Music_iterator::skip () and friends.
618
619 * Bugfix: only quantise staccato inside the staff. 
620
621 * cleanups for beam and stem. Removed global GUILE namespace calls
622 from Beam and Stem.
623
624 1.3.89
625 ======
626
627 * Some fixes to Coriolan.
628
629 * Fixed some stupid core dumps processing Coriolan.
630
631 * Fixed several problems with part-combiner's part-switching.
632
633 * Fixes for ASCII output.
634
635 * Added feature to part combiner that should allow part-switching only
636   for entire measures.  Currently, it is controlled by a new 
637   property changeMoments (A . B):
638     - only switch when !(A mod now),
639     - decide whether to switch based on music during time period B.
640
641 * Made bugfix: Sequential_iterator::get_music (M): mustn't return music 
642   later than M.
643
644 * Added skip (M) to some iterators.
645
646 * maintain minimum-length by shifting for hyphens at start of
647 line. (patch courtesy Christophe Rhodes)
648
649 * mudela-book fixes (courtesy Tom Cato Amundsen): documentation
650 update, LaTeX example, landscape support.
651
652 1.3.88.hwn2
653 ===========
654
655 * Added elt properties for Tie:
656   - details
657   - x-gap
658   - staffline-clearance
659
660 * Added elt properties for Slur
661   - y-free
662   - details
663
664 * Removed C++ support for barNumberScriptPadding, now in
665 generic-property.scm (but they're deprecated anyway)
666
667 * Changed threshold in Align_interface to be in staffspace 
668
669 * changed minVerticalAlign and maxVerticalAlign to be in staffspace.
670 A better way: do \push #'threshold = #(cons A B ).  (WARNING:
671 INCOMPATIBLE CHANGE)
672
673 * moved translator definitions out of \paper { }, only instantiate in
674 \paper.
675
676 1.3.88
677 ======
678
679 * Sequential_iterator::get_music (), part combiner now works.
680
681 * Changed paper variables into elt properties:
682   Beam:
683   - beam-space-function, Removed Paper_def::interbeam_f(), Smaller
684   beams for grace notes.
685   - beam-flag-width-function to Beam.
686
687   Grace_align_item:
688   -  horizontal-space: spacing of grace notes is configurable
689
690   Volta_spanner: 
691   - height
692   - thickness 
693
694   Multi_measure_rest:
695   - expand-limit
696   - minimum-width
697   - padding
698
699   Lyric_extender:
700   - height
701
702   Stem
703   - thickness 
704
705   Collision
706   -  note-width to Collision
707
708 * removed various obsolete variables from params.ly
709
710 * added input/test/bagpipe.ly
711
712 1.3.87
713 ======
714
715 * Made fixes to part-combine examples and Coriolan.
716
717 * Bugfix: don't dump core on unterminated (de)crescendo.
718
719 * Rolled next (M) also into get_music (M), similar to process (M), so that
720   sequential-music-iterator::get_music (M) returns something useful.
721
722 * Bugfix: part-combiner still expected Music_sequence, where get_music ()
723   now returns plain list of events.
724
725 1.3.86.hwn3
726 ===========
727
728 * Fixed problem with disappearing crescendi across line break.
729
730 * Bugfix: dynamic texts should not be set by text-engraver. 
731
732 * Rewrote and cleaned up music-iterator.
733
734 * etf2ly robustness fixes.
735
736 1.3.85.hwn2
737 ===========
738
739 * Added side-position-interface as an interface identifier, in stead
740 of checking side-support-elements. This fixes a problem with stacked
741 text scripts.
742
743 * Removed spurious set_elt_property ("XX", SCM_EOL) calls.
744
745 * Added \property squashedPosition for Pitch_squash_engraver: the
746 staff-position number to squash noteheads to.
747
748 * Added FAQ entry for script on bar, updated description of mailing
749 lists.
750
751 * Fixed bug with \translator { basicXXXProperties \push ... }
752
753 * Updated and revised call for help in hacking.texi.
754
755 * Bugfix: don't remember accidental if it is tied from the previous note.
756
757 1.3.85
758 ======
759
760 * Separated definition and implementation of contexts (moved
761 definition out of Translator_group into Translator_def)
762
763 * pmx2ly.py fixes: now handles text at beginning of block correctly.
764
765 * update .spec to include scripts. 
766
767 * Changed syntax of \pushproperty:
768
769         \property Voice.basicXXXProperties \push #'foo = #bar
770         \property basicXXXProperties \pop #'foo
771
772         \translator {
773                 basicXXXProperties \push #'foo = #bar
774                 basicXXXProperties \pop #'foo
775         }
776
777 1.3.84.jcn1
778 ===========
779
780 * Updated INSTALL.texi
781
782 1.3.80.tca1
783 ===========
784 * Added Documentation/user/mb-latex.tex, mudela-book+latex example
785   file and test case. Some work on Documentation/user/mudela-book.tely
786
787 * mudela-book.py: any combination of \verb, \begin{verbatim}
788   @code and @example and mudela should work as expected. 
789
790 * dropped [].extend that depend on python 1.5.2
791
792 1.3.84
793 ======
794
795 * pmx2ly, PMX to LilyPond conversion. Succesfully converts barsant.pmx.
796
797 * musedata2ly, a Musedata to LilyPond convertor. Succesfully converts
798 wtk1-fugue2
799
800 * bugfixes for dynamics: make sure that dynamic alignments encompass
801 the dynamics they support, and that any columns they attach to aren't
802 prematurely killed.
803
804 * bugfix: make sure \time gets noticed early enough.
805
806 1.3.83
807 ======
808
809 * small doc updates.
810
811 * Cleanups related to barline handling:
812
813   - Removed Translator_group::get_simple_translator (), and -
814
815   - use properties to communicate about barlines and time sigs. (NOTE:
816     by default a time-signature of 4/4 is printed.)
817
818   - fix repeat bar behavior.
819
820
821 * cleaned up Directional_element_interface
822
823 * add name field to score-elements.
824
825 * comment in some unprotects for Music in parser. Should bring down
826   cpu time and plug some leaks.
827
828 * robustness fixes for etf2ly, tuplets, grace notes. 
829
830 1.3.82
831 ======
832
833 * engraver.ly: cleanups.
834
835 * etf2ly: robustness fixes, handle mac files as well.
836
837 * Smobified Translator and Translator_group, junked
838 Translator_group_identifier.
839
840 * \pushproperty and \popproperty withing \translator, similar to
841 predefining \property, ie.
842
843         \translator { [...] \pushproperty [..] }
844         \translator { [...] \popproperty [..] }
845
846 (these \pushes and \pops are delayed until instantiation, so if you do
847
848
849         \score {
850                 \pushproperty #'basicFooProperties #'bla #VALUE1
851                 \context Voice { \pushproperty #'basicFooProperties #'bar #VALUE2
852                         [..]
853                 }
854         }
855
856 then the setting for basicFooProperties contains both (bla . VALUE1)
857 and (bar . VALUE2).
858
859 * allow \pushproperty #'symbol [..] as well as \pushproperty #'(symbol1 symbol2 ... )
860
861 1.3.81.jcn1
862 ===========
863
864 * Activated regex for windows.
865
866 * New guile-1.4 patch for cross windows build.
867
868 * Added configure messages for metapost checking.
869
870 1.3.81
871 ======
872 1.3.80.gp1
873 ==========
874
875 * Added property LyricVoice.associatedVoice to enable switching associated
876   voice mid-stream. Association still defaults to context name.
877
878 1.3.80.hwn1
879 ===========
880
881 * \pushproperty, \popproperty: property settings with less memory
882 cost. See input/test/pushproperty.ly and Documentation/hacking. Note:
883 syntax is most likely only temporary.
884
885 1.3.80.jcn1
886 ===========
887
888 * (Line-)broken slurs now have vertical trend.
889
890 * Better length for broken ties: no invisibly short ties.  Now ties may
891   collide with time signatures, though.
892
893 * Don't typeset unfinished spanners, but kill them.
894
895 * Added two FAQs (Mats)
896
897 * Made workaround guile-1.4.1 backward incompatible (scm_)eval change.
898   Note that we must use (scm_)eval2 to remain backwards compatible with
899   guile < 1.4.1 snapshot.
900
901 * Reincluded 79.jcn2 fix
902
903 1.3.80
904 ======
905
906 1.3.79.jcn5
907 ===========
908
909 * Created Thread_devnull_engraver and Voice_devnull_engraver iso
910   single A2_devnull_engraver in Thread context.  It seems however
911   that the hack in A2_devnull_engraver works better.
912
913 * Coriolan fixes.
914
915 * Slur attachment fix for chords where case slurdir != stemdir.
916
917 * Made various fixes for (line-)broken slurs.
918
919 * Fixed slur_height (), which fixes most ugly slurs (Yeah!).
920
921 * Fixed some silly url reversals in FAQ.
922
923 * Finished Coriolan music entry (again); entered second viola part.
924
925 * Updated Coriolan to use part combiner on Voice level for wind parts
926   and on Staff level for violi and bassi.
927
928 * Part-combiner now uses duration inquiry, which fixes rhythm-related
929   bugs in determining solo/a2.  Also, rests are taken into account.
930
931 * Another crude fix for almost unexplainable (with a gdb that dumps
932   core on ly_display_scm) all-zero control points slurs.
933
934 * Fixed slurs that crossed through stems and note heads.  Note
935   that beautifying of ugly slurs is still broken.
936
937 * Made crude fixes slurs don't crash, bezier still crashes on
938   infinitely steep slurs (eg flauti-part *with* slur_engraver).
939
940 1.3.79.gp1
941 ==========
942
943 * Replaced empty melisma score element with a property
944
945 * Renamed Voice_alist_entry -> Syllable_group in lyric-phrasing-engraver
946
947 1.3.79.uu1
948 ==========
949
950 * fixed y-position of whole rest
951
952 * fixed sustainPedalPadding
953
954 * etf2ly: articulation, lyrics.
955
956 1.3.79
957 ======
958
959 * etf2ly.py: Finale to LilyPond conversion.
960
961 1.3.78.jcn4
962 ===========
963
964 * Made simple fix to get part-combiner to recognise different rhythms
965
966 * Unhardcoded part combiner and a2-engraver; introduced properties
967   splitInterval, soloADue, soloText, soloIIText, aDueText.
968
969 * Fixed part combiner's too-late problem (Dankje!)
970
971 * Fixed a2-devnull-engraver, a2-engraver.
972
973 * Renamed part combiner music names to "one", "two".
974
975 * Cleaned up decision making in part combiner, renamed to "solo"/"unison"
976
977 1.3.77.mb1
978 ==========
979
980 * Minor documentation updates
981
982 * Mark_engraver: has been broken since .73, fixed!
983
984 1.3.78
985 ======
986
987 * Added a devnull engraver, that junks (notehead) requests of the second
988   stem when combined parts are in unison (a2).
989
990 * Part-combine iterator identifies Soli and A2 parts in threads by 
991   looking at rhythm and pitches.  It switches Voice context automagically,
992   and communicates current state using a2/solo/solo2 properties.
993
994 * Simple A2_engraver (`a due) prints `a2/Solo/Solo II.  Soli seem to
995   arrive one request late.
996
997 * First try at combining parts: part-combine*
998
999 * fixed problem with HaraKiri
1000
1001 * fixed problem with dynamicDirection
1002
1003 * fixed problem with nonEmptyText 
1004
1005 * `Fixed' chord notation, as per request of David Arnold, ie, 
1006    Added a chord-name-mode, that only displays chord names
1007    when there's a change in the chord-name-scheme, Also, a chord
1008    name should always be displayed after a line break.  See
1009
1010        input/test/drarn-chords.ly
1011
1012 * Reverted duration-iter change in midi2ly, moved printing of options.
1013
1014 * warning bugfix in lexer.ll (Mats Bengtsson)
1015
1016 1.3.77
1017 ======
1018
1019 * Midi2ly bugfix: handle durations longer than longa.  These can occur
1020   because of lengthened notes when using --no-rests.
1021
1022 * Midi2ly: output `new' \key syntax, and updated version number.
1023
1024 * Midi2ly bugfix: don't correct quantised durations, don't use tuplets, 
1025   double dots etc. when user doesn't want them.  It probably used to
1026   work like this, a long time ago.  For some unknown reason, all
1027   corrections made by Duration_convert were junked if the corrected
1028   duration != exact duration.  Duh.
1029
1030 * Midi2ly: added a new option: --no-rests.
1031
1032 * Update of mudela-book (Tom Cato Amundsen)
1033  - --read-lys option, now you can do:
1034         mudela-book file.texi
1035         convert-mudela
1036         mudela-book --read-lys
1037  - --outdir=DIR will put ALL output into DIR
1038  - @mudela[filename="myfilename"]{c d e f g}
1039  - --force-mudela-fontsize
1040  - ignore mudela inside @ignore @end ignore
1041
1042 1.3.76.gp1
1043 ==========
1044
1045 * Lyric_phrasing_engraver now catches lyric extenders and correctly
1046   terminates them under the last note of a melisma.
1047
1048 * Lyric word spacing code changed to fix hyphen alignment.
1049
1050 * Other minor tidying up of Lyric_phrasing_engraver and related code.
1051
1052 1.3.76
1053 ======
1054
1055 * Lyric_phrasing_engraver now adjusts for melisma.  (Glen Prideaux).
1056
1057 * Mudela-book fix for Windows95 (Mark Hindley)
1058
1059 * Debian update (Anthony Fok)
1060
1061 * Added beam melisma for when automaticMelismata and noAutoBeaming are both
1062   #t (primarily for hymns).  Courtesy Glen Prideaux.
1063
1064 * Bugfix: .pfa dependency on $(outdir)/mfplain.mem
1065
1066 1.3.75.mb1
1067 ==========
1068
1069 * stepmake/stepmake/metapost-rules.make: Put all generated files
1070   in mf/out/.
1071
1072 * Added paper variable interscoreline to determine the score line
1073   spacing, see input/test/vertical-extent.ly.
1074   Cleaned up the lilyponddefs.tex inclusion scheme.
1075
1076 1.3.75
1077 ======
1078
1079 1.3.74.gp1
1080 ==========
1081
1082 * Improved default handling of Lyric_phrasing_engraver and made it on by 
1083 default.
1084
1085 * Beginnings of a stanza number engraver (\property LyricVoice.stanza = 
1086 #"1:" etc.)
1087
1088 * fixed bug in script.cc so fermata (and other scripts) get flipped 
1089 correctly when they are above the staff.
1090
1091 1.3.74.jcn2
1092 ===========
1093
1094 * Reincluded simple code for including tfm.[1-5] into search path.
1095   Configure with --disable-kpathsea to enable this kludge.
1096
1097 1.3.74.jcn1
1098 ===========
1099
1100 * Updated input/test/banter-chords.ly German H/B example.
1101
1102 * Updated nl.po.
1103
1104 * Have configure check for kpathsea library and functions.  Made kpathsea
1105   support optional for now.
1106
1107 * Bugfix: halved width of tremolo-beams.
1108  
1109 * Included compilation fix for guile-1.3.4 (Anthony).
1110
1111 * Added: chord inversion and base to regtest.
1112
1113 * Fixed: Chord names that were broken by pl73.
1114
1115 * Fixed: Chord inversions that were broken by pl72.
1116
1117 * Resurrected ascii-script output, for debugging purposes.
1118
1119 * Included compilation fix for scm-hash.cc (Han-Wen).
1120
1121
1122 1.3.74
1123 ======
1124
1125 * Small bugfix: also do a deep copy on  submusices
1126
1127 * Fixed:  \autochange doesn't crash anymore.
1128
1129 * Cleanup, documentation and enforcement of smob interfaces in
1130 LilyPond.  We distinguish between SIMPLE_SMOBS and SMOBS (objects that
1131 have self_scm_)
1132
1133 * Glen Prideaux lyric phrasing engraver. See
1134 input/test/lyric-phrasing.ly
1135
1136 1.3.73
1137 ======
1138 * Removed \interscoreline after the last line, prevents some
1139 empty pages. (patch by Mats Bengtsson)
1140
1141 * Smobified Music, junked associated identifiers. Use Scheme list to
1142 store Music_sequence.  Removed const declarations from
1143 Music_iterators.  Added a mutable and immutable property list to
1144 Music.  Use music property for all Scheme values in Music.  Created
1145 and fixed a load of Garbage Collection bugs.
1146
1147 * Changed number font to allow automatic .mf creation.
1148
1149 * Output place of definition as \special{src:LOCATION}. See FAQ for
1150 explanation how to use.
1151
1152 * Schemified Local_key_item and fixed minor bug with accidentals.
1153
1154 * new Japanese .po file.
1155
1156 * Bugfix for broken tie direction
1157
1158 * Bugfix for bar at beginning of line break
1159
1160 1.3.72
1161 ======
1162
1163 * Robustness fix for minimise_least_squares ()
1164
1165 * cleanups of Slur_bezier_bow, removed Bezier_bow.
1166
1167 * cleanup of Tie. Changed Tie into interface. Made ties flatter by default.
1168
1169 * changed SCM_UNDEFINED to SCM_UNSPECIFIED for return values that go
1170 back into Scheme.
1171
1172 * changed SCM_UNSPECIFIED to SCM_EOL for undefined element
1173 properties. This makes initializing list properties redundant.
1174
1175 * removed idiotic code for including tfm.[1-5] into search path.
1176
1177 * fixed problem with tuplet placement for cross staff tuplets.
1178
1179 1.3.71
1180 ======
1181 * Small cleanups to bring down  compile time and binary ensmallment.
1182
1183 * Made Lookup into a smob, and use guile alist iso. an STL map.
1184
1185 * Changed repeated music semantics for relative octave: each
1186 alternative takes its inital octave from the body.
1187
1188 * Fixed: parser accepts booleans for property values as well.
1189
1190 * Added Scarlatti sonata test file to input/
1191
1192 * kpathsea support, courtesy Carsten Block <carsten.block@gmx.de> 
1193
1194 1.3.70
1195 ======
1196 * Fixed: long standing problem in optical-illusion code.
1197
1198 * Fixed: stop beam if stem *has* a beam in auto-beam-engraver. 
1199
1200 * Made interface of Multi_measure_rest, System_start_delimiter,
1201 Spacing_spanner, Separating_group_spanner, Beam, Slur and
1202 Rhythmic_head.
1203
1204 * Use properties for minimum distances and spring parameters.  Move
1205 spacing related functions from Paper_column into Spaceable_element.
1206
1207 * Removed most Paper_column typecasts.
1208
1209 1.3.69
1210 ======
1211
1212 * Cleanup auto-beam-engraver: use properties for retrieving timing
1213 information.
1214
1215 * Fixed: Multi measure rests don't cause crashes.
1216
1217 * Fixed: don't invoke Hara_kiri::consider_suicide too early.
1218
1219 * Fixed: property engraver.  
1220
1221 * Fixed: don't crash on multiple ties.
1222
1223 * Cleanups of Beam, should also be a little faster.  
1224
1225 * Reunite properties and pointers. In implementation we make a
1226 distinction between mutable and immutable properties
1227
1228 * Add {has|set}_interface () static methods to interface classes.
1229
1230 * Made Side_position_interface and Staff_symbol_interface an all
1231 statics class, and stripped _interface suffix.
1232
1233 * Make Align_interface and Axis_group_interface an all-statics class 
1234
1235 * Rhythmic_head, Staff_symbol, Grace_align_item, Break_align_item,
1236 Bar, Span_bar are now interfaces, Staff_bar was removed. Use a
1237 callback for determining barsize.
1238
1239 * Removed all GLUE_SCORE_ELEMENT callbacks. 
1240
1241 * Added test for repeats to trip.ly
1242
1243 1.3.68
1244 ======
1245
1246 * ly2dvi: changed back to original semantics of latexheaders.
1247
1248 * Stem_tremolo, Crescendo, Hara_kiri_group_spanner, Tuplet_spanner,
1249 Volta_spanner changed into interface.
1250
1251 * Related cleanups for Tie, Tie_column cleanups.
1252
1253 * Made Time_signature, Single_malt_grouping_item, Script_column,
1254 Chord_name, Dot_column, Breathing_sign, Key_item type into interface.
1255
1256 * Removed const declaration from callback arguments.
1257
1258 * Pagebreak support. See input/test/between-systems.ly
1259
1260 * Fixed a problem with accidentals in combination with
1261 non-nil key signatures.
1262
1263 1.3.67
1264 ======
1265
1266 * Use callbacks for augmentation dot positioning.
1267
1268 * Removed types Note_head and Rest
1269
1270 * Cleanup of slur.cc: use common reference points in a sane manner.
1271
1272 1.3.66
1273 ======
1274
1275 * Corrected text sizes in paper*.ly (Mats Bengtsson)
1276
1277 1.3.65.uu1
1278 ==========
1279
1280 * Dots, Collision, Rest_collision removed as separate Score_element type.
1281
1282 * Stem and Note_column accept only one rest.
1283
1284 * Use offset callback in Stem to resolve rest/beam collisions.
1285
1286 * Put the value of new  local key signature (accidentals) back into a property.
1287
1288 * Set molecule-callback for notename item.
1289
1290 1.3.65.jcn2
1291 ===========
1292
1293 * Added some comments to new slur code.
1294
1295 * Removed some ugly interstaff slur code, interstaff slurs at line-break
1296   are still broken.
1297
1298 * Slur bugfix: 16th beams are also beams.
1299
1300
1301 1.3.65
1302 ======
1303
1304 * Bugfix: translate volta spanner at start of line.
1305
1306 * Changed directional_element() calls to instantiations
1307 of Directional_element_interface.
1308
1309 * Removed Dynamic_line_spanner, and cleaned up Dynamic_engraver.
1310
1311 * Removed Staff_info type. Information about columns is now transferred
1312 via currentMusicalColumn and currentCommandColumn.
1313
1314
1315 1.3.64.jcn2
1316 ============
1317
1318 * Made slur attachment position user settable; properties:
1319 slurBeginAttachment slurEndAttachment, values: 'head 'stem
1320 'along-side-stem.  See input/test/slur-attachment.ly and ophee-slurs.ly.
1321
1322 * Fixed slur attachment positions, added missing rule and use simple
1323 default starting positions for attachments.
1324
1325 * Started rewrite of slur ending code, interstaff slurs are broken for
1326 now.
1327
1328 * Fixed download URL of the webpage.
1329
1330 * Moved direction.cc to flower/.
1331
1332 1.3.64
1333 ======
1334
1335 * Lyrics centered on notehead.
1336
1337 * Various bugfixes hyphen-spanner.
1338
1339 * Bugfix: set appropriate callbacks for Note_head. This fixes 
1340 problems with dots.
1341
1342 * Removed Clef_item as score-element derived type.
1343
1344 * Updated config.sub and config.guess
1345
1346 * Bugfix: allow linebreaks on beamed grace notes.
1347
1348 1.3.61.jcn2
1349 ===========
1350
1351 * Included dutch po-update based on submitted 1.3.57 nl.po
1352
1353 * Added "Development" link to website, now that "Home" is a relative link.
1354
1355 * Bugfix: use deep copies for resetting keys.
1356
1357 * Assorted typing erors in procedure names in ly/engraver.ly
1358
1359 1.3.62
1360 ======
1361
1362 * Made callbacks from Score_element::before_line_breaking() and
1363 Score_element::after_line_breaking()
1364
1365 * Fixed website; backlinks should work again.
1366
1367 * Removed --ignore-version option. Added --verbose option.
1368
1369 1.3.61
1370 ======
1371
1372 * Webpage hacking
1373
1374 1.3.60.hwn1
1375 ===========
1376
1377 * Junk int_identifier, real_identifier. Merged Midi_def_identifier and
1378 Paper_def_identifier.
1379
1380 * Fixed bug with spanning barlines in combination with Hara-Kiri staffs.
1381
1382 * Cleaned up Text_item, Hyphen_spanner, Lyric_extender and
1383 Sustain_pedal and reduced them to an Score_element interface (they are
1384 no longer Score_element derived types).
1385
1386 * Some instances of brew_molecule routines have moved out of
1387 Score_element, and are now called scheme_molecule.
1388
1389 * Moved lots of parameters from ly/params.ly to ly/engraver.ly
1390
1391 1.3.59.hwn1
1392 ===========
1393
1394 * Removed String_identifier, and use the type system of GUILE instead.
1395
1396 * Fixed \key PITCH MODALITY syntax. The modality argument is now
1397 mandatory, a rule in convert-mudela has been added.
1398
1399 * Cleaned up  buildscripts/ directory: removed obsolete scripts.
1400
1401 * Use Scheme_hash_table for identifier Scopes.  Scheme_hash_table is
1402 based on STL and should be faster than hash_table.
1403
1404
1405 1.3.59.jcn1
1406 ===========
1407
1408 * Fixed scm_un/protect_object for guile-1.3.4 and 1.3.5 snapshots,
1409   in the process reduced number of protect/unprotect calls.  With
1410   guile-1.3.5 snapshot, memory usage has decreased by 1/5th, now
1411   just 10% above the 1.2 level.  Also, Lily's a bit faster.
1412
1413 * Fixed make diff bug in stepmake to be able to make this diff :-)
1414
1415 1.3.58.hwn1
1416 ===========
1417
1418 * Rewrote key sig support.  Now key signature can also be controlled
1419 by setting keySignature and localKeySignature properties, eg.
1420
1421         \property keySignature = #'((2 . -1) ( 4 . -1) (6 . -1))
1422
1423 sets a key signature of `es ges bes' (an unusual key signature).
1424
1425 Keys are internally represented as transpositions of the c-major
1426 scale. Printing the key signature for a scale is done by filtering out
1427 all non-natural accidentals.
1428
1429 * Removed support for \keysignature, and \key something \minor; Newkey
1430 is now obsolete.
1431
1432 1.3.58.jcn3
1433 ===========
1434
1435 * Fixed pedal items (hw)
1436
1437 * Changed configure option tex-tmfdir to tmf-path now accepting multiple
1438   tfm directories.  Automated links to cmr and amstex tfm font directories.
1439
1440 * Replaced one scm_assoc () u-turn slipped through jcn1
1441
1442 * various GUILE 1.3.5 compile fixes
1443
1444 * Added `Ped' as a compound symbol font and removed silly scheme kerning.
1445
1446 * Replaced some scheme assoc u-turns with scm_assoc ()
1447
1448 * Ran po-update (mostly because of new ja contribution).
1449
1450 1.3.57.jcn2
1451 ===========
1452
1453 * Cleaned-up scheme list to text conversion for Chord_name and 
1454 fixed horizontal kerning.
1455
1456 * Added examples for american (slashed o) and jazz (black triangle),
1457   see input/test/{american-chords.ly,jazz-chords.ly}
1458
1459 * Made guile-1.3.5 compile fixes
1460
1461 1.3.57.uu1
1462 ==========
1463
1464 * Fixed typo in Dots::do_brew_molecule (); this fixes the disappearing
1465 dots problem.
1466
1467 * Rewrote key signature administration; now Scheme is used; Octave and
1468 Key have been junked in favor of Newkey.
1469
1470 * japanese .po file included (thanks, Japanese team!)
1471
1472 1.3.57
1473 ======
1474
1475 * Fixed several forgotten molecule-callbacks 
1476
1477 * Fixed first clef in score; now F clefs are also possible.
1478
1479 1.3.56.mb1
1480 =========
1481  
1482 * Updated FAQ with two useful GDB macros.
1483
1484 * Several fixes in the documentation.
1485
1486 1.3.55.jcn1
1487 ===========
1488
1489 * Made (dutch) po-update
1490
1491 1.3.56
1492 ===========
1493
1494 * Molecules are now generated via callbacks exclusively; most calls to
1495 set_elt_property ("transparent", SCM_BOOL_T) have been replaced by suicide().
1496
1497 1.3.55
1498 ======
1499
1500 * Experimental property collapse for most score-elements.  (notable
1501 exceptions: Scripts, pedals). Change all Score_element constructors to
1502 take a basic-property list. The suffix of a property list may be
1503 shared by several score-elements, for instance all default G-clefs in
1504 a score share the following settings
1505   
1506            (breakable . #t)
1507            (break-align-symbol . Clef_item)
1508            (visibility-lambda . ,begin-of-line-visible) 
1509
1510 This should reduce memory usage further. 
1511
1512 * Magically fixed the disappearing Lyrics problem.
1513
1514 * Removed used_b_ field from Score_element.  
1515
1516 * Massive search-replace patch: store pointers and properties
1517 separately, in preparation of property collapse.
1518
1519
1520 1.3.54
1521 ======
1522
1523 * Bugfix: don't crash on tuplet spanners that don't contain any notes.
1524
1525 * Cleanup of Dimension_cache: removed a few redundant
1526 fields. Slightly lower memory usage (32 bytes per
1527 score-element). Dimension_cache is now a `dumb' struct again.
1528
1529 * Add array index to priority field of text scripts to ensure that
1530 order is unique, and sensible.
1531
1532 * Added an element count statistic.
1533
1534 1.3.53
1535 ======
1536
1537 * russian.po (thank you, August.)
1538
1539 * Small cleanups in Molecule interface 
1540
1541 * Spacing related elements perform suicide after calculating
1542 distances.  This saves a some memory, approximately 2 to 5 % ?
1543
1544 * Small cleanups in line breaking: Paper_column stores springs and
1545 rods in only one place now.  All fields relating to energy have been
1546 removed
1547
1548 * Don't generate all output Scheme in memory, but evaluate to output
1549 file immediately.  This will reduce memory usage a little.
1550
1551 * Use STL's map  for Dictionary template
1552
1553 * Substitute pointers on element properties of the root Line_of_score
1554 as well.
1555
1556 * Added toplevel doc target, to support building doc with --srcdir
1557
1558 * Removed cygwin build stuff; updated versions at:
1559
1560      http://appel.dyndns.org/lilypond/gnu-windows/cross
1561
1562 * Fixed lily.scm to handle incipits (thanks, Mats)
1563
1564
1565 1.3.52
1566 ======
1567
1568 * Made bugfix in smob handling: delete the C-part of freed smobs and
1569 be honest about amount of allocation and deletion, so that GUILE
1570 doesn't overestimate the amount of memory available.
1571
1572 * Faq update: nicer blank note paper, courtesy Mats Bengtsson.
1573
1574 * Bugfix: don't crash on durations that are not a power of 2.
1575
1576 * Build manpages during `make all' 
1577  
1578 * Bugfix: don't do absolute comparisons in Polynomial::clean ().
1579
1580 * Bugfix: set visibility-lambda for key signature created by
1581 createKeyOnClefChange. Fixes disappearing key signatures. 
1582
1583 * Bugfix: make System_start_delimiter of bar-line type invisible when
1584 it spans only one staff.
1585
1586 1.3.51
1587 ======
1588
1589 * Item cleanups.  Copying items and rearranging pointers are done in
1590 separate passes, which makes the code cleaner. This fixes a problem
1591 with some items not disappearing from hara-kiri staffs.
1592
1593 * Use Scheme for Key_item data members. 
1594
1595 * Don't use regex in chord-names.scm under windows; hybrid chordnames
1596 user+calculated will be partly broken.
1597
1598 1.3.50
1599 ======
1600
1601 * Junked Shift_tuple from collision; Now it uses SCM.
1602
1603 * Bugfix of documentation and test-file of tuplet.
1604
1605 * Bugfix type string of repeated music is copied. This fixes declared
1606 tremolos.
1607
1608 * Junked various cruft from lily.scm
1609
1610 * Use interfaces symbols instead of C++ class-name for assigning generic
1611 element properties.
1612
1613 * Junked Dictionary from Piano_pedal_engraver and
1614 Piano_pedal_performer.
1615
1616 * Introduced boolean element property no-spacing-rods: ignore this
1617 item for hard constraints.
1618
1619 * Bugfix: added sanitised TeX fragment in faq.texi
1620
1621 * Bugfix: merge equal Bar_reqs
1622
1623 1.3.48.uu1
1624 ==========
1625
1626 * Small fixes for \cresc and \endcresc
1627
1628 * Release properties of unbroken spanners & items after doing
1629 handle_broken_smobs (); should conserve a little memory.
1630
1631 * Fixed handling of orphaned score-elements. Any element that does
1632 not have its Line_of_score as a ancestor in both directions, is silently
1633 removed from the output.  This guarantees that programming errors
1634 don't result in coredumps from Dimension_cache::common_refpoint ():
1635 element->line_l () is always a common reference point.
1636
1637 * Bugfix: set visibility-lambda of clef and octavation-8 explicitly
1638 for default case.  Now the octavation 8 is not printed at every
1639 barline.
1640
1641 1.3.48.mb1
1642 ===========
1643
1644 * Changed noteHeadStyle properties to symbols, for example
1645   \property Voice.noteHeadStyle = #'cross
1646
1647 1.3.47.jcn3
1648 ===========
1649
1650 * Rewrite of chord-name production in scheme.  There are two major styles
1651   now, banter and american.  To get american style, use
1652
1653       \property ChordNames.chordNameStyle = "american"
1654  
1655   Most anything should be possible now.  See input/test/american-chords.ly
1656
1657 * Added isinf check to configure.in, and isinf macro from guile to
1658   bezier.cc; solaris has no isinf ().
1659
1660 * Fixed star-spangled-banner with not-so-nice \bar "|." fix.  Almost
1661   perfect now.
1662
1663 * Added output property to regression test.
1664
1665 * Fixed warning of creating existing outdir.
1666
1667 * Added `Mark' interface to text-items that are marks (thanks, HW).
1668
1669 1.3.48
1670 ======
1671 1.3.47.mb2
1672 ===========
1673
1674 * Corrected glossary.tely
1675
1676 * Corrected \mark font handling. feta-nummer font only of the 
1677   string is all numeric.
1678
1679 * Implemented noteHeadStyle lookup in Guile. Reintroduced the style
1680   "harmonic" and added "baroque" (normal note shapes except for 
1681   brevis and longa which are square).
1682
1683 * Simplified ly2dvi using the power of the geometry package.
1684
1685 * Improved heuristic size calculation of TeX macros. Handles e.g.
1686   "\\u{a}", "\\"{o}" and "\\^{u}" correctly.
1687
1688 1.3.47.hwn1
1689 ===========
1690
1691 * Bugfix: don't hang on zero-duration.
1692
1693 * Various glossary updates (thanks, Christian)
1694
1695 1.3.47
1696 ======
1697
1698 1.3.46.jcn2
1699 ===========
1700
1701 * Drastically reduced vertical space used by headers/footers, when using
1702   ly2dvi.  See input/test/fill-a4.ly.
1703
1704 * Fixed bug with colons appearing on repeat span-bars.
1705
1706 * Added Bar_number_engraver to standard Score context
1707
1708 * Construct octavation scripts in the clef-engraver; this fixes the
1709 hara-kiri + clef8 problem
1710
1711 1.3.46
1712 ======
1713
1714 1.3.45.jcn2
1715 ===========
1716
1717 * Fixed chord-name customisation and made small chord-name build fixes.
1718
1719 * Accidentals with chord-names smaller and as superscript.
1720
1721 * Do some extra footify (works only once) while making html docs.  
1722
1723 1.3.45.hwn1
1724 ===========
1725
1726 * Debian patch (Thanks Anthony)
1727
1728 * Rewrote Bar_number_engraver and Mark_engraver and removed
1729 Bar_script_engraver as baseclass. Both Bar_number_engraver and
1730 Mark_engraver are simpler and more robust.
1731
1732 * Fixed precedence of \property verticalDirection and dynamicDirection
1733
1734 * Fixed keys without barlines 
1735
1736 * Fixed StaffGroups: removing `\consistsend "Axis_group_engraver"'
1737 puts alignment in function again
1738
1739 * Fixed StaffGroup + GrandStaff combination.
1740
1741 * Music is now mandatory as the first thing in a \score{} block
1742
1743 1.3.45
1744 ======
1745 1.3.44.jcn2
1746 ===========
1747
1748 * Implemented una-chorda and sostenuto piano pedals in performer and engraver.
1749
1750 * Added Properties textScriptWordSpace and chordNameWordSpace.
1751
1752 * Junked old lyrics in star-spangled-banner.
1753
1754 * Added a Piano_pedal_engraver.
1755
1756 * Removed some empty files.
1757
1758 * Created piano pedal symbols: * - . P e d.
1759
1760 * Fixed ps-to-pfa.py to handle multiple unfills.
1761
1762 * Moved accordion symbols out of feta-script to end of font.
1763
1764 * Bugfix: don't create tfm's, pfa's etc of feta-test fonts.
1765
1766 * Fixed blot_diameter for small resolutions.
1767
1768 1.3.43
1769 ======
1770
1771 * Put global element list into Line_of_score, instead of
1772 Paper_score. post processing (the stage after line breaking) is now
1773 truly done per-system, and we got rid of an ugly hack to get font
1774 handling OK.
1775
1776 * Bugfix: set the group-interface of System_start_delimiter.
1777
1778 * Cleanups of Break_algorithm and derived classes, Move
1779 broken_col_range () to Line_of_score, remove Paper_score::col_l_arr_
1780
1781 * Bugfix for accordion symbols.
1782
1783 * Various patches to prevent crashing when do_brew_molecule gets
1784 called before after_line_breaking (). This was a problem in Spanner
1785 classes mostly.
1786
1787 1.3.43
1788 ======
1789
1790 1.3.42.jcn3
1791 ===========
1792
1793 * Made a quick try at piano pedal performer, damper pedal only.
1794
1795 * mf/feta-accordion.mf: Fixed strange turning paths.
1796
1797 * mf/feta-beugel.mf: Fixed infinity errors.
1798
1799 * Use a more discriptive name for windows setup.zip.
1800
1801 * mf/GNUmakefile: Have logs as last target, so that normally, they're 
1802 not made twice.
1803
1804 * stepmake/stepmake/metafont-rules.make: Don't remove the .log files.
1805 The logs are a target, removing them retriggers make.
1806
1807 * stepmake/stepmake/metapost-rules.make: Remove the correct log and tfm
1808 files, ie the ones that clutter the source directory, not the target logs.
1809
1810 * Windows distribution: faked symlink for cmtfm.  Setup.zip should now be
1811 standalone; ie, no need for Cygnus' usertools anymore.
1812
1813 1.3.42.jbr1
1814 ===========
1815   
1816 * Documentation/ntweb: Updated angels.ly to match current syntax.
1817 Also updated index.texi.
1818
1819 1.3.42.uu1
1820 ==========
1821
1822 * Change all occurances of Staff_margin_engraver to
1823 Instrument_name_engraver, add a convert-mudela rule
1824
1825 * Change status == busy assert into programming error
1826
1827 1.3.42
1828 ======
1829
1830 1.3.41.jcn3
1831 ===========
1832
1833 * Lots of fixes to windows distribution scripts.
1834
1835 * Added configuration features --program-prefix, --program suffix.
1836
1837 * lily/my-lily-parser.cc (get_chord): Bugfix, don't use deleted pitch.
1838 This fixes inversions c/g and bass additions d/+c on chords.
1839
1840 1.3.41.mb1
1841 ==========
1842
1843 * Avoid that xxxXXXVerticalExtent is used for empty HaraKiriStaff
1844   lines.
1845
1846 1.3.41.hwn1
1847 ===========
1848
1849 * Debian patches (thanks Anthony!)
1850
1851 * Use symbols for prefatory matter spacing. Do not use the typename
1852 for looking up item pairs in the table, but read element property
1853 break-align-symbol
1854
1855 * Instrument_name_engraver, uses break alignment instead of
1856 side-position.
1857
1858 * System_start_delimiter_engraver, System_start_delimiter, uses a
1859 spanner for the braces/brackets at the left of the system. Remove all
1860 old Span_score_bar engravers.
1861
1862 * Removed Base_span_bar_engraver::use_prority_b_, and moved
1863 Base_span_bar_engraver into Span_bar_engraver.
1864
1865 1.3.40.jcn3
1866 ===========
1867
1868 * mutopia/Coriolan/violino-2.ly: Bugfix: wrong pitch.
1869
1870 * input/test: Removed stale AutoStaffSwitch examples.
1871
1872 * mutopia/E.Satie: Fixed gnossiene-4, doing \autochange.  Removed
1873 stale copy of gnossiene-4.
1874
1875 * buildscripts/make-cygwin-cross.sh: Made some small .zip package fixes.
1876
1877 * make/lilypond.spec.in: Made some bugfixes for _prefix, preparations
1878 for cross-building to Cygwin.
1879
1880 * buildscripts/make-cygwin-cross.sh: Now using rpm packages.
1881
1882 1.3.40.hwn2
1883 ===========
1884
1885 * added \property XXXMinimumVerticalExtent, \property XXXExtraVerticalExtent
1886
1887 * New_chord_tremolo_engraver: make tremolo beams from
1888
1889         \repeat "tremolo" NUMBER <Music-expression>
1890
1891 Removed support for "old-style" tremolos.
1892
1893 * Add a convert-mudela function for the conversion "\key A;" to "\key a; 
1894
1895 * Read \property measurePosition within the engraver code, instead of
1896 looking up the Timing_translator.
1897
1898 * star-spangled-banner.ly: add Bar_engraver to LyricsVoice 
1899
1900 * Changed all .fly and .sly files to .ly files.  Propose to dump .fly
1901 and .sly.
1902
1903 1.3.40
1904 ======
1905
1906 1.3.39.jbr1
1907 ===========
1908
1909 * buildscripts/mf-to-table.py: feta dep files are now opened with write
1910   binary option.  This avoids carriage return linefeed problems and
1911   windows while not affecting unix.
1912
1913 * Documentation/hacking.texi: Fixed a texinfo syntax error
1914
1915 * stepmake/bin/package-zip32.sh: Fixed or Removed some legacy, 1.2.x,
1916   directory paths.
1917
1918 * Documentation/ntweb/index.texi: Fixed broken links, added 1.3.39 links.
1919
1920 1.3.39.hwn1
1921 ===========
1922
1923 * Glossary updates by Christian Mondrup.
1924
1925 * Bugfix: use generic properties in lyrics too. This fixes the
1926 \property textStyle for lyrics.
1927
1928 * Score_element::preset_extent(), used by \property
1929 XXXVerticalExtent, so hard code the size of a vertical group. 
1930
1931 * Don't fix up reference points for originals of broken
1932 spanners. Fixes spurious "orphaned score-element" warnings.
1933
1934 * buildscripts/make-cygwin-cross.sh: Use rx-1.5 instead of regex (Jeffrey).
1935
1936 * scm/lily.scm: Fixed check for Windows: by default don't use scm regex.
1937
1938 * Documentation/ntweb/guile-1.3.4-gnu-windows.patch: Significantly smaller
1939 patch for guile.
1940
1941 * buildscripts/make-cygwin-cross.sh: Compile native package GNU regex,
1942 which should fix Windows problems with guile.  Also added input directory
1943 to zip file.
1944
1945 * stepmake/aclocal.m4: Added decent checking for version of guile, and 
1946 fixed warning message.
1947
1948 * lily/lexer.ll (My_lily_lexer): Bugfix: lookup chordmodifiers in the
1949 chord-modifier table (not in the pitch list).
1950
1951 1.3.39
1952 ======
1953
1954 1.3.38.hwn2
1955 ===========
1956
1957 * General cleanups of My_lily_parser. 
1958
1959 * Start of a Chord_tremolo_iterator for the `\repeat 4 "tremolo"'
1960 syntax.
1961
1962 * Moved Score_element::do_space_processing out of the dependency
1963 mechanism.
1964
1965 * Use Scheme for notename tables.  Removed uppercase letters for low
1966 octave notes. Removed Notename_table.
1967
1968 * Fixed core dump with declared "\key  ; "
1969
1970 * Extra robustness warning for Side_position_interface::aligned_on_self ()
1971
1972 * Extra robustness: make sure that first and last columns are breakable.
1973         
1974 1.3.38.jcn4
1975 ===========
1976
1977 * stepmake/aclocal.m4: Added support for cross-compiling with guile.
1978
1979 * buildscripts/make-cygwin-cross.sh: A try at dropping cygwin1.dll
1980  dependency by using mingw.  Compiling guile is too much to ask
1981  for mingw, though.  Also:
1982  - rename python scripts .py (request from Alain)
1983  - install native packages under their own, separate root. (Alain)
1984
1985 * lily.scm: Don't use regex module when running on
1986 Windows. (Shamus)
1987
1988 * lily/staff-margin-engraver.cc (acknowledge_element): If
1989 possible, hang y-axis of margin script to span-bar.  This fixes
1990 vertical placement of margin scripts attached to staff groups.
1991
1992 * help2man-rules.make: Fixes for generating manpages by copying
1993 and for building using --scrdir.
1994
1995 * stepmake/stepmake/generic-targets.make: Preserve date stamp of
1996 config.h, version.hh files file when copying.
1997
1998 * buildscripts/make-cygwin-cross.sh: made number of fixes:
1999         - add `Cygnus/' prefix to directories in .zip-file too.
2000         - package guile too.
2001         - don't link to cygwin1.dll
2002
2003 * stepmake/stepmake/install-targets.make: bugfix, don't fail if directory
2004   is not emty when uninstalling.
2005         
2006 * stepmake/stepmake/generic-targets.make: added man target.
2007
2008 * buildscripts/make-cygwin-cross.sh: new script for cross-building cygwin
2009   development tools and lilypond executable.
2010
2011 * Documentation/ntweb/lilypond-manpages.patch: provide pre-built
2012   manpages, so that make doesn't fail on help2man trying to execute
2013   a GNU/windows executable.     
2014
2015 * Documentation/ntweb/guile-1.3.4-gnu-windows.patch: new patch for
2016   guile-1.3.4.  
2017
2018 * flower/libc-extension.cc (memmem): cygwin compile fix.
2019
2020 1.3.38
2021 ======
2022
2023 1.3.37.hwn1
2024 ===========
2025
2026 * (generic-property.scm) added \property tieDash to set dashing on
2027 ties.
2028
2029 * Removed  ly_eval_str(), we should use scm_eval (Scm_object).
2030
2031 * Removed scm_to_array (), array_to_scm (), associated junk. Reverted
2032 undocumented .29 patch that made Bezier::control_ into an
2033 Array<Offset>.  Added some comments documenting the reasons for the
2034 changes.
2035
2036 * Revert generic-property.scm of .37 fix, fix the real problem in
2037 property-engraver.cc: use the right symbol to check if element
2038 property is already set.
2039
2040 1.3.37.jcn2
2041 ===========
2042
2043 * Fixed srcdir build, so that you can do:
2044
2045       tar xzf releases/lilypond-x.y.z
2046       mkdir <build>
2047       cd <build>
2048       ../lilypond-x.y.z/configure
2049       make
2050
2051   as with any other gnu package.  All build output goes to <build>/out.
2052
2053 * Changed and fixed use of different configurations, and different output
2054   directories.  Finally, you can use different configurations alongside
2055   eachother.  From make/stepmake.make:
2056
2057       # Use alternate configurations alongside eachother:
2058       #
2059       #     ./configure --enable-config=debug
2060       #     make conf=debug
2061       #
2062       # uses config-debug.make and config-debug.h; output goes to out-debug.
2063       #
2064
2065       # Use same configuration, but different output directory:
2066       #
2067       #     make out=www
2068       #
2069       # uses config.make and config.h; output goes to out-www.
2070       #
2071
2072
2073 * Fixed performance of (de)crescendi.
2074
2075 * Better documentation for arithmetic_multiplier and arithmetic_basicspace
2076   in params.ly.
2077
2078 * Added instrument-equaliser for MIDI output, see scm/midi.scm, and
2079   properties midiMinimumVolume, midiMaximumVolume, ranges [0,1].
2080
2081 * Changed absolute midi volume settings into factor of full scale.
2082
2083 * Fixed another dynamic-line-spanner bug, it gets hairy.
2084
2085 * Added warning for spanners that are not fully contained in parent spanner.
2086
2087
2088 1.3.37
2089 ======
2090 1.3.36.hwn1
2091 ===========
2092
2093 * Abstract Align_element into Align_interface. Removed
2094 Axis_align_{item,spanner}, Align_element, Super_element, all multiple
2095 inheritance in the backend.
2096
2097 * new Gade score, INSTALL.texi fixes (thanks, Mats)
2098
2099 * Removed Item::hpos_f (), Score_element::{get,set}_real ()
2100
2101 * comments detailing properties for Axis_group_interface,
2102 Side_position_interface, Score_element, Item and Spanner
2103
2104 1.3.36.jcn3
2105 ===========
2106
2107 * Fixed vertical dimensions of elements in dynamic line spanner by adding
2108   axis-group to dynamic line spanner.
2109
2110 * Bugfix: line-spanner lasts always full duration of (de)crescendi.
2111
2112 * Bugfix: broken (de)crescendi on a dynamic-line-spanner.
2113
2114 * Bugfix: compilation dynamic-engraver.
2115
2116 * Added and updated a faq about postscript and ghostscript.
2117
2118 * Fixed order of slurVerticalDirection verticalDirection in
2119   generic-property.scm.  Similar fixes for Stem, Tie, etc.
2120
2121 * Added a Text_engraver to GraceContext.  Maybe it was removed on
2122   purpose: scripts on grace notes seem broken, they appear on the
2123   main note.
2124
2125 * Bugfix: volume effect of (de)crescendi was sometimes wrong way round.
2126
2127 1.3.36
2128 ======
2129 1.3.35.hwn1
2130 ===========
2131
2132 * textEmptyDimension changed into textNonEmpty, default: off,
2133 ie. texts don't occupy space.
2134
2135 * Use STL map for Lookup::lookup_p_tab_p_
2136
2137 * Abstracted Axis_group_element into Axis_group_interface, and removed
2138 Axis_group_element. This eliminates some multiple inheritance in the
2139 backend
2140
2141 1.3.35.jcn1
2142 ===========
2143
2144 * Added minimum-space property to Side_position_interface.  Used in
2145   positioning of Volta_spanner: voltaMinimumSpace.
2146
2147 * Fixed and cleaned-up volta-spanner.
2148
2149 * Moved directional-element.cc -> directional-element-interface.cc
2150
2151 * Renamed all `process_requests' to `process_music', which fixes
2152   midi performance.
2153
2154 * Fixed dimensions (more x-y interchanges) of brace, bracket and
2155   volta-spanner.
2156
2157 * Half-assed fix to get similar vertical placement of orphaned vs.
2158   line-spanned dynamic elements.
2159
2160 * Added property bracketCollapseHeight: the minimal size of a staff bracket
2161   that will be typeset.  Smaller brackets will not be displayed.  This
2162   fixes the (in 1.3.x reintroduced) funny duck-beak-bracket-bug (sorry).
2163
2164 * Removed some dissonant chords from Coriolan
2165
2166 1.3.35
2167 ======
2168
2169 * Removed Documentation/programmer directory 
2170
2171 1.3.34.jcn3
2172 ===========
2173
2174 * Small enhancements to Staff_margin_engraver:
2175    - by default, the marginScript left aligns the text
2176    - to set the text style, use property marginScriptTextStyle
2177    - to change the alignment, use property marginScriptHorizontalAlignment
2178      (centred and right alignment require manual padding settings).
2179
2180 * Print a friendly message if the manual pages failed to build.
2181
2182 * Bugfix: dynamicDirection now overrides verticalDirection setting.
2183
2184 * Warning messages and nl.po
2185
2186 * Fixed vertical alignment for all dynamic items and (reluctantly)
2187   reinstated old directional behaviour for orphaned dynamics.
2188
2189 * Finished maximumRestCount property.
2190
2191 1.3.34
2192 ======
2193 1.3.33.hwn2
2194 ===========
2195
2196 * Print key without setting key, syntax "\key ;". General cleanups of
2197 key-item.
2198
2199 * Add paragraph tags in HTML output of mudela-book.  Music fragment
2200 don't run into the text anymore.
2201
2202 * Bugfix: don't align the first line of text. (Lookup::text ()).
2203
2204 * Abstract away data members of Axis_group_element, Align_element
2205
2206
2207 1.3.33.jcn3
2208 ===========
2209
2210 * Added helpful properties instrumentScriptPadding/instrScriptPadding for
2211   Staff_margin_engraver.
2212
2213 * Removed some empty files, substituted (c) 1999 occurrences.
2214
2215 * Added \property maximumRestCount.  It will prevent showing (or actually:
2216   moving in case of a collision) more than maximumRestCount similar rests.
2217   WIP!
2218
2219 * Rewrote Staff_margin_engraver.  Staff margin texts now hang on a new
2220   breakable item: Left_edge_item.
2221
2222 * Fixed vertical alignment for dynamic elements.  Orphaned dynamic items
2223   (not supported by a Dynamic_line_spanner) still collide with Staff,
2224   although they now have staff support, which was supposed to fix this.
2225
2226 * Fixed Staff_margin_engraver for "instrument", "instr" is still broken.
2227
2228 * Dynamic elements are only put in a Dynamic_line_spanner if there
2229   actually is more than one adjacent note-column with a dynamic.
2230   This breaks the fine looks of all dynamics, again :-)
2231
2232
2233
2234
2235 1.3.33
2236 ======
2237
2238 1.3.32.hwn3
2239 ===========
2240
2241 * Experiment: use STL map for Scheme_hash_table; Is there a speedup?
2242
2243 * Bugfix: print brace iso. bracket for Piano / GrandStaff
2244
2245 * Change naming: change do_post_processsing into after_line_breaking,
2246 do_pre_processsing into before_line_breaking and do_process_requests
2247 into do_process_music.
2248
2249 * Bugfix in hash-table.hh: do quadratic probing, and not cubic probing.
2250
2251 * Display property name for type error.
2252
2253 * Cleanups for Dynamic_engraver and Dynamic_line_spanner.
2254
2255 * Warn if last column in score is musical. Helps catch programming errors.
2256
2257 * Spanner::spanned_drul_ now is private. 
2258
2259 * Rewrote some bar code: moved molecule functions out of Lookup.
2260
2261 1.3.32.jcn3
2262 ===========
2263
2264 * Embedded newlines in text items are now allowed.  This helps avoiding
2265   TeX-hacking in some cases.  See input/test/coriolan-margin.ly
2266
2267 * Fixed stupid x-y interchange bug for staff-bracket.  This fixes
2268   placement of staff-brackets.
2269
2270 * Fixed bracket/arch-thickness interchange bug, and made bracket a bit
2271   thinner.
2272
2273 * Fixed slur/bezier-beautiful name mismatch.  This should fix the steep
2274   slurs that were apparently reintroduced in 1.3.29.
2275
2276 * Made some small fixes to Coriolan.
2277
2278 * Removed duplicate lily/output-property-engraver.hh.
2279
2280 * Removed optional use of vanilla spanner in Dynamic_engraver.
2281
2282 * Fixed (measured) tremolo for Stem and Beam. Merged declarations
2283   stem-engraver.hh and chord-tremolo-engraver.hh into their .cc
2284   implementation file.  Also fixed looks of Chord tremolo, input and
2285   implementation is still ugly.
2286
2287 * Added *.yy and *.ll to TAGS, to that tags-find-replace doesn't omit
2288   parser and lexer.
2289
2290 1.3.31.mb1
2291 =========
2292
2293 * Fixed \specialkey and \normalkey. Updated documentation.
2294
2295 1.3.32
2296 ======
2297 1.3.31.jcn5
2298 ===========
2299
2300 * Fixed and cleaned-up Dynamic_engraver.  Optionionally uses vanilla
2301   spanner instead of Dynamic_line_spanner.
2302
2303 * Made gcc-2.95 compile fix in libc-extension.
2304
2305 * Various fixes to Coriolan, score starts to look acceptable.
2306
2307 * Moved optional text of crescendo into Crescendo spanner.  Fixed horizontal
2308   and vertical alignment of dynamics.
2309
2310 * Added new text crescendo spanners to Coriolan and made some fixes.
2311   If you're using timidity, use the -EO option to prevent notes get
2312   stuck.  I'm not sure whose fault this is, Lily's MIDI output may be
2313   stretching the standard a bit.
2314
2315 * Adjacent dynamic markings are now grouped on a horizontal line, but it's
2316   not perfect yet: they're always below the staff and no horizontal spacing
2317   is done.  Also, character metrics of dynamics are still not used.
2318   See: input/test/crescendi.ly and input/test/dyn-line.ly
2319
2320 * Cleaned up Span_dynamic_performer.
2321
2322 1.3.31
2323 ======
2324 1.3.30.mb1
2325 =========
2326
2327 * Fixed the page layout, reintroducing space for the header and
2328   trying to keep piece titles on the same page as the piece.
2329   The header and footer can now contain several lines.
2330
2331 1.3.30.jcn3
2332 ===========
2333
2334 * Lily now also performs crescendi and decrescendi in MIDI output:
2335   Span_dynamic_performer in a slightly crappy way.
2336
2337 * Added preliminary support for crescendi/decrescendi other than `hairpins',
2338   eg: `cresc. poco `a poco -- -- --'
2339
2340 * Made MIDI tie performance fix.
2341
2342 1.3.30.jcn2
2343 ===========
2344
2345 * Lily now performs absolute dynamics in MIDI output.
2346
2347 * Included David's comments on opus47 in TODO.
2348
2349 1.3.30.jcn1
2350 ===========
2351
2352 * More Coriolan: flute-1,2; oboe-1,2; clarinet-1,2; 
2353   fixes and remainder french horn-1,2; trombone-1,2;
2354   fagotto-1,2; timpani; and several fixes.
2355   
2356 1.3.30.uu1
2357 ==========
2358
2359 * Remove some old doco from programmer/ and put on personal homepage.
2360
2361 * Removed union-find from flower library.
2362
2363 * Only quantise tie horizontal part inside the staff.
2364
2365 1.3.30
2366 ======
2367 1.3.29.hwn1
2368 ===========
2369
2370 * Report type errors for \property. Helps with converting 1.2 input
2371
2372 * Use Scheme for Align_element; fixed graceAlignPosition 
2373 and removed \property alignmentReference in the process.
2374
2375 * Use generic properties for lyrics too.  This fixes \property
2376 Lyrics.textStyle
2377
2378
2379 * Add relative distance for constraints between non-column items.
2380
2381 * Automatic \marks: use "\mark ; ". The mark numbers or letters are
2382 increased automatically.
2383
2384 * Translators now only change properties of their own context. This
2385 removes the 2nd argument to Translator::get_property()
2386
2387 * Bugfix for Metapost mode
2388
2389 1.3.29.uu1
2390 ==========
2391
2392 * Updates of glossary  (Christian Mondrup)
2393
2394 * Bugfix with bar number placement
2395
2396 * Moved links to bibliography/ and misc/ to main index.
2397
2398 1.3.29
2399 ======
2400
2401 * Moved Slur-specific code from Bezier_bow to Slur and Slur_bezier_bow.
2402   Slurs are now calculated just once.
2403
2404 * Bezier_bow gets constants from paper.  Still no sensible solution for
2405   magic asymmetry gradient step constants.
2406
2407 * Reinstantiated tangent-controls, more flexible than ever.  You can choose
2408   between area asymmetry and tangent-controls.  My guess is, tangent controls
2409   will be junked in 1.3.30.
2410
2411 * Slur area: only look at x-gradient.
2412
2413 * Added credits for some symbols of as5/9 fonts.
2414
2415 * Bugfix: don't make almost flat slurs, change in de-uglyfy slur.  
2416
2417 * Bugfix: midi2ly put out recent version (ugh).
2418
2419 1.3.28.hwn2
2420 ===========
2421
2422 * Bugfix: don't forget to process staffSpace and numberOfStaffLines
2423 properties.
2424
2425 * Removed Gade score. To appear (shortly?) on Mutopia. 
2426
2427 * Make Bar_script_engraver look for typeVisibilityFunction (eg
2428 property barNumberVisibilityFunction). Changed the names of the Scheme
2429 functions to be understandable. See input/test/bar-script-visibility.ly
2430
2431 * rewrite of class Molecule. It has now reached the ultimate quality
2432 plateau. All molecule data is now shared.
2433
2434 1.3.28
2435 ======
2436
2437 * Update of the glossary by Christian Mondrup 
2438
2439 * Moved horn-concerto-3 out of tarball to private website, removed
2440 W.A.Mozart subdirectory.
2441
2442 1.3.27.hwn1
2443 ===========
2444
2445 * Bugfix: don't make giant ties if the horizontal part of tie is near
2446 the center.
2447
2448 * Small optimizations to be a little more careful with mem usage. 
2449
2450 * Website change: put all examples in one directory.
2451
2452 * Removed Atom as a separate type.  Now use SCM, and since we use
2453 function composition, Atoms are immutable, so they don't have to be
2454 copied. This makes life easier, hopefully this is quicker and uses
2455 less memory.
2456
2457 1.3.27.jcn1
2458 ===========
2459
2460 * Bezier_bow: minimise_enclosed_area
2461
2462 1.3.27
2463 ======
2464
2465 1.3.26.hwn4
2466 ===========
2467
2468 * Tuplet-spanner slope calculation now looks better on tupletted rests
2469 (patch courtesy Laurent Martelli)
2470
2471 * Bugfix (Staff_performer::new_instrument_str ()) check type of
2472 \property "instrument"
2473
2474 * New mechanism for breaking lines: do not copy & prune the element
2475 property list separately, but combine these steps. Dramatically
2476 reduces memory usage for large scores.
2477
2478 1.3.27
2479 ======
2480 1.3.26.jcn2
2481 ===========
2482
2483 * Bugfix: font used in volta-spanner calculation.
2484
2485 * Added simple selection list to webpage, inspired by sawmill.
2486  
2487 * Devised kludge for ascii 5 character font pitches.
2488  
2489 * Substitutions: interline, 1997,1998, @stack.nl and small typo fixes.
2490
2491 1.3.26.hwn1
2492 ===========
2493
2494 * Plug memory leaks related to Moment:
2495   - Spacing_engraver::do_pre_move_processing ()
2496   - make_rational ()/make-rational
2497   - Paper_column::Paper_column ()
2498
2499 * Plug memory leak in Paper_outputter::output_{String,Real,int}_def()
2500
2501 * Plug memory leak in Score_engraver::set_columns ()
2502
2503 * Plug memory leak in Scheme_hash_table::set()
2504
2505 * Plug memory leak in Score_element::molecule_extent ()
2506
2507 * Bugfix: don't crash if a slur doesn't span anything.
2508
2509 * Bugfix: don't crash if doing beams without a staff symbol.
2510
2511 * Generic element property setting:
2512
2513         \outputproperty #predicate #'symbol = #value
2514
2515 Will set the element property symbol to value, for any elements that
2516 return true for PREDICATE.  This allows you to virtually tweak *ANY*
2517 property of the output. Example in input/test/generic-output-property.ly
2518
2519 1.3.26
2520 ======
2521
2522 * lilypond as as2ly: --help and --version to stdout.  Regular identify 
2523   to stderr.  This fixes help2man's manpage generation.
2524
2525 * configure: substitute full path for perl and guile in scripts.
2526
2527 * Added ascii slur and volta.  There seems to be a Lily bug in volta placement.
2528
2529 * Bugfix: default font now user settable
2530
2531 * as2text: handle plain ascii font, read from stdin, you can now do:
2532
2533   echo "\time 4/4; g''1 g2 g4. g8" | lilypond -f as -i init-as.fly - | as2text
2534
2535 1.3.25.hwn1
2536 ===========
2537
2538 * Bugfix: second half of broken ties now are displayed again.
2539
2540 * Bugfix: add clef to the support of 8 text in the G_8 clefs. Center
2541 it horizontally on the clef.
2542
2543 * Added Tie_column spanner. Ties in tied chords now get proper directionsa.
2544
2545 * Bugfix: unbroken repeat barlines now work, eg. |:
2546
2547 * Added Request_iterator to make more flexible constructions possible.
2548
2549 1.3.25
2550 ======
2551 * as2text: catch missing font/character errors, added default font, set text.
2552
2553 * New ascii fonts and glyphs: as5 as-numeral4 as-braces9
2554
2555 * Ascii output, minimal support:
2556   - AsciiScript Fonts: mf/*.af
2557   - Init files: ly/*-as.*ly 
2558   - AsciiScript translation to text: scripts/as2text.scm
2559   - input/test/as.fly input/test/as1.fly
2560   - Output support: lily/lily.scm
2561   - Try:
2562       lilypond -f as -i init-as.fly input/test/as.fly
2563       as2text as.as
2564
2565 1.3.24.hwn1
2566 ===========
2567
2568 * The horizontal part of ties will avoid collision with staff lines.
2569
2570 * Plugged memory leak: don't protect Atom function.
2571
2572 * Lookup cleanups. Made lots of functions static. Moved some code out
2573 of Lookup.
2574
2575
2576
2577 1.3.24.hwn1
2578 ===========
2579
2580 * Bugfix: ly2dvi.py exits succesfully when encountering --help and
2581 does not delete any of the file_ly*.tex.
2582
2583 * Added header and footer support in ly2dvi.py
2584
2585 1.3.24
2586 ======
2587
2588 * Added a ROADMAP file explaining the source directory layout.
2589
2590 * Minor tweak in the feta 6 and 9 numeral
2591  
2592 * Moved files from lib/ to flower/
2593
2594 * Removed Note_head_side class.
2595
2596 * Updated the webpage to be a little more chatty. 
2597
2598 * Small Local_key_engraver optimization: only lookup timing engraver once.
2599
2600 * Fixed dashed slurs
2601
2602 * Rewrite of Slur code.  Be much more picky about slur shapes. We try
2603 to offset the slur instead of bending it too much
2604
2605 * Look at stem directions for tie direction.
2606
2607 * Compound multimeasure rests. Put measures_i_ variable in an element
2608 property.  Made the symbol a lot wider.
2609
2610 * Time signature small cleanups.
2611
2612 1.3.22.hwn2
2613 ===========
2614
2615 * Symbols opposite to stem (eg marcato) now get the proper glyph in up
2616 version.
2617
2618 * Breathing marks now have a direction by default.
2619
2620 * Do set generic script properties.
2621
2622 * Also put tuplet brackets under notes.
2623
2624 * Score_element_info: only store origin of element, but not the path
2625 to parent translators. Saves a little memory, and removes some complexity.
2626
2627
2628 1.3.22.hwn1
2629 ===========
2630
2631 * Autobeaming in time sigs that don't have 1/4 beats fixed.
2632
2633 * (De)crescendi should now work. (Thanks Michael)
2634
2635 * Better error reporting for conflicting time signatures.
2636
2637 * Line_number_engraver: output locations of note head
2638 definitions. Very handy when entering complicated scores.
2639
2640 * Rewrote multi measure rest support: now they are entered as spanners
2641 (\commandspanrequest \start "rest"). RXXXX is an abbreviation for
2642
2643   { \commandspanrequest \start "rest"
2644     SXXXX
2645     \commandspanrequest \stop "rest"
2646   }
2647
2648 * Removed support of percent style repetitions. 
2649
2650 * Put texts outside the staff.
2651
2652 1.3.21.mb1
2653 ==========
2654 * Getopt bugfix: don't assert on certain errors.
2655
2656 * ly2dvi: Remove unnecessary space for the page headers.
2657
2658 * Bugfix convert-mudela
2659
2660 1.3.21.hwn1
2661 ===========
2662
2663 * Bugfix in lilypond-mode.el: eval-buffering now uses file name and
2664 not buffer name.
2665
2666 * Scrapped tupletVisibility property. Now use tupletNumberVisibility,
2667 tupletBracketVisibility, with Scheme value #t, #f or 'if-no-beam.
2668 \property tupletInvisible will stop all tuplet spanner creation.
2669
2670 * Don't go berserk if tuplet spanner is on only one column.
2671
2672 * Use SCMs & Smobs for Molecules & atoms.  This uses less
2673 scm_(un)protect_object () calls, so the output stage should be faster.
2674
2675 * Added \property tupletSpannerDuration, to make multiple tuplet signs
2676 with one \times.
2677
2678 * Some programming Errors in spacing are now caught. Lily does not
2679 hang when encountering degenerate springs.
2680
2681 * Allow beams to start and end over rests
2682
2683 1.3.19.hwn2
2684 ===========
2685 * Fix disappearing clefs when clefs are not printed with a barline.
2686
2687 1.3.20.jcn2
2688 ==========
2689
2690 * SCM properties beamHeight and beamVerticalposition now use half-spaces:
2691   input/test/beam-control.fly
2692 * Added \context Voice to .fly and .sly; the default \context Staff is almost
2693   never what you expect
2694 * Fixed decision for .sly/.fly in lilypond-mode.
2695
2696 1.3.19.hwn1
2697 ==========
2698
2699 * Clean up font-metric hierarchy, use Adobe AFM code to parse AFM files.
2700 Cleanup mf-to-table.py
2701
2702 * Fixed embarassing slur bug.
2703
2704 1.3.19.jcn1
2705 ==========
2706
2707 * lilypond-mode.el: guess init file for lily-*-region, lily-mode-map bindings
2708
2709 1.3.18.uu2
2710 ==========
2711
2712 * lilypond-mode.el for emacs supersedes mudela-mode.el 
2713
2714 * Tuplet spanners don't collide with encompassing notes. 
2715
2716 * Gobbled Adobe parseAFM* code, for future use.
2717
2718 * Big 1999 to 2000 search/replace.
2719
2720 * Big interline to staff_space search/replace for mf files.
2721
2722 * Removed Bow class, and split code into Tie and Slur
2723
2724 * Don't put scripts on grace notes.
2725
2726 * Font_metric uses SCM for name field.
2727
2728 * Various compilation fixes.
2729
2730 1.3.17.jcn2
2731 ===========
2732
2733 * Bugfix: beams with less than one (visible) stem
2734
2735 * small fixes to pa.ly
2736
2737 1.3.17.jcn1
2738 ===========
2739
2740 * Fixed bug that made multi-measure rest barnumber counts go wild.
2741 (even more scm2int/int2scm mixups!)
2742
2743 * mutopia/J.S.Bach/pa.ly: organ score (for my father)
2744
2745 * small fix to mutopia/J.S.Bach/Duette/violino-ii.ly
2746
2747 1.3.17.hwn2
2748 ===========
2749
2750 * Remove Paper_def calls in bezier-bow.cc
2751
2752 * Remove data members of Tuplet_spanner,  Volta_spanner
2753
2754 * hang_on_clef, property hangOnClef removed
2755
2756 * Bar::type_str_ mode into element property `glyph'. Use a Scheme
2757 function to determine breaking behavior.
2758
2759 * More Scheme typechecking.
2760
2761 * Be strict about the difference between strings and symbols for conversion.
2762
2763 * Fixed bug that made 1st line offset to right fixed. Bugfix courtesy
2764 Laurent Martelli.
2765
2766 * Partial French translation, courtesy Laurent Martelli.
2767
2768 * Small corrections in NL translation. 
2769
2770 1.3.17.hwn1
2771 ===========
2772
2773 * Added mensural note heads (noteHeadStyle = "mensural") Additionally,
2774 we have a longa note head.  noteHeadStyle = "harmonic" is not
2775 supported anymore. (for now, that is)  
2776
2777 * Reference manual update. Document \properties with examples
2778
2779 * fix mudela-book --help
2780
2781 * Use element properties for Text_item::text_str_, Clef_item::symbol_,
2782 Key_item::c0_position_
2783
2784 * Clef_engraver general cleanup. Use alists (\property
2785 supportedClefTypes, clefPitches) for clef types.
2786
2787 * Use progress_indication () for progress. Don't include <iostream.h> directly 
2788 Don't include <string.h>, <math.h> from headers.
2789
2790
2791 1.3.16.hwn1
2792 ===========
2793
2794 * \property stemCentered (boolean): centers stem on note head. See
2795 input/test/stem-centered.ly
2796
2797 * input/trip.ly, small test of lots of features.
2798
2799 * \property Staff.collisionMergeDotted: merge equal noteheads
2800 with different dot count. See input/test/collision-merge-dotted.fly
2801
2802 * Dotted rest bugfix 
2803
2804 * Don't crash if a slur does not span any notes.
2805
2806 * Volta repeats fixed.
2807
2808 * cleanup of Note_heads_engraver
2809
2810 * removed dots_i_ member of Dots
2811
2812 1.3.16.jcn1
2813 ===========
2814 * Fixed cross staff slurs.  It seems that cross-staff sign
2815   was swapped.
2816
2817 1.3.15.hwn1
2818 ===========
2819
2820 * Fixed bug in stem code.  Stem in chords works again.  Small
2821 stem cleanups.
2822
2823 * Use element properties for Staff_symbol.
2824
2825 * \property sparseTies (boolean).  Only make one tie in the
2826 middle for tied chords.
2827
2828 * Junked Directional_spanner, Column_info.
2829 Directional_element now is element interface `Directional_element_interface'
2830
2831 * cleanup: use to_boolean () iso. gh_boolean_p && gh_bool2scm
2832
2833 pl 15.jcn4
2834         - removed old notename2scm conversion
2835         - beam-dir-algorithm through scm
2836         - bfs paper-scm
2837 gv      - bf: knee-stemlengths
2838
2839 pl 15.jcn3
2840         - moved poor man's stem arrays to scm
2841         
2842 pl 15.jcn2
2843         - beam quanting using scm lists
2844
2845 pl 14.hwn1jcn1
2846         - chord-name uses scm members
2847         - bfs: knee with different mults, interstaff knee, auto-knee
2848
2849 **********
2850 pl 14.hwn1
2851         - specialize duration.cc for lily, move out of lib/
2852         - stem cleanup
2853         - more SCM typechecking
2854         - stafflineleading -> staff_space
2855         - bf: rod distances.
2856         - junk some unused code.
2857         
2858 pl 13.hwn2
2859         - paper/score column cleanups. Junk Score_column type
2860
2861 pl 13.hwn1
2862         - Bezier_bow/Bezier cleanups
2863         - bf: rest under beam.
2864         
2865 pl 13.jcn2
2866         - untangled Chord_name (item) and Chord (list-of-pitches)
2867         
2868 pl 13.jcn1
2869         - bezier-bow fix
2870
2871 **********
2872 pl 12.hwn1
2873         - polynomial.hh
2874         - bf: generic properties
2875         - quantise_iv () fix.
2876         - bezier cleanup
2877         - class Polynomial 
2878         - use smobs for font metric tables/hashes.
2879         - nl.po bf
2880
2881 **********
2882 pl 11.jcn3
2883         - small beam fixes (interstaff knees still broken)
2884
2885 pl 11.hwn1
2886         - bf: dots
2887         - bf: harmonic note heads
2888         - revise stem, notehead, rest
2889
2890 pl 11.jcn2
2891         - included missing scm,ly updates
2892         - bf: urg to_dir () takes scm..
2893         - bf's: if (Foo b = bar != 1)
2894         - beam cleanup
2895
2896 *********
2897 pl 10.uu1
2898         - various small bfs
2899         - bf: alignment reversed
2900         - Staff_symbol_referencer -> Staff_symbol_referencer_interface
2901         - bf: staccato pos
2902         - Knee fixes (thanks, Jan)
2903
2904 pl 10.jcn2
2905         - fixes for invisible beamed stems
2906         - removed steminfo from properties, don't cache Stem_info
2907
2908 pl 10.jcn1
2909         - steminfo to properties
2910         - dropped internote dim for stem-beams
2911
2912 *********
2913 pl 9.hwn1
2914         - abstracting Staff_symbol_referencer to an interface.
2915         - quantised_position for staccato dots.
2916         - standchen fixes
2917         - junk Score_element::do_{width,height}: set callbacks directly.
2918         - merge Score_element, Graphical_element
2919         - merge Axis_group_element, Graphical_axis_group
2920         - junk pointer fields from Score_element derived classes
2921         - junk obsolete do_substitute_dependency code.
2922
2923 **********
2924
2925 pl 8.hwn2
2926         - staff-support for Crescendi.
2927         - padding for accidentals.
2928         - cascading offset callbacks
2929
2930 pl 8.hwn1
2931         - note-head-side 
2932         - naming Staff_sidify -> Side_position_interface
2933
2934 ***********
2935
2936 pl 7.mb1
2937         - bf: timeSignatureStyle works again
2938
2939 pl 7.hwn1
2940         - Dirk Latterman key/mmrest patches
2941         - Offset callbacks in Dimension_cache
2942         - Junked Staff_side_*
2943         - Staff_sidify: interface class.
2944         - prelude-{1,2} fixes.
2945
2946 ***********
2947 pl 6.uu2
2948         - bf: PS font selecting.
2949
2950 pl 6.uu1
2951         - bf: ls-latex
2952         - mudela-book --no-pictures
2953         - bf: ly2dvi
2954         - convert-mudela: beamAuto moment syntax. 
2955
2956 pl 6.jcn3
2957         - fixed scm output
2958
2959 pl 6.jcn2
2960         - half-baken ly-gulp-file in scm
2961         - resurrected scm output through guile
2962
2963 pl 5.mb1
2964         - bf: version of init.sly, init.fly
2965         - Clarify necessary version of texinfo
2966         - bf: texi files, minor errors and syntax compatible with 
2967           older makeinfo
2968
2969 pl 6.jcn1
2970         - bf: scm output
2971
2972 *******
2973
2974 pl 5.hwn2
2975         - Bach preludes: mutopification
2976         - dots are Directional_element too; use \property dotDirection
2977         - moved some stuff out of Lookup
2978         - bf: dots
2979         - font selection mechanics changed.
2980
2981 pl 5.uu1
2982         - bf: smob allocation (thanks David!)
2983
2984 pl 5.hwn1
2985         - junked \shape. Now use #'margin-shape 
2986         - timing: one_beat -> \property beatLength
2987         - bf convert-mudela
2988
2989 ************
2990
2991 pl 4.uu1
2992         - input/test/ \property fixes.
2993         - gcc 2.95 fix
2994
2995 pl 4.hwn1
2996         - Break_align_engraver,
2997         break align order from  \property breakAlignOrder
2998         - junked Score_priority_engraver
2999         - moved Time_description into Timing_translator
3000         - use properties for timing, see input/test/timing.fly
3001         * removed \cadenza ; now use \property Score.timing
3002         * \property measurePosition
3003         * \property measureLength
3004         * \property currentBarNumber
3005         - Note_name_engraver , \context NoteNames
3006
3007
3008 pl 4.jcn1
3009         - junked some chord guessing code
3010         - bf: lookup size (-1) for chord-name accidentals
3011         - bf: ly2dvi's MFINPUTS setting
3012
3013 *************
3014 pl 2.jcn3
3015         - chords:
3016           * Chord is item
3017           * junked TeX hacking
3018           * configurable with styled strings from scm
3019           * fixes: dim, /no X, tonic != C
3020
3021 pl 2.jcn2
3022         - chords from  scm 
3023
3024
3025 pl 3.hwn2
3026         - visibility-lambdas into default elt properties SCM.
3027         - clef types in SCM
3028         - verticalDirection properties now in SCM.
3029
3030 pl 3.hwn1
3031         - move position_i_ into Staff_symbol_referencer
3032         - move dir_ into Directional_element baseclass
3033
3034 ****************
3035
3036 pl 2.hwn1
3037         - bf: dynamic style.
3038         - prepare to move dir_ into SCM. 
3039
3040 pl 2.jcn2
3041         - chord fixes: 
3042            * inversion request: no inversion guessing for chord entry
3043            * bass request: c/+b to add bass note not part of chord
3044            * -dim modifier works on all thirds
3045            * colon iso dash as tonic/modifier-additions separator
3046            * C:m5- displays as "Cdim"
3047            * C:m5-7- displays as "Co"
3048
3049 pl 2.jcn1
3050         - moved bracket vars to params
3051         - reverted broken lilypond-devel
3052
3053 *************
3054 pl 1.uu1
3055         - David's patches:
3056         * mfplain.mp detection
3057         * Graphical_element::common_refpoint() robuster.
3058         * fixes for mudela-mode.el
3059         - Dirk's patches:
3060         * key signature placement,
3061         * tied accidentals.
3062
3063 pl 1.hwn2
3064         - extra-offset elt property.
3065         - junked Chord_tremolo
3066
3067 pl 1.hwn1
3068         - changed calling convention for {get,set,remove}_elt_property()
3069         - rm'd some mutopia examples.
3070
3071 *******
3072 pl 0.hwn2,1
3073       - Generic properties and Property_engraver. Moved most of the
3074 properties.
3075
3076 0.lu1
3077         - resurrected midi2ly
3078
3079 0.jcn1
3080         - bf: lyrics lexer
3081         - reverted mup2ly revert
3082
3083 pl 3.uu1:
3084         - frontport of 1.2.17 patches.
3085
3086 **********
3087
3088 1.3.0:
3089
3090 pl 15.hwn2
3091         - loads of bfs.
3092
3093 pl x.jcn3
3094         - another workaround: reset buffer state for scm_ftell ()
3095         - workaround for broken scm_ftell ()
3096
3097 pl 15.hwn1
3098         - \properties are now SCM s, junk Scalar type
3099         - use SCM for strings in parser.
3100         - Moment derived from Rational. Moment may be smobified.
3101
3102 pl 15.jcn4
3103         - direct #... to scm parser  (Thanks to Gary Houston)
3104
3105