]> git.donarmstrong.com Git - lilypond.git/blob - CHANGES
patch::: 1.3.84.jcn1
[lilypond.git] / CHANGES
1 1.3.84.jcn1
2 ===========
3
4 * Updated INSTALL.texi
5
6 1.3.84
7 ======
8
9 * pmx2ly, PMX to LilyPond conversion. Succesfully converts barsant.pmx.
10
11 * musedata2ly, a Musedata to LilyPond convertor. Succesfully converts
12 wtk1-fugue2
13
14 * bugfixes for dynamics: make sure that dynamic alignments encompass
15 the dynamics they support, and that any columns they attach to aren't
16 prematurely killed.
17
18 * bugfix: make sure \time gets noticed early enough.
19
20 1.3.83
21 ======
22
23 * small doc updates.
24
25 * Cleanups related to barline handling:
26
27   - Removed Translator_group::get_simple_translator (), and -
28
29   - use properties to communicate about barlines and time sigs. (NOTE:
30     by default a time-signature of 4/4 is printed.)
31
32   - fix repeat bar behavior.
33
34
35 * cleaned up Directional_element_interface
36
37 * add name field to score-elements.
38
39 * comment in some unprotects for Music in parser. Should bring down
40   cpu time and plug some leaks.
41
42 * robustness fixes for etf2ly, tuplets, grace notes. 
43
44 1.3.82
45 ======
46
47 * engraver.ly: cleanups.
48
49 * etf2ly: robustness fixes, handle mac files as well.
50
51 * Smobified Translator and Translator_group, junked
52 Translator_group_identifier.
53
54 * \pushproperty and \popproperty withing \translator, similar to
55 predefining \property, ie.
56
57         \translator { [...] \pushproperty [..] }
58         \translator { [...] \popproperty [..] }
59
60 (these \pushes and \pops are delayed until instantiation, so if you do
61
62
63         \score {
64                 \pushproperty #'basicFooProperties #'bla #VALUE1
65                 \context Voice { \pushproperty #'basicFooProperties #'bar #VALUE2
66                         [..]
67                 }
68         }
69
70 then the setting for basicFooProperties contains both (bla . VALUE1)
71 and (bar . VALUE2).
72
73 * allow \pushproperty #'symbol [..] as well as \pushproperty #'(symbol1 symbol2 ... )
74
75 1.3.81.jcn1
76 ===========
77
78 * Activated regex for windows.
79
80 * New guile-1.4 patch for cross windows build.
81
82 * Added configure messages for metapost checking.
83
84 1.3.81
85 ======
86 1.3.80.gp1
87 ==========
88
89 * Added property LyricVoice.associatedVoice to enable switching associated
90   voice mid-stream. Association still defaults to context name.
91
92 1.3.80.hwn1
93 ===========
94
95 * \pushproperty, \popproperty: property settings with less memory
96 cost. See input/test/pushproperty.ly and Documentation/hacking. Note:
97 syntax is most likely only temporary.
98
99 1.3.80.jcn1
100 ===========
101
102 * (Line-)broken slurs now have vertical trend.
103
104 * Better length for broken ties: no invisibly short ties.  Now ties may
105   collide with time signatures, though.
106
107 * Don't typeset unfinished spanners, but kill them.
108
109 * Added two FAQs (Mats)
110
111 * Made workaround guile-1.4.1 backward incompatible (scm_)eval change.
112   Note that we must use (scm_)eval2 to remain backwards compatible with
113   guile < 1.4.1 snapshot.
114
115 * Reincluded 79.jcn2 fix
116
117 1.3.80
118 ======
119
120 1.3.79.jcn5
121 ===========
122
123 * Created Thread_devnull_engraver and Voice_devnull_engraver iso
124   single A2_devnull_engraver in Thread context.  It seems however
125   that the hack in A2_devnull_engraver works better.
126
127 * Coriolan fixes.
128
129 * Slur attachment fix for chords where case slurdir != stemdir.
130
131 * Made various fixes for (line-)broken slurs.
132
133 * Fixed slur_height (), which fixes most ugly slurs (Yeah!).
134
135 * Fixed some silly url reversals in FAQ.
136
137 * Finished Coriolan music entry (again); entered second viola part.
138
139 * Updated Coriolan to use part combiner on Voice level for wind parts
140   and on Staff level for violi and bassi.
141
142 * Part-combiner now uses duration inquiry, which fixes rhythm-related
143   bugs in determining solo/a2.  Also, rests are taken into account.
144
145 * Another crude fix for almost unexplainable (with a gdb that dumps
146   core on ly_display_scm) all-zero control points slurs.
147
148 * Fixed slurs that crossed through stems and note heads.  Note
149   that beautifying of ugly slurs is still broken.
150
151 * Made crude fixes slurs don't crash, bezier still crashes on
152   infinitely steep slurs (eg flauti-part *with* slur_engraver).
153
154 1.3.79.gp1
155 ==========
156
157 * Replaced empty melisma score element with a property
158
159 * Renamed Voice_alist_entry -> Syllable_group in lyric-phrasing-engraver
160
161 1.3.79.uu1
162 ==========
163
164 * fixed y-position of whole rest
165
166 * fixed sustainPedalPadding
167
168 * etf2ly: articulation, lyrics.
169
170 1.3.79
171 ======
172
173 * etf2ly.py: Finale to LilyPond conversion.
174
175 1.3.78.jcn4
176 ===========
177
178 * Made simple fix to get part-combiner to recognise different rhythms
179
180 * Unhardcoded part combiner and a2-engraver; introduced properties
181   splitInterval, soloADue, soloText, soloIIText, aDueText.
182
183 * Fixed part combiner's too-late problem (Dankje!)
184
185 * Fixed a2-devnull-engraver, a2-engraver.
186
187 * Renamed part combiner music names to "one", "two".
188
189 * Cleaned up decision making in part combiner, renamed to "solo"/"unison"
190
191 1.3.77.mb1
192 ==========
193
194 * Minor documentation updates
195
196 * Mark_engraver: has been broken since .73, fixed!
197
198 1.3.78
199 ======
200
201 * Added a devnull engraver, that junks (notehead) requests of the second
202   stem when combined parts are in unison (a2).
203
204 * Part-combine iterator identifies Soli and A2 parts in threads by 
205   looking at rhythm and pitches.  It switches Voice context automagically,
206   and communicates current state using a2/solo/solo2 properties.
207
208 * Simple A2_engraver (`a due) prints `a2/Solo/Solo II.  Soli seem to
209   arrive one request late.
210
211 * First try at combining parts: part-combine*
212
213 * fixed problem with HaraKiri
214
215 * fixed problem with dynamicDirection
216
217 * fixed problem with nonEmptyText 
218
219 * `Fixed' chord notation, as per request of David Arnold, ie, 
220    Added a chord-name-mode, that only displays chord names
221    when there's a change in the chord-name-scheme, Also, a chord
222    name should always be displayed after a line break.  See
223
224        input/test/drarn-chords.ly
225
226 * Reverted duration-iter change in midi2ly, moved printing of options.
227
228 * warning bugfix in lexer.ll (Mats Bengtsson)
229
230 1.3.77
231 ======
232
233 * Midi2ly bugfix: handle durations longer than longa.  These can occur
234   because of lengthened notes when using --no-rests.
235
236 * Midi2ly: output `new' \key syntax, and updated version number.
237
238 * Midi2ly bugfix: don't correct quantised durations, don't use tuplets, 
239   double dots etc. when user doesn't want them.  It probably used to
240   work like this, a long time ago.  For some unknown reason, all
241   corrections made by Duration_convert were junked if the corrected
242   duration != exact duration.  Duh.
243
244 * Midi2ly: added a new option: --no-rests.
245
246 * Update of mudela-book (Tom Cato Amundsen)
247  - --read-lys option, now you can do:
248         mudela-book file.texi
249         convert-mudela
250         mudela-book --read-lys
251  - --outdir=DIR will put ALL output into DIR
252  - @mudela[filename="myfilename"]{c d e f g}
253  - --force-mudela-fontsize
254  - ignore mudela inside @ignore @end ignore
255
256 1.3.76.gp1
257 ==========
258
259 * Lyric_phrasing_engraver now catches lyric extenders and correctly
260   terminates them under the last note of a melisma.
261
262 * Lyric word spacing code changed to fix hyphen alignment.
263
264 * Other minor tidying up of Lyric_phrasing_engraver and related code.
265
266 1.3.76
267 ======
268
269 * Lyric_phrasing_engraver now adjusts for melisma.  (Glen Prideaux).
270
271 * Mudela-book fix for Windows95 (Mark Hindley)
272
273 * Debian update (Anthony Fok)
274
275 * Added beam melisma for when automaticMelismata and noAutoBeaming are both
276   #t (primarily for hymns).  Courtesy Glen Prideaux.
277
278 * Bugfix: .pfa dependency on $(outdir)/mfplain.mem
279
280 1.3.75.mb1
281 ==========
282
283 * stepmake/stepmake/metapost-rules.make: Put all generated files
284   in mf/out/.
285
286 * Added paper variable interscoreline to determine the score line
287   spacing, see input/test/vertical-extent.ly.
288   Cleaned up the lilyponddefs.tex inclusion scheme.
289
290 1.3.75
291 ======
292
293 1.3.74.gp1
294 ==========
295
296 * Improved default handling of Lyric_phrasing_engraver and made it on by 
297 default.
298
299 * Beginnings of a stanza number engraver (\property LyricVoice.stanza = 
300 #"1:" etc.)
301
302 * fixed bug in script.cc so fermata (and other scripts) get flipped 
303 correctly when they are above the staff.
304
305 1.3.74.jcn2
306 ===========
307
308 * Reincluded simple code for including tfm.[1-5] into search path.
309   Configure with --disable-kpathsea to enable this kludge.
310
311 1.3.74.jcn1
312 ===========
313
314 * Updated input/test/banter-chords.ly German H/B example.
315
316 * Updated nl.po.
317
318 * Have configure check for kpathsea library and functions.  Made kpathsea
319   support optional for now.
320
321 * Bugfix: halved width of tremolo-beams.
322  
323 * Included compilation fix for guile-1.3.4 (Anthony).
324
325 * Added: chord inversion and base to regtest.
326
327 * Fixed: Chord names that were broken by pl73.
328
329 * Fixed: Chord inversions that were broken by pl72.
330
331 * Resurrected ascii-script output, for debugging purposes.
332
333 * Included compilation fix for scm-hash.cc (Han-Wen).
334
335
336 1.3.74
337 ======
338
339 * Small bugfix: also do a deep copy on  submusices
340
341 * Fixed:  \autochange doesn't crash anymore.
342
343 * Cleanup, documentation and enforcement of smob interfaces in
344 LilyPond.  We distinguish between SIMPLE_SMOBS and SMOBS (objects that
345 have self_scm_)
346
347 * Glen Prideaux lyric phrasing engraver. See
348 input/test/lyric-phrasing.ly
349
350 1.3.73
351 ======
352 * Removed \interscoreline after the last line, prevents some
353 empty pages. (patch by Mats Bengtsson)
354
355 * Smobified Music, junked associated identifiers. Use Scheme list to
356 store Music_sequence.  Removed const declarations from
357 Music_iterators.  Added a mutable and immutable property list to
358 Music.  Use music property for all Scheme values in Music.  Created
359 and fixed a load of Garbage Collection bugs.
360
361 * Changed number font to allow automatic .mf creation.
362
363 * Output place of definition as \special{src:LOCATION}. See FAQ for
364 explanation how to use.
365
366 * Schemified Local_key_item and fixed minor bug with accidentals.
367
368 * new Japanese .po file.
369
370 * Bugfix for broken tie direction
371
372 * Bugfix for bar at beginning of line break
373
374 1.3.72
375 ======
376
377 * Robustness fix for minimise_least_squares ()
378
379 * cleanups of Slur_bezier_bow, removed Bezier_bow.
380
381 * cleanup of Tie. Changed Tie into interface. Made ties flatter by default.
382
383 * changed SCM_UNDEFINED to SCM_UNSPECIFIED for return values that go
384 back into Scheme.
385
386 * changed SCM_UNSPECIFIED to SCM_EOL for undefined element
387 properties. This makes initializing list properties redundant.
388
389 * removed idiotic code for including tfm.[1-5] into search path.
390
391 * fixed problem with tuplet placement for cross staff tuplets.
392
393 1.3.71
394 ======
395 * Small cleanups to bring down  compile time and binary ensmallment.
396
397 * Made Lookup into a smob, and use guile alist iso. an STL map.
398
399 * Changed repeated music semantics for relative octave: each
400 alternative takes its inital octave from the body.
401
402 * Fixed: parser accepts booleans for property values as well.
403
404 * Added Scarlatti sonata test file to input/
405
406 * kpathsea support, courtesy Carsten Block <carsten.block@gmx.de> 
407
408 1.3.70
409 ======
410 * Fixed: long standing problem in optical-illusion code.
411
412 * Fixed: stop beam if stem *has* a beam in auto-beam-engraver. 
413
414 * Made interface of Multi_measure_rest, System_start_delimiter,
415 Spacing_spanner, Separating_group_spanner, Beam, Slur and
416 Rhythmic_head.
417
418 * Use properties for minimum distances and spring parameters.  Move
419 spacing related functions from Paper_column into Spaceable_element.
420
421 * Removed most Paper_column typecasts.
422
423 1.3.69
424 ======
425
426 * Cleanup auto-beam-engraver: use properties for retrieving timing
427 information.
428
429 * Fixed: Multi measure rests don't cause crashes.
430
431 * Fixed: don't invoke Hara_kiri::consider_suicide too early.
432
433 * Fixed: property engraver.  
434
435 * Fixed: don't crash on multiple ties.
436
437 * Cleanups of Beam, should also be a little faster.  
438
439 * Reunite properties and pointers. In implementation we make a
440 distinction between mutable and immutable properties
441
442 * Add {has|set}_interface () static methods to interface classes.
443
444 * Made Side_position_interface and Staff_symbol_interface an all
445 statics class, and stripped _interface suffix.
446
447 * Make Align_interface and Axis_group_interface an all-statics class 
448
449 * Rhythmic_head, Staff_symbol, Grace_align_item, Break_align_item,
450 Bar, Span_bar are now interfaces, Staff_bar was removed. Use a
451 callback for determining barsize.
452
453 * Removed all GLUE_SCORE_ELEMENT callbacks. 
454
455 * Added test for repeats to trip.ly
456
457 1.3.68
458 ======
459
460 * ly2dvi: changed back to original semantics of latexheaders.
461
462 * Stem_tremolo, Crescendo, Hara_kiri_group_spanner, Tuplet_spanner,
463 Volta_spanner changed into interface.
464
465 * Related cleanups for Tie, Tie_column cleanups.
466
467 * Made Time_signature, Single_malt_grouping_item, Script_column,
468 Chord_name, Dot_column, Breathing_sign, Key_item type into interface.
469
470 * Removed const declaration from callback arguments.
471
472 * Pagebreak support. See input/test/between-systems.ly
473
474 * Fixed a problem with accidentals in combination with
475 non-nil key signatures.
476
477 1.3.67
478 ======
479
480 * Use callbacks for augmentation dot positioning.
481
482 * Removed types Note_head and Rest
483
484 * Cleanup of slur.cc: use common reference points in a sane manner.
485
486 1.3.66
487 ======
488
489 * Corrected text sizes in paper*.ly (Mats Bengtsson)
490
491 1.3.65.uu1
492 ==========
493
494 * Dots, Collision, Rest_collision removed as separate Score_element type.
495
496 * Stem and Note_column accept only one rest.
497
498 * Use offset callback in Stem to resolve rest/beam collisions.
499
500 * Put the value of new  local key signature (accidentals) back into a property.
501
502 * Set molecule-callback for notename item.
503
504 1.3.65.jcn2
505 ===========
506
507 * Added some comments to new slur code.
508
509 * Removed some ugly interstaff slur code, interstaff slurs at line-break
510   are still broken.
511
512 * Slur bugfix: 16th beams are also beams.
513
514
515 1.3.65
516 ======
517
518 * Bugfix: translate volta spanner at start of line.
519
520 * Changed directional_element() calls to instantiations
521 of Directional_element_interface.
522
523 * Removed Dynamic_line_spanner, and cleaned up Dynamic_engraver.
524
525 * Removed Staff_info type. Information about columns is now transferred
526 via currentMusicalColumn and currentCommandColumn.
527
528
529 1.3.64.jcn2
530 ============
531
532 * Made slur attachment position user settable; properties:
533 slurBeginAttachment slurEndAttachment, values: 'head 'stem
534 'along-side-stem.  See input/test/slur-attachment.ly and ophee-slurs.ly.
535
536 * Fixed slur attachment positions, added missing rule and use simple
537 default starting positions for attachments.
538
539 * Started rewrite of slur ending code, interstaff slurs are broken for
540 now.
541
542 * Fixed download URL of the webpage.
543
544 * Moved direction.cc to flower/.
545
546 1.3.64
547 ======
548
549 * Lyrics centered on notehead.
550
551 * Various bugfixes hyphen-spanner.
552
553 * Bugfix: set appropriate callbacks for Note_head. This fixes 
554 problems with dots.
555
556 * Removed Clef_item as score-element derived type.
557
558 * Updated config.sub and config.guess
559
560 * Bugfix: allow linebreaks on beamed grace notes.
561
562 1.3.61.jcn2
563 ===========
564
565 * Included dutch po-update based on submitted 1.3.57 nl.po
566
567 * Added "Development" link to website, now that "Home" is a relative link.
568
569 * Bugfix: use deep copies for resetting keys.
570
571 * Assorted typing erors in procedure names in ly/engraver.ly
572
573 1.3.62
574 ======
575
576 * Made callbacks from Score_element::before_line_breaking() and
577 Score_element::after_line_breaking()
578
579 * Fixed website; backlinks should work again.
580
581 * Removed --ignore-version option. Added --verbose option.
582
583 1.3.61
584 ======
585
586 * Webpage hacking
587
588 1.3.60.hwn1
589 ===========
590
591 * Junk int_identifier, real_identifier. Merged Midi_def_identifier and
592 Paper_def_identifier.
593
594 * Fixed bug with spanning barlines in combination with Hara-Kiri staffs.
595
596 * Cleaned up Text_item, Hyphen_spanner, Lyric_extender and
597 Sustain_pedal and reduced them to an Score_element interface (they are
598 no longer Score_element derived types).
599
600 * Some instances of brew_molecule routines have moved out of
601 Score_element, and are now called scheme_molecule.
602
603 * Moved lots of parameters from ly/params.ly to ly/engraver.ly
604
605 1.3.59.hwn1
606 ===========
607
608 * Removed String_identifier, and use the type system of GUILE instead.
609
610 * Fixed \key PITCH MODALITY syntax. The modality argument is now
611 mandatory, a rule in convert-mudela has been added.
612
613 * Cleaned up  buildscripts/ directory: removed obsolete scripts.
614
615 * Use Scheme_hash_table for identifier Scopes.  Scheme_hash_table is
616 based on STL and should be faster than hash_table.
617
618
619 1.3.59.jcn1
620 ===========
621
622 * Fixed scm_un/protect_object for guile-1.3.4 and 1.3.5 snapshots,
623   in the process reduced number of protect/unprotect calls.  With
624   guile-1.3.5 snapshot, memory usage has decreased by 1/5th, now
625   just 10% above the 1.2 level.  Also, Lily's a bit faster.
626
627 * Fixed make diff bug in stepmake to be able to make this diff :-)
628
629 1.3.58.hwn1
630 ===========
631
632 * Rewrote key sig support.  Now key signature can also be controlled
633 by setting keySignature and localKeySignature properties, eg.
634
635         \property keySignature = #'((2 . -1) ( 4 . -1) (6 . -1))
636
637 sets a key signature of `es ges bes' (an unusual key signature).
638
639 Keys are internally represented as transpositions of the c-major
640 scale. Printing the key signature for a scale is done by filtering out
641 all non-natural accidentals.
642
643 * Removed support for \keysignature, and \key something \minor; Newkey
644 is now obsolete.
645
646 1.3.58.jcn3
647 ===========
648
649 * Fixed pedal items (hw)
650
651 * Changed configure option tex-tmfdir to tmf-path now accepting multiple
652   tfm directories.  Automated links to cmr and amstex tfm font directories.
653
654 * Replaced one scm_assoc () u-turn slipped through jcn1
655
656 * various GUILE 1.3.5 compile fixes
657
658 * Added `Ped' as a compound symbol font and removed silly scheme kerning.
659
660 * Replaced some scheme assoc u-turns with scm_assoc ()
661
662 * Ran po-update (mostly because of new ja contribution).
663
664 1.3.57.jcn2
665 ===========
666
667 * Cleaned-up scheme list to text conversion for Chord_name and 
668 fixed horizontal kerning.
669
670 * Added examples for american (slashed o) and jazz (black triangle),
671   see input/test/{american-chords.ly,jazz-chords.ly}
672
673 * Made guile-1.3.5 compile fixes
674
675 1.3.57.uu1
676 ==========
677
678 * Fixed typo in Dots::do_brew_molecule (); this fixes the disappearing
679 dots problem.
680
681 * Rewrote key signature administration; now Scheme is used; Octave and
682 Key have been junked in favor of Newkey.
683
684 * japanese .po file included (thanks, Japanese team!)
685
686 1.3.57
687 ======
688
689 * Fixed several forgotten molecule-callbacks 
690
691 * Fixed first clef in score; now F clefs are also possible.
692
693 1.3.56.mb1
694 =========
695  
696 * Updated FAQ with two useful GDB macros.
697
698 * Several fixes in the documentation.
699
700 1.3.55.jcn1
701 ===========
702
703 * Made (dutch) po-update
704
705 1.3.56
706 ===========
707
708 * Molecules are now generated via callbacks exclusively; most calls to
709 set_elt_property ("transparent", SCM_BOOL_T) have been replaced by suicide().
710
711 1.3.55
712 ======
713
714 * Experimental property collapse for most score-elements.  (notable
715 exceptions: Scripts, pedals). Change all Score_element constructors to
716 take a basic-property list. The suffix of a property list may be
717 shared by several score-elements, for instance all default G-clefs in
718 a score share the following settings
719   
720            (breakable . #t)
721            (break-align-symbol . Clef_item)
722            (visibility-lambda . ,begin-of-line-visible) 
723
724 This should reduce memory usage further. 
725
726 * Magically fixed the disappearing Lyrics problem.
727
728 * Removed used_b_ field from Score_element.  
729
730 * Massive search-replace patch: store pointers and properties
731 separately, in preparation of property collapse.
732
733
734 1.3.54
735 ======
736
737 * Bugfix: don't crash on tuplet spanners that don't contain any notes.
738
739 * Cleanup of Dimension_cache: removed a few redundant
740 fields. Slightly lower memory usage (32 bytes per
741 score-element). Dimension_cache is now a `dumb' struct again.
742
743 * Add array index to priority field of text scripts to ensure that
744 order is unique, and sensible.
745
746 * Added an element count statistic.
747
748 1.3.53
749 ======
750
751 * russian.po (thank you, August.)
752
753 * Small cleanups in Molecule interface 
754
755 * Spacing related elements perform suicide after calculating
756 distances.  This saves a some memory, approximately 2 to 5 % ?
757
758 * Small cleanups in line breaking: Paper_column stores springs and
759 rods in only one place now.  All fields relating to energy have been
760 removed
761
762 * Don't generate all output Scheme in memory, but evaluate to output
763 file immediately.  This will reduce memory usage a little.
764
765 * Use STL's map  for Dictionary template
766
767 * Substitute pointers on element properties of the root Line_of_score
768 as well.
769
770 * Added toplevel doc target, to support building doc with --srcdir
771
772 * Removed cygwin build stuff; updated versions at:
773
774      http://appel.dyndns.org/lilypond/gnu-windows/cross
775
776 * Fixed lily.scm to handle incipits (thanks, Mats)
777
778
779 1.3.52
780 ======
781
782 * Made bugfix in smob handling: delete the C-part of freed smobs and
783 be honest about amount of allocation and deletion, so that GUILE
784 doesn't overestimate the amount of memory available.
785
786 * Faq update: nicer blank note paper, courtesy Mats Bengtsson.
787
788 * Bugfix: don't crash on durations that are not a power of 2.
789
790 * Build manpages during `make all' 
791  
792 * Bugfix: don't do absolute comparisons in Polynomial::clean ().
793
794 * Bugfix: set visibility-lambda for key signature created by
795 createKeyOnClefChange. Fixes disappearing key signatures. 
796
797 * Bugfix: make System_start_delimiter of bar-line type invisible when
798 it spans only one staff.
799
800 1.3.51
801 ======
802
803 * Item cleanups.  Copying items and rearranging pointers are done in
804 separate passes, which makes the code cleaner. This fixes a problem
805 with some items not disappearing from hara-kiri staffs.
806
807 * Use Scheme for Key_item data members. 
808
809 * Don't use regex in chord-names.scm under windows; hybrid chordnames
810 user+calculated will be partly broken.
811
812 1.3.50
813 ======
814
815 * Junked Shift_tuple from collision; Now it uses SCM.
816
817 * Bugfix of documentation and test-file of tuplet.
818
819 * Bugfix type string of repeated music is copied. This fixes declared
820 tremolos.
821
822 * Junked various cruft from lily.scm
823
824 * Use interfaces symbols instead of C++ class-name for assigning generic
825 element properties.
826
827 * Junked Dictionary from Piano_pedal_engraver and
828 Piano_pedal_performer.
829
830 * Introduced boolean element property no-spacing-rods: ignore this
831 item for hard constraints.
832
833 * Bugfix: added sanitised TeX fragment in faq.texi
834
835 * Bugfix: merge equal Bar_reqs
836
837 1.3.48.uu1
838 ==========
839
840 * Small fixes for \cresc and \endcresc
841
842 * Release properties of unbroken spanners & items after doing
843 handle_broken_smobs (); should conserve a little memory.
844
845 * Fixed handling of orphaned score-elements. Any element that does
846 not have its Line_of_score as a ancestor in both directions, is silently
847 removed from the output.  This guarantees that programming errors
848 don't result in coredumps from Dimension_cache::common_refpoint ():
849 element->line_l () is always a common reference point.
850
851 * Bugfix: set visibility-lambda of clef and octavation-8 explicitly
852 for default case.  Now the octavation 8 is not printed at every
853 barline.
854
855 1.3.48.mb1
856 ===========
857
858 * Changed noteHeadStyle properties to symbols, for example
859   \property Voice.noteHeadStyle = #'cross
860
861 1.3.47.jcn3
862 ===========
863
864 * Rewrite of chord-name production in scheme.  There are two major styles
865   now, banter and american.  To get american style, use
866
867       \property ChordNames.chordNameStyle = "american"
868  
869   Most anything should be possible now.  See input/test/american-chords.ly
870
871 * Added isinf check to configure.in, and isinf macro from guile to
872   bezier.cc; solaris has no isinf ().
873
874 * Fixed star-spangled-banner with not-so-nice \bar "|." fix.  Almost
875   perfect now.
876
877 * Added output property to regression test.
878
879 * Fixed warning of creating existing outdir.
880
881 * Added `Mark' interface to text-items that are marks (thanks, HW).
882
883 1.3.48
884 ======
885 1.3.47.mb2
886 ===========
887
888 * Corrected glossary.tely
889
890 * Corrected \mark font handling. feta-nummer font only of the 
891   string is all numeric.
892
893 * Implemented noteHeadStyle lookup in Guile. Reintroduced the style
894   "harmonic" and added "baroque" (normal note shapes except for 
895   brevis and longa which are square).
896
897 * Simplified ly2dvi using the power of the geometry package.
898
899 * Improved heuristic size calculation of TeX macros. Handles e.g.
900   "\\u{a}", "\\"{o}" and "\\^{u}" correctly.
901
902 1.3.47.hwn1
903 ===========
904
905 * Bugfix: don't hang on zero-duration.
906
907 * Various glossary updates (thanks, Christian)
908
909 1.3.47
910 ======
911
912 1.3.46.jcn2
913 ===========
914
915 * Drastically reduced vertical space used by headers/footers, when using
916   ly2dvi.  See input/test/fill-a4.ly.
917
918 * Fixed bug with colons appearing on repeat span-bars.
919
920 * Added Bar_number_engraver to standard Score context
921
922 * Construct octavation scripts in the clef-engraver; this fixes the
923 hara-kiri + clef8 problem
924
925 1.3.46
926 ======
927
928 1.3.45.jcn2
929 ===========
930
931 * Fixed chord-name customisation and made small chord-name build fixes.
932
933 * Accidentals with chord-names smaller and as superscript.
934
935 * Do some extra footify (works only once) while making html docs.  
936
937 1.3.45.hwn1
938 ===========
939
940 * Debian patch (Thanks Anthony)
941
942 * Rewrote Bar_number_engraver and Mark_engraver and removed
943 Bar_script_engraver as baseclass. Both Bar_number_engraver and
944 Mark_engraver are simpler and more robust.
945
946 * Fixed precedence of \property verticalDirection and dynamicDirection
947
948 * Fixed keys without barlines 
949
950 * Fixed StaffGroups: removing `\consistsend "Axis_group_engraver"'
951 puts alignment in function again
952
953 * Fixed StaffGroup + GrandStaff combination.
954
955 * Music is now mandatory as the first thing in a \score{} block
956
957 1.3.45
958 ======
959 1.3.44.jcn2
960 ===========
961
962 * Implemented una-chorda and sostenuto piano pedals in performer and engraver.
963
964 * Added Properties textScriptWordSpace and chordNameWordSpace.
965
966 * Junked old lyrics in star-spangled-banner.
967
968 * Added a Piano_pedal_engraver.
969
970 * Removed some empty files.
971
972 * Created piano pedal symbols: * - . P e d.
973
974 * Fixed ps-to-pfa.py to handle multiple unfills.
975
976 * Moved accordion symbols out of feta-script to end of font.
977
978 * Bugfix: don't create tfm's, pfa's etc of feta-test fonts.
979
980 * Fixed blot_diameter for small resolutions.
981
982 1.3.43
983 ======
984
985 * Put global element list into Line_of_score, instead of
986 Paper_score. post processing (the stage after line breaking) is now
987 truly done per-system, and we got rid of an ugly hack to get font
988 handling OK.
989
990 * Bugfix: set the group-interface of System_start_delimiter.
991
992 * Cleanups of Break_algorithm and derived classes, Move
993 broken_col_range () to Line_of_score, remove Paper_score::col_l_arr_
994
995 * Bugfix for accordion symbols.
996
997 * Various patches to prevent crashing when do_brew_molecule gets
998 called before after_line_breaking (). This was a problem in Spanner
999 classes mostly.
1000
1001 1.3.43
1002 ======
1003
1004 1.3.42.jcn3
1005 ===========
1006
1007 * Made a quick try at piano pedal performer, damper pedal only.
1008
1009 * mf/feta-accordion.mf: Fixed strange turning paths.
1010
1011 * mf/feta-beugel.mf: Fixed infinity errors.
1012
1013 * Use a more discriptive name for windows setup.zip.
1014
1015 * mf/GNUmakefile: Have logs as last target, so that normally, they're 
1016 not made twice.
1017
1018 * stepmake/stepmake/metafont-rules.make: Don't remove the .log files.
1019 The logs are a target, removing them retriggers make.
1020
1021 * stepmake/stepmake/metapost-rules.make: Remove the correct log and tfm
1022 files, ie the ones that clutter the source directory, not the target logs.
1023
1024 * Windows distribution: faked symlink for cmtfm.  Setup.zip should now be
1025 standalone; ie, no need for Cygnus' usertools anymore.
1026
1027 1.3.42.jbr1
1028 ===========
1029   
1030 * Documentation/ntweb: Updated angels.ly to match current syntax.
1031 Also updated index.texi.
1032
1033 1.3.42.uu1
1034 ==========
1035
1036 * Change all occurances of Staff_margin_engraver to
1037 Instrument_name_engraver, add a convert-mudela rule
1038
1039 * Change status == busy assert into programming error
1040
1041 1.3.42
1042 ======
1043
1044 1.3.41.jcn3
1045 ===========
1046
1047 * Lots of fixes to windows distribution scripts.
1048
1049 * Added configuration features --program-prefix, --program suffix.
1050
1051 * lily/my-lily-parser.cc (get_chord): Bugfix, don't use deleted pitch.
1052 This fixes inversions c/g and bass additions d/+c on chords.
1053
1054 1.3.41.mb1
1055 ==========
1056
1057 * Avoid that xxxXXXVerticalExtent is used for empty HaraKiriStaff
1058   lines.
1059
1060 1.3.41.hwn1
1061 ===========
1062
1063 * Debian patches (thanks Anthony!)
1064
1065 * Use symbols for prefatory matter spacing. Do not use the typename
1066 for looking up item pairs in the table, but read element property
1067 break-align-symbol
1068
1069 * Instrument_name_engraver, uses break alignment instead of
1070 side-position.
1071
1072 * System_start_delimiter_engraver, System_start_delimiter, uses a
1073 spanner for the braces/brackets at the left of the system. Remove all
1074 old Span_score_bar engravers.
1075
1076 * Removed Base_span_bar_engraver::use_prority_b_, and moved
1077 Base_span_bar_engraver into Span_bar_engraver.
1078
1079 1.3.40.jcn3
1080 ===========
1081
1082 * mutopia/Coriolan/violino-2.ly: Bugfix: wrong pitch.
1083
1084 * input/test: Removed stale AutoStaffSwitch examples.
1085
1086 * mutopia/E.Satie: Fixed gnossiene-4, doing \autochange.  Removed
1087 stale copy of gnossiene-4.
1088
1089 * buildscripts/make-cygwin-cross.sh: Made some small .zip package fixes.
1090
1091 * make/lilypond.spec.in: Made some bugfixes for _prefix, preparations
1092 for cross-building to Cygwin.
1093
1094 * buildscripts/make-cygwin-cross.sh: Now using rpm packages.
1095
1096 1.3.40.hwn2
1097 ===========
1098
1099 * added \property XXXMinimumVerticalExtent, \property XXXExtraVerticalExtent
1100
1101 * New_chord_tremolo_engraver: make tremolo beams from
1102
1103         \repeat "tremolo" NUMBER <Music-expression>
1104
1105 Removed support for "old-style" tremolos.
1106
1107 * Add a convert-mudela function for the conversion "\key A;" to "\key a; 
1108
1109 * Read \property measurePosition within the engraver code, instead of
1110 looking up the Timing_translator.
1111
1112 * star-spangled-banner.ly: add Bar_engraver to LyricsVoice 
1113
1114 * Changed all .fly and .sly files to .ly files.  Propose to dump .fly
1115 and .sly.
1116
1117 1.3.40
1118 ======
1119
1120 1.3.39.jbr1
1121 ===========
1122
1123 * buildscripts/mf-to-table.py: feta dep files are now opened with write
1124   binary option.  This avoids carriage return linefeed problems and
1125   windows while not affecting unix.
1126
1127 * Documentation/hacking.texi: Fixed a texinfo syntax error
1128
1129 * stepmake/bin/package-zip32.sh: Fixed or Removed some legacy, 1.2.x,
1130   directory paths.
1131
1132 * Documentation/ntweb/index.texi: Fixed broken links, added 1.3.39 links.
1133
1134 1.3.39.hwn1
1135 ===========
1136
1137 * Glossary updates by Christian Mondrup.
1138
1139 * Bugfix: use generic properties in lyrics too. This fixes the
1140 \property textStyle for lyrics.
1141
1142 * Score_element::preset_extent(), used by \property
1143 XXXVerticalExtent, so hard code the size of a vertical group. 
1144
1145 * Don't fix up reference points for originals of broken
1146 spanners. Fixes spurious "orphaned score-element" warnings.
1147
1148 * buildscripts/make-cygwin-cross.sh: Use rx-1.5 instead of regex (Jeffrey).
1149
1150 * scm/lily.scm: Fixed check for Windows: by default don't use scm regex.
1151
1152 * Documentation/ntweb/guile-1.3.4-gnu-windows.patch: Significantly smaller
1153 patch for guile.
1154
1155 * buildscripts/make-cygwin-cross.sh: Compile native package GNU regex,
1156 which should fix Windows problems with guile.  Also added input directory
1157 to zip file.
1158
1159 * stepmake/aclocal.m4: Added decent checking for version of guile, and 
1160 fixed warning message.
1161
1162 * lily/lexer.ll (My_lily_lexer): Bugfix: lookup chordmodifiers in the
1163 chord-modifier table (not in the pitch list).
1164
1165 1.3.39
1166 ======
1167
1168 1.3.38.hwn2
1169 ===========
1170
1171 * General cleanups of My_lily_parser. 
1172
1173 * Start of a Chord_tremolo_iterator for the `\repeat 4 "tremolo"'
1174 syntax.
1175
1176 * Moved Score_element::do_space_processing out of the dependency
1177 mechanism.
1178
1179 * Use Scheme for notename tables.  Removed uppercase letters for low
1180 octave notes. Removed Notename_table.
1181
1182 * Fixed core dump with declared "\key  ; "
1183
1184 * Extra robustness warning for Side_position_interface::aligned_on_self ()
1185
1186 * Extra robustness: make sure that first and last columns are breakable.
1187         
1188 1.3.38.jcn4
1189 ===========
1190
1191 * stepmake/aclocal.m4: Added support for cross-compiling with guile.
1192
1193 * buildscripts/make-cygwin-cross.sh: A try at dropping cygwin1.dll
1194  dependency by using mingw.  Compiling guile is too much to ask
1195  for mingw, though.  Also:
1196  - rename python scripts .py (request from Alain)
1197  - install native packages under their own, separate root. (Alain)
1198
1199 * lily.scm: Don't use regex module when running on
1200 Windows. (Shamus)
1201
1202 * lily/staff-margin-engraver.cc (acknowledge_element): If
1203 possible, hang y-axis of margin script to span-bar.  This fixes
1204 vertical placement of margin scripts attached to staff groups.
1205
1206 * help2man-rules.make: Fixes for generating manpages by copying
1207 and for building using --scrdir.
1208
1209 * stepmake/stepmake/generic-targets.make: Preserve date stamp of
1210 config.h, version.hh files file when copying.
1211
1212 * buildscripts/make-cygwin-cross.sh: made number of fixes:
1213         - add `Cygnus/' prefix to directories in .zip-file too.
1214         - package guile too.
1215         - don't link to cygwin1.dll
1216
1217 * stepmake/stepmake/install-targets.make: bugfix, don't fail if directory
1218   is not emty when uninstalling.
1219         
1220 * stepmake/stepmake/generic-targets.make: added man target.
1221
1222 * buildscripts/make-cygwin-cross.sh: new script for cross-building cygwin
1223   development tools and lilypond executable.
1224
1225 * Documentation/ntweb/lilypond-manpages.patch: provide pre-built
1226   manpages, so that make doesn't fail on help2man trying to execute
1227   a GNU/windows executable.     
1228
1229 * Documentation/ntweb/guile-1.3.4-gnu-windows.patch: new patch for
1230   guile-1.3.4.  
1231
1232 * flower/libc-extension.cc (memmem): cygwin compile fix.
1233
1234 1.3.38
1235 ======
1236
1237 1.3.37.hwn1
1238 ===========
1239
1240 * (generic-property.scm) added \property tieDash to set dashing on
1241 ties.
1242
1243 * Removed  ly_eval_str(), we should use scm_eval (Scm_object).
1244
1245 * Removed scm_to_array (), array_to_scm (), associated junk. Reverted
1246 undocumented .29 patch that made Bezier::control_ into an
1247 Array<Offset>.  Added some comments documenting the reasons for the
1248 changes.
1249
1250 * Revert generic-property.scm of .37 fix, fix the real problem in
1251 property-engraver.cc: use the right symbol to check if element
1252 property is already set.
1253
1254 1.3.37.jcn2
1255 ===========
1256
1257 * Fixed srcdir build, so that you can do:
1258
1259       tar xzf releases/lilypond-x.y.z
1260       mkdir <build>
1261       cd <build>
1262       ../lilypond-x.y.z/configure
1263       make
1264
1265   as with any other gnu package.  All build output goes to <build>/out.
1266
1267 * Changed and fixed use of different configurations, and different output
1268   directories.  Finally, you can use different configurations alongside
1269   eachother.  From make/stepmake.make:
1270
1271       # Use alternate configurations alongside eachother:
1272       #
1273       #     ./configure --enable-config=debug
1274       #     make conf=debug
1275       #
1276       # uses config-debug.make and config-debug.h; output goes to out-debug.
1277       #
1278
1279       # Use same configuration, but different output directory:
1280       #
1281       #     make out=www
1282       #
1283       # uses config.make and config.h; output goes to out-www.
1284       #
1285
1286
1287 * Fixed performance of (de)crescendi.
1288
1289 * Better documentation for arithmetic_multiplier and arithmetic_basicspace
1290   in params.ly.
1291
1292 * Added instrument-equaliser for MIDI output, see scm/midi.scm, and
1293   properties midiMinimumVolume, midiMaximumVolume, ranges [0,1].
1294
1295 * Changed absolute midi volume settings into factor of full scale.
1296
1297 * Fixed another dynamic-line-spanner bug, it gets hairy.
1298
1299 * Added warning for spanners that are not fully contained in parent spanner.
1300
1301
1302 1.3.37
1303 ======
1304 1.3.36.hwn1
1305 ===========
1306
1307 * Abstract Align_element into Align_interface. Removed
1308 Axis_align_{item,spanner}, Align_element, Super_element, all multiple
1309 inheritance in the backend.
1310
1311 * new Gade score, INSTALL.texi fixes (thanks, Mats)
1312
1313 * Removed Item::hpos_f (), Score_element::{get,set}_real ()
1314
1315 * comments detailing properties for Axis_group_interface,
1316 Side_position_interface, Score_element, Item and Spanner
1317
1318 1.3.36.jcn3
1319 ===========
1320
1321 * Fixed vertical dimensions of elements in dynamic line spanner by adding
1322   axis-group to dynamic line spanner.
1323
1324 * Bugfix: line-spanner lasts always full duration of (de)crescendi.
1325
1326 * Bugfix: broken (de)crescendi on a dynamic-line-spanner.
1327
1328 * Bugfix: compilation dynamic-engraver.
1329
1330 * Added and updated a faq about postscript and ghostscript.
1331
1332 * Fixed order of slurVerticalDirection verticalDirection in
1333   generic-property.scm.  Similar fixes for Stem, Tie, etc.
1334
1335 * Added a Text_engraver to GraceContext.  Maybe it was removed on
1336   purpose: scripts on grace notes seem broken, they appear on the
1337   main note.
1338
1339 * Bugfix: volume effect of (de)crescendi was sometimes wrong way round.
1340
1341 1.3.36
1342 ======
1343 1.3.35.hwn1
1344 ===========
1345
1346 * textEmptyDimension changed into textNonEmpty, default: off,
1347 ie. texts don't occupy space.
1348
1349 * Use STL map for Lookup::lookup_p_tab_p_
1350
1351 * Abstracted Axis_group_element into Axis_group_interface, and removed
1352 Axis_group_element. This eliminates some multiple inheritance in the
1353 backend
1354
1355 1.3.35.jcn1
1356 ===========
1357
1358 * Added minimum-space property to Side_position_interface.  Used in
1359   positioning of Volta_spanner: voltaMinimumSpace.
1360
1361 * Fixed and cleaned-up volta-spanner.
1362
1363 * Moved directional-element.cc -> directional-element-interface.cc
1364
1365 * Renamed all `process_requests' to `process_music', which fixes
1366   midi performance.
1367
1368 * Fixed dimensions (more x-y interchanges) of brace, bracket and
1369   volta-spanner.
1370
1371 * Half-assed fix to get similar vertical placement of orphaned vs.
1372   line-spanned dynamic elements.
1373
1374 * Added property bracketCollapseHeight: the minimal size of a staff bracket
1375   that will be typeset.  Smaller brackets will not be displayed.  This
1376   fixes the (in 1.3.x reintroduced) funny duck-beak-bracket-bug (sorry).
1377
1378 * Removed some dissonant chords from Coriolan
1379
1380 1.3.35
1381 ======
1382
1383 * Removed Documentation/programmer directory 
1384
1385 1.3.34.jcn3
1386 ===========
1387
1388 * Small enhancements to Staff_margin_engraver:
1389    - by default, the marginScript left aligns the text
1390    - to set the text style, use property marginScriptTextStyle
1391    - to change the alignment, use property marginScriptHorizontalAlignment
1392      (centred and right alignment require manual padding settings).
1393
1394 * Print a friendly message if the manual pages failed to build.
1395
1396 * Bugfix: dynamicDirection now overrides verticalDirection setting.
1397
1398 * Warning messages and nl.po
1399
1400 * Fixed vertical alignment for all dynamic items and (reluctantly)
1401   reinstated old directional behaviour for orphaned dynamics.
1402
1403 * Finished maximumRestCount property.
1404
1405 1.3.34
1406 ======
1407 1.3.33.hwn2
1408 ===========
1409
1410 * Print key without setting key, syntax "\key ;". General cleanups of
1411 key-item.
1412
1413 * Add paragraph tags in HTML output of mudela-book.  Music fragment
1414 don't run into the text anymore.
1415
1416 * Bugfix: don't align the first line of text. (Lookup::text ()).
1417
1418 * Abstract away data members of Axis_group_element, Align_element
1419
1420
1421 1.3.33.jcn3
1422 ===========
1423
1424 * Added helpful properties instrumentScriptPadding/instrScriptPadding for
1425   Staff_margin_engraver.
1426
1427 * Removed some empty files, substituted (c) 1999 occurrences.
1428
1429 * Added \property maximumRestCount.  It will prevent showing (or actually:
1430   moving in case of a collision) more than maximumRestCount similar rests.
1431   WIP!
1432
1433 * Rewrote Staff_margin_engraver.  Staff margin texts now hang on a new
1434   breakable item: Left_edge_item.
1435
1436 * Fixed vertical alignment for dynamic elements.  Orphaned dynamic items
1437   (not supported by a Dynamic_line_spanner) still collide with Staff,
1438   although they now have staff support, which was supposed to fix this.
1439
1440 * Fixed Staff_margin_engraver for "instrument", "instr" is still broken.
1441
1442 * Dynamic elements are only put in a Dynamic_line_spanner if there
1443   actually is more than one adjacent note-column with a dynamic.
1444   This breaks the fine looks of all dynamics, again :-)
1445
1446
1447
1448
1449 1.3.33
1450 ======
1451
1452 1.3.32.hwn3
1453 ===========
1454
1455 * Experiment: use STL map for Scheme_hash_table; Is there a speedup?
1456
1457 * Bugfix: print brace iso. bracket for Piano / GrandStaff
1458
1459 * Change naming: change do_post_processsing into after_line_breaking,
1460 do_pre_processsing into before_line_breaking and do_process_requests
1461 into do_process_music.
1462
1463 * Bugfix in hash-table.hh: do quadratic probing, and not cubic probing.
1464
1465 * Display property name for type error.
1466
1467 * Cleanups for Dynamic_engraver and Dynamic_line_spanner.
1468
1469 * Warn if last column in score is musical. Helps catch programming errors.
1470
1471 * Spanner::spanned_drul_ now is private. 
1472
1473 * Rewrote some bar code: moved molecule functions out of Lookup.
1474
1475 1.3.32.jcn3
1476 ===========
1477
1478 * Embedded newlines in text items are now allowed.  This helps avoiding
1479   TeX-hacking in some cases.  See input/test/coriolan-margin.ly
1480
1481 * Fixed stupid x-y interchange bug for staff-bracket.  This fixes
1482   placement of staff-brackets.
1483
1484 * Fixed bracket/arch-thickness interchange bug, and made bracket a bit
1485   thinner.
1486
1487 * Fixed slur/bezier-beautiful name mismatch.  This should fix the steep
1488   slurs that were apparently reintroduced in 1.3.29.
1489
1490 * Made some small fixes to Coriolan.
1491
1492 * Removed duplicate lily/output-property-engraver.hh.
1493
1494 * Removed optional use of vanilla spanner in Dynamic_engraver.
1495
1496 * Fixed (measured) tremolo for Stem and Beam. Merged declarations
1497   stem-engraver.hh and chord-tremolo-engraver.hh into their .cc
1498   implementation file.  Also fixed looks of Chord tremolo, input and
1499   implementation is still ugly.
1500
1501 * Added *.yy and *.ll to TAGS, to that tags-find-replace doesn't omit
1502   parser and lexer.
1503
1504 1.3.31.mb1
1505 =========
1506
1507 * Fixed \specialkey and \normalkey. Updated documentation.
1508
1509 1.3.32
1510 ======
1511 1.3.31.jcn5
1512 ===========
1513
1514 * Fixed and cleaned-up Dynamic_engraver.  Optionionally uses vanilla
1515   spanner instead of Dynamic_line_spanner.
1516
1517 * Made gcc-2.95 compile fix in libc-extension.
1518
1519 * Various fixes to Coriolan, score starts to look acceptable.
1520
1521 * Moved optional text of crescendo into Crescendo spanner.  Fixed horizontal
1522   and vertical alignment of dynamics.
1523
1524 * Added new text crescendo spanners to Coriolan and made some fixes.
1525   If you're using timidity, use the -EO option to prevent notes get
1526   stuck.  I'm not sure whose fault this is, Lily's MIDI output may be
1527   stretching the standard a bit.
1528
1529 * Adjacent dynamic markings are now grouped on a horizontal line, but it's
1530   not perfect yet: they're always below the staff and no horizontal spacing
1531   is done.  Also, character metrics of dynamics are still not used.
1532   See: input/test/crescendi.ly and input/test/dyn-line.ly
1533
1534 * Cleaned up Span_dynamic_performer.
1535
1536 1.3.31
1537 ======
1538 1.3.30.mb1
1539 =========
1540
1541 * Fixed the page layout, reintroducing space for the header and
1542   trying to keep piece titles on the same page as the piece.
1543   The header and footer can now contain several lines.
1544
1545 1.3.30.jcn3
1546 ===========
1547
1548 * Lily now also performs crescendi and decrescendi in MIDI output:
1549   Span_dynamic_performer in a slightly crappy way.
1550
1551 * Added preliminary support for crescendi/decrescendi other than `hairpins',
1552   eg: `cresc. poco `a poco -- -- --'
1553
1554 * Made MIDI tie performance fix.
1555
1556 1.3.30.jcn2
1557 ===========
1558
1559 * Lily now performs absolute dynamics in MIDI output.
1560
1561 * Included David's comments on opus47 in TODO.
1562
1563 1.3.30.jcn1
1564 ===========
1565
1566 * More Coriolan: flute-1,2; oboe-1,2; clarinet-1,2; 
1567   fixes and remainder french horn-1,2; trombone-1,2;
1568   fagotto-1,2; timpani; and several fixes.
1569   
1570 1.3.30.uu1
1571 ==========
1572
1573 * Remove some old doco from programmer/ and put on personal homepage.
1574
1575 * Removed union-find from flower library.
1576
1577 * Only quantise tie horizontal part inside the staff.
1578
1579 1.3.30
1580 ======
1581 1.3.29.hwn1
1582 ===========
1583
1584 * Report type errors for \property. Helps with converting 1.2 input
1585
1586 * Use Scheme for Align_element; fixed graceAlignPosition 
1587 and removed \property alignmentReference in the process.
1588
1589 * Use generic properties for lyrics too.  This fixes \property
1590 Lyrics.textStyle
1591
1592
1593 * Add relative distance for constraints between non-column items.
1594
1595 * Automatic \marks: use "\mark ; ". The mark numbers or letters are
1596 increased automatically.
1597
1598 * Translators now only change properties of their own context. This
1599 removes the 2nd argument to Translator::get_property()
1600
1601 * Bugfix for Metapost mode
1602
1603 1.3.29.uu1
1604 ==========
1605
1606 * Updates of glossary  (Christian Mondrup)
1607
1608 * Bugfix with bar number placement
1609
1610 * Moved links to bibliography/ and misc/ to main index.
1611
1612 1.3.29
1613 ======
1614
1615 * Moved Slur-specific code from Bezier_bow to Slur and Slur_bezier_bow.
1616   Slurs are now calculated just once.
1617
1618 * Bezier_bow gets constants from paper.  Still no sensible solution for
1619   magic asymmetry gradient step constants.
1620
1621 * Reinstantiated tangent-controls, more flexible than ever.  You can choose
1622   between area asymmetry and tangent-controls.  My guess is, tangent controls
1623   will be junked in 1.3.30.
1624
1625 * Slur area: only look at x-gradient.
1626
1627 * Added credits for some symbols of as5/9 fonts.
1628
1629 * Bugfix: don't make almost flat slurs, change in de-uglyfy slur.  
1630
1631 * Bugfix: midi2ly put out recent version (ugh).
1632
1633 1.3.28.hwn2
1634 ===========
1635
1636 * Bugfix: don't forget to process staffSpace and numberOfStaffLines
1637 properties.
1638
1639 * Removed Gade score. To appear (shortly?) on Mutopia. 
1640
1641 * Make Bar_script_engraver look for typeVisibilityFunction (eg
1642 property barNumberVisibilityFunction). Changed the names of the Scheme
1643 functions to be understandable. See input/test/bar-script-visibility.ly
1644
1645 * rewrite of class Molecule. It has now reached the ultimate quality
1646 plateau. All molecule data is now shared.
1647
1648 1.3.28
1649 ======
1650
1651 * Update of the glossary by Christian Mondrup 
1652
1653 * Moved horn-concerto-3 out of tarball to private website, removed
1654 W.A.Mozart subdirectory.
1655
1656 1.3.27.hwn1
1657 ===========
1658
1659 * Bugfix: don't make giant ties if the horizontal part of tie is near
1660 the center.
1661
1662 * Small optimizations to be a little more careful with mem usage. 
1663
1664 * Website change: put all examples in one directory.
1665
1666 * Removed Atom as a separate type.  Now use SCM, and since we use
1667 function composition, Atoms are immutable, so they don't have to be
1668 copied. This makes life easier, hopefully this is quicker and uses
1669 less memory.
1670
1671 1.3.27.jcn1
1672 ===========
1673
1674 * Bezier_bow: minimise_enclosed_area
1675
1676 1.3.27
1677 ======
1678
1679 1.3.26.hwn4
1680 ===========
1681
1682 * Tuplet-spanner slope calculation now looks better on tupletted rests
1683 (patch courtesy Laurent Martelli)
1684
1685 * Bugfix (Staff_performer::new_instrument_str ()) check type of
1686 \property "instrument"
1687
1688 * New mechanism for breaking lines: do not copy & prune the element
1689 property list separately, but combine these steps. Dramatically
1690 reduces memory usage for large scores.
1691
1692 1.3.27
1693 ======
1694 1.3.26.jcn2
1695 ===========
1696
1697 * Bugfix: font used in volta-spanner calculation.
1698
1699 * Added simple selection list to webpage, inspired by sawmill.
1700  
1701 * Devised kludge for ascii 5 character font pitches.
1702  
1703 * Substitutions: interline, 1997,1998, @stack.nl and small typo fixes.
1704
1705 1.3.26.hwn1
1706 ===========
1707
1708 * Plug memory leaks related to Moment:
1709   - Spacing_engraver::do_pre_move_processing ()
1710   - make_rational ()/make-rational
1711   - Paper_column::Paper_column ()
1712
1713 * Plug memory leak in Paper_outputter::output_{String,Real,int}_def()
1714
1715 * Plug memory leak in Score_engraver::set_columns ()
1716
1717 * Plug memory leak in Scheme_hash_table::set()
1718
1719 * Plug memory leak in Score_element::molecule_extent ()
1720
1721 * Bugfix: don't crash if a slur doesn't span anything.
1722
1723 * Bugfix: don't crash if doing beams without a staff symbol.
1724
1725 * Generic element property setting:
1726
1727         \outputproperty #predicate #'symbol = #value
1728
1729 Will set the element property symbol to value, for any elements that
1730 return true for PREDICATE.  This allows you to virtually tweak *ANY*
1731 property of the output. Example in input/test/generic-output-property.ly
1732
1733 1.3.26
1734 ======
1735
1736 * lilypond as as2ly: --help and --version to stdout.  Regular identify 
1737   to stderr.  This fixes help2man's manpage generation.
1738
1739 * configure: substitute full path for perl and guile in scripts.
1740
1741 * Added ascii slur and volta.  There seems to be a Lily bug in volta placement.
1742
1743 * Bugfix: default font now user settable
1744
1745 * as2text: handle plain ascii font, read from stdin, you can now do:
1746
1747   echo "\time 4/4; g''1 g2 g4. g8" | lilypond -f as -i init-as.fly - | as2text
1748
1749 1.3.25.hwn1
1750 ===========
1751
1752 * Bugfix: second half of broken ties now are displayed again.
1753
1754 * Bugfix: add clef to the support of 8 text in the G_8 clefs. Center
1755 it horizontally on the clef.
1756
1757 * Added Tie_column spanner. Ties in tied chords now get proper directionsa.
1758
1759 * Bugfix: unbroken repeat barlines now work, eg. |:
1760
1761 * Added Request_iterator to make more flexible constructions possible.
1762
1763 1.3.25
1764 ======
1765 * as2text: catch missing font/character errors, added default font, set text.
1766
1767 * New ascii fonts and glyphs: as5 as-numeral4 as-braces9
1768
1769 * Ascii output, minimal support:
1770   - AsciiScript Fonts: mf/*.af
1771   - Init files: ly/*-as.*ly 
1772   - AsciiScript translation to text: scripts/as2text.scm
1773   - input/test/as.fly input/test/as1.fly
1774   - Output support: lily/lily.scm
1775   - Try:
1776       lilypond -f as -i init-as.fly input/test/as.fly
1777       as2text as.as
1778
1779 1.3.24.hwn1
1780 ===========
1781
1782 * The horizontal part of ties will avoid collision with staff lines.
1783
1784 * Plugged memory leak: don't protect Atom function.
1785
1786 * Lookup cleanups. Made lots of functions static. Moved some code out
1787 of Lookup.
1788
1789
1790
1791 1.3.24.hwn1
1792 ===========
1793
1794 * Bugfix: ly2dvi.py exits succesfully when encountering --help and
1795 does not delete any of the file_ly*.tex.
1796
1797 * Added header and footer support in ly2dvi.py
1798
1799 1.3.24
1800 ======
1801
1802 * Added a ROADMAP file explaining the source directory layout.
1803
1804 * Minor tweak in the feta 6 and 9 numeral
1805  
1806 * Moved files from lib/ to flower/
1807
1808 * Removed Note_head_side class.
1809
1810 * Updated the webpage to be a little more chatty. 
1811
1812 * Small Local_key_engraver optimization: only lookup timing engraver once.
1813
1814 * Fixed dashed slurs
1815
1816 * Rewrite of Slur code.  Be much more picky about slur shapes. We try
1817 to offset the slur instead of bending it too much
1818
1819 * Look at stem directions for tie direction.
1820
1821 * Compound multimeasure rests. Put measures_i_ variable in an element
1822 property.  Made the symbol a lot wider.
1823
1824 * Time signature small cleanups.
1825
1826 1.3.22.hwn2
1827 ===========
1828
1829 * Symbols opposite to stem (eg marcato) now get the proper glyph in up
1830 version.
1831
1832 * Breathing marks now have a direction by default.
1833
1834 * Do set generic script properties.
1835
1836 * Also put tuplet brackets under notes.
1837
1838 * Score_element_info: only store origin of element, but not the path
1839 to parent translators. Saves a little memory, and removes some complexity.
1840
1841
1842 1.3.22.hwn1
1843 ===========
1844
1845 * Autobeaming in time sigs that don't have 1/4 beats fixed.
1846
1847 * (De)crescendi should now work. (Thanks Michael)
1848
1849 * Better error reporting for conflicting time signatures.
1850
1851 * Line_number_engraver: output locations of note head
1852 definitions. Very handy when entering complicated scores.
1853
1854 * Rewrote multi measure rest support: now they are entered as spanners
1855 (\commandspanrequest \start "rest"). RXXXX is an abbreviation for
1856
1857   { \commandspanrequest \start "rest"
1858     SXXXX
1859     \commandspanrequest \stop "rest"
1860   }
1861
1862 * Removed support of percent style repetitions. 
1863
1864 * Put texts outside the staff.
1865
1866 1.3.21.mb1
1867 ==========
1868 * Getopt bugfix: don't assert on certain errors.
1869
1870 * ly2dvi: Remove unnecessary space for the page headers.
1871
1872 * Bugfix convert-mudela
1873
1874 1.3.21.hwn1
1875 ===========
1876
1877 * Bugfix in lilypond-mode.el: eval-buffering now uses file name and
1878 not buffer name.
1879
1880 * Scrapped tupletVisibility property. Now use tupletNumberVisibility,
1881 tupletBracketVisibility, with Scheme value #t, #f or 'if-no-beam.
1882 \property tupletInvisible will stop all tuplet spanner creation.
1883
1884 * Don't go berserk if tuplet spanner is on only one column.
1885
1886 * Use SCMs & Smobs for Molecules & atoms.  This uses less
1887 scm_(un)protect_object () calls, so the output stage should be faster.
1888
1889 * Added \property tupletSpannerDuration, to make multiple tuplet signs
1890 with one \times.
1891
1892 * Some programming Errors in spacing are now caught. Lily does not
1893 hang when encountering degenerate springs.
1894
1895 * Allow beams to start and end over rests
1896
1897 1.3.19.hwn2
1898 ===========
1899 * Fix disappearing clefs when clefs are not printed with a barline.
1900
1901 1.3.20.jcn2
1902 ==========
1903
1904 * SCM properties beamHeight and beamVerticalposition now use half-spaces:
1905   input/test/beam-control.fly
1906 * Added \context Voice to .fly and .sly; the default \context Staff is almost
1907   never what you expect
1908 * Fixed decision for .sly/.fly in lilypond-mode.
1909
1910 1.3.19.hwn1
1911 ==========
1912
1913 * Clean up font-metric hierarchy, use Adobe AFM code to parse AFM files.
1914 Cleanup mf-to-table.py
1915
1916 * Fixed embarassing slur bug.
1917
1918 1.3.19.jcn1
1919 ==========
1920
1921 * lilypond-mode.el: guess init file for lily-*-region, lily-mode-map bindings
1922
1923 1.3.18.uu2
1924 ==========
1925
1926 * lilypond-mode.el for emacs supersedes mudela-mode.el 
1927
1928 * Tuplet spanners don't collide with encompassing notes. 
1929
1930 * Gobbled Adobe parseAFM* code, for future use.
1931
1932 * Big 1999 to 2000 search/replace.
1933
1934 * Big interline to staff_space search/replace for mf files.
1935
1936 * Removed Bow class, and split code into Tie and Slur
1937
1938 * Don't put scripts on grace notes.
1939
1940 * Font_metric uses SCM for name field.
1941
1942 * Various compilation fixes.
1943
1944 1.3.17.jcn2
1945 ===========
1946
1947 * Bugfix: beams with less than one (visible) stem
1948
1949 * small fixes to pa.ly
1950
1951 1.3.17.jcn1
1952 ===========
1953
1954 * Fixed bug that made multi-measure rest barnumber counts go wild.
1955 (even more scm2int/int2scm mixups!)
1956
1957 * mutopia/J.S.Bach/pa.ly: organ score (for my father)
1958
1959 * small fix to mutopia/J.S.Bach/Duette/violino-ii.ly
1960
1961 1.3.17.hwn2
1962 ===========
1963
1964 * Remove Paper_def calls in bezier-bow.cc
1965
1966 * Remove data members of Tuplet_spanner,  Volta_spanner
1967
1968 * hang_on_clef, property hangOnClef removed
1969
1970 * Bar::type_str_ mode into element property `glyph'. Use a Scheme
1971 function to determine breaking behavior.
1972
1973 * More Scheme typechecking.
1974
1975 * Be strict about the difference between strings and symbols for conversion.
1976
1977 * Fixed bug that made 1st line offset to right fixed. Bugfix courtesy
1978 Laurent Martelli.
1979
1980 * Partial French translation, courtesy Laurent Martelli.
1981
1982 * Small corrections in NL translation. 
1983
1984 1.3.17.hwn1
1985 ===========
1986
1987 * Added mensural note heads (noteHeadStyle = "mensural") Additionally,
1988 we have a longa note head.  noteHeadStyle = "harmonic" is not
1989 supported anymore. (for now, that is)  
1990
1991 * Reference manual update. Document \properties with examples
1992
1993 * fix mudela-book --help
1994
1995 * Use element properties for Text_item::text_str_, Clef_item::symbol_,
1996 Key_item::c0_position_
1997
1998 * Clef_engraver general cleanup. Use alists (\property
1999 supportedClefTypes, clefPitches) for clef types.
2000
2001 * Use progress_indication () for progress. Don't include <iostream.h> directly 
2002 Don't include <string.h>, <math.h> from headers.
2003
2004
2005 1.3.16.hwn1
2006 ===========
2007
2008 * \property stemCentered (boolean): centers stem on note head. See
2009 input/test/stem-centered.ly
2010
2011 * input/trip.ly, small test of lots of features.
2012
2013 * \property Staff.collisionMergeDotted: merge equal noteheads
2014 with different dot count. See input/test/collision-merge-dotted.fly
2015
2016 * Dotted rest bugfix 
2017
2018 * Don't crash if a slur does not span any notes.
2019
2020 * Volta repeats fixed.
2021
2022 * cleanup of Note_heads_engraver
2023
2024 * removed dots_i_ member of Dots
2025
2026 1.3.16.jcn1
2027 ===========
2028 * Fixed cross staff slurs.  It seems that cross-staff sign
2029   was swapped.
2030
2031 1.3.15.hwn1
2032 ===========
2033
2034 * Fixed bug in stem code.  Stem in chords works again.  Small
2035 stem cleanups.
2036
2037 * Use element properties for Staff_symbol.
2038
2039 * \property sparseTies (boolean).  Only make one tie in the
2040 middle for tied chords.
2041
2042 * Junked Directional_spanner, Column_info.
2043 Directional_element now is element interface `Directional_element_interface'
2044
2045 * cleanup: use to_boolean () iso. gh_boolean_p && gh_bool2scm
2046
2047 pl 15.jcn4
2048         - removed old notename2scm conversion
2049         - beam-dir-algorithm through scm
2050         - bfs paper-scm
2051 gv      - bf: knee-stemlengths
2052
2053 pl 15.jcn3
2054         - moved poor man's stem arrays to scm
2055         
2056 pl 15.jcn2
2057         - beam quanting using scm lists
2058
2059 pl 14.hwn1jcn1
2060         - chord-name uses scm members
2061         - bfs: knee with different mults, interstaff knee, auto-knee
2062
2063 **********
2064 pl 14.hwn1
2065         - specialize duration.cc for lily, move out of lib/
2066         - stem cleanup
2067         - more SCM typechecking
2068         - stafflineleading -> staff_space
2069         - bf: rod distances.
2070         - junk some unused code.
2071         
2072 pl 13.hwn2
2073         - paper/score column cleanups. Junk Score_column type
2074
2075 pl 13.hwn1
2076         - Bezier_bow/Bezier cleanups
2077         - bf: rest under beam.
2078         
2079 pl 13.jcn2
2080         - untangled Chord_name (item) and Chord (list-of-pitches)
2081         
2082 pl 13.jcn1
2083         - bezier-bow fix
2084
2085 **********
2086 pl 12.hwn1
2087         - polynomial.hh
2088         - bf: generic properties
2089         - quantise_iv () fix.
2090         - bezier cleanup
2091         - class Polynomial 
2092         - use smobs for font metric tables/hashes.
2093         - nl.po bf
2094
2095 **********
2096 pl 11.jcn3
2097         - small beam fixes (interstaff knees still broken)
2098
2099 pl 11.hwn1
2100         - bf: dots
2101         - bf: harmonic note heads
2102         - revise stem, notehead, rest
2103
2104 pl 11.jcn2
2105         - included missing scm,ly updates
2106         - bf: urg to_dir () takes scm..
2107         - bf's: if (Foo b = bar != 1)
2108         - beam cleanup
2109
2110 *********
2111 pl 10.uu1
2112         - various small bfs
2113         - bf: alignment reversed
2114         - Staff_symbol_referencer -> Staff_symbol_referencer_interface
2115         - bf: staccato pos
2116         - Knee fixes (thanks, Jan)
2117
2118 pl 10.jcn2
2119         - fixes for invisible beamed stems
2120         - removed steminfo from properties, don't cache Stem_info
2121
2122 pl 10.jcn1
2123         - steminfo to properties
2124         - dropped internote dim for stem-beams
2125
2126 *********
2127 pl 9.hwn1
2128         - abstracting Staff_symbol_referencer to an interface.
2129         - quantised_position for staccato dots.
2130         - standchen fixes
2131         - junk Score_element::do_{width,height}: set callbacks directly.
2132         - merge Score_element, Graphical_element
2133         - merge Axis_group_element, Graphical_axis_group
2134         - junk pointer fields from Score_element derived classes
2135         - junk obsolete do_substitute_dependency code.
2136
2137 **********
2138
2139 pl 8.hwn2
2140         - staff-support for Crescendi.
2141         - padding for accidentals.
2142         - cascading offset callbacks
2143
2144 pl 8.hwn1
2145         - note-head-side 
2146         - naming Staff_sidify -> Side_position_interface
2147
2148 ***********
2149
2150 pl 7.mb1
2151         - bf: timeSignatureStyle works again
2152
2153 pl 7.hwn1
2154         - Dirk Latterman key/mmrest patches
2155         - Offset callbacks in Dimension_cache
2156         - Junked Staff_side_*
2157         - Staff_sidify: interface class.
2158         - prelude-{1,2} fixes.
2159
2160 ***********
2161 pl 6.uu2
2162         - bf: PS font selecting.
2163
2164 pl 6.uu1
2165         - bf: ls-latex
2166         - mudela-book --no-pictures
2167         - bf: ly2dvi
2168         - convert-mudela: beamAuto moment syntax. 
2169
2170 pl 6.jcn3
2171         - fixed scm output
2172
2173 pl 6.jcn2
2174         - half-baken ly-gulp-file in scm
2175         - resurrected scm output through guile
2176
2177 pl 5.mb1
2178         - bf: version of init.sly, init.fly
2179         - Clarify necessary version of texinfo
2180         - bf: texi files, minor errors and syntax compatible with 
2181           older makeinfo
2182
2183 pl 6.jcn1
2184         - bf: scm output
2185
2186 *******
2187
2188 pl 5.hwn2
2189         - Bach preludes: mutopification
2190         - dots are Directional_element too; use \property dotDirection
2191         - moved some stuff out of Lookup
2192         - bf: dots
2193         - font selection mechanics changed.
2194
2195 pl 5.uu1
2196         - bf: smob allocation (thanks David!)
2197
2198 pl 5.hwn1
2199         - junked \shape. Now use #'margin-shape 
2200         - timing: one_beat -> \property beatLength
2201         - bf convert-mudela
2202
2203 ************
2204
2205 pl 4.uu1
2206         - input/test/ \property fixes.
2207         - gcc 2.95 fix
2208
2209 pl 4.hwn1
2210         - Break_align_engraver,
2211         break align order from  \property breakAlignOrder
2212         - junked Score_priority_engraver
2213         - moved Time_description into Timing_translator
2214         - use properties for timing, see input/test/timing.fly
2215         * removed \cadenza ; now use \property Score.timing
2216         * \property measurePosition
2217         * \property measureLength
2218         * \property currentBarNumber
2219         - Note_name_engraver , \context NoteNames
2220
2221
2222 pl 4.jcn1
2223         - junked some chord guessing code
2224         - bf: lookup size (-1) for chord-name accidentals
2225         - bf: ly2dvi's MFINPUTS setting
2226
2227 *************
2228 pl 2.jcn3
2229         - chords:
2230           * Chord is item
2231           * junked TeX hacking
2232           * configurable with styled strings from scm
2233           * fixes: dim, /no X, tonic != C
2234
2235 pl 2.jcn2
2236         - chords from  scm 
2237
2238
2239 pl 3.hwn2
2240         - visibility-lambdas into default elt properties SCM.
2241         - clef types in SCM
2242         - verticalDirection properties now in SCM.
2243
2244 pl 3.hwn1
2245         - move position_i_ into Staff_symbol_referencer
2246         - move dir_ into Directional_element baseclass
2247
2248 ****************
2249
2250 pl 2.hwn1
2251         - bf: dynamic style.
2252         - prepare to move dir_ into SCM. 
2253
2254 pl 2.jcn2
2255         - chord fixes: 
2256            * inversion request: no inversion guessing for chord entry
2257            * bass request: c/+b to add bass note not part of chord
2258            * -dim modifier works on all thirds
2259            * colon iso dash as tonic/modifier-additions separator
2260            * C:m5- displays as "Cdim"
2261            * C:m5-7- displays as "Co"
2262
2263 pl 2.jcn1
2264         - moved bracket vars to params
2265         - reverted broken lilypond-devel
2266
2267 *************
2268 pl 1.uu1
2269         - David's patches:
2270         * mfplain.mp detection
2271         * Graphical_element::common_refpoint() robuster.
2272         * fixes for mudela-mode.el
2273         - Dirk's patches:
2274         * key signature placement,
2275         * tied accidentals.
2276
2277 pl 1.hwn2
2278         - extra-offset elt property.
2279         - junked Chord_tremolo
2280
2281 pl 1.hwn1
2282         - changed calling convention for {get,set,remove}_elt_property()
2283         - rm'd some mutopia examples.
2284
2285 *******
2286 pl 0.hwn2,1
2287       - Generic properties and Property_engraver. Moved most of the
2288 properties.
2289
2290 0.lu1
2291         - resurrected midi2ly
2292
2293 0.jcn1
2294         - bf: lyrics lexer
2295         - reverted mup2ly revert
2296
2297 pl 3.uu1:
2298         - frontport of 1.2.17 patches.
2299
2300 **********
2301
2302 1.3.0:
2303
2304 pl 15.hwn2
2305         - loads of bfs.
2306
2307 pl x.jcn3
2308         - another workaround: reset buffer state for scm_ftell ()
2309         - workaround for broken scm_ftell ()
2310
2311 pl 15.hwn1
2312         - \properties are now SCM s, junk Scalar type
2313         - use SCM for strings in parser.
2314         - Moment derived from Rational. Moment may be smobified.
2315
2316 pl 15.jcn4
2317         - direct #... to scm parser  (Thanks to Gary Houston)
2318