1 This file documents changes in version 0.0
7 - bf: output tempo to track 0 too
8 - bf: don't forget to copy id_str_, so moved into Music
14 - fix for multi-staff midi: wohltemperirt.ly, standchen.ly
16 - bf: conflily, configure (text)
21 - added enable/disable defaults to help.
22 - incredibly ugly NAME_MEMBERS(); bug. Immediately changed to
23 DECLARE_MY_RUNTIME_TYPEINFO;
24 - \stem -1 -> \stem \down in input
27 - preliminary stuff for multiarch building
28 - #!/usr/bin/perl fixes (AO)
29 - some Makefile cleanups: now faster.
37 - some fixes for internal compiler errors
38 derive from Pointer_list with default dtor gives error with -O2
41 - Performer beautification: got rid of set_track(), midi_output()
42 - pseudo RTTI for midi-items
43 - bf: Performer*::print()
45 - Voice_element -> Request_chord
46 - fixed flex problems: stdin input works again
47 - Documentation/Rules.make, make-website via make
48 - spacing: now add basicspace
53 - mudela version bumped to 0.1
55 - doco updates, now some stuff in LaTeX
56 - junked book.{ly,tex} example
59 - removed mf sources from distribution due to (c) stuff
60 - allowal of breaks handled cleanly
61 - junked Subtle_reqs, junked Request_iterator. Request
62 iteration now by Voice_element_iterator
63 - Piano_bar, Piano_bar_engraver, Span_score_bar_engraver,
66 - removed Staff_engravers, grouping into Line_group_engraver
67 - Head_column as base for Rest_column,Note_column
68 - Score_column derived from PCol
69 - regurgled Line spacing: interface and implementation
70 separate. Idealspacing moved into Spring_spacer
71 - Gourlay style linespacing
74 - {lyric,meter,key}-performer
75 - span-brace-* (Removed again. Such is life)
77 - midi output, notes only
78 - working midi output -- hacked
79 - doze compile, mingw32 configure (still triggers gcc int. comp err)
82 - mi2mu fixes after scott snyder <snyder@d0sgif.fnal.gov> [sss]
83 - mi2mu update for mudela 0.0.61
90 - inbook.ly & book.tex example.
91 - natural width: linewidth = -1.0\cm
94 - oversimplified midi output thru performer hierarchy
95 - bf: Spanner::doprint
98 - naming fixes; some iter*() explicitations
100 - *performer*: second draft of midi (audio/...)
106 - Input_engraver -> Input_translator
107 - bf: span start/stop is now a "used" col.
108 - Rest_column/Rest_collisions bugfixes
116 - move Input_engraver into Paper_def
118 - naming: Request_engraver -> Engraver,
119 - Music_iterator::next() -> process_and_next()
120 - junk Voice_engravers
121 - Span_bar, Span_bar_engraver
122 - Vertical_align_engraver
127 - \paper{} syntax: var = 1.0\pt;, with an Assoc array
128 - sketch of MIDI Performer classes.
129 - bf: memleak in parser
130 - naming: Acceptor -> Translator
131 - input: bf collisions.ly, scales.ly
133 - naming: Register -> Engraver
134 - force \\ on identifiers
139 - bf: find syntax in Variables.make
143 - nested \melodic and \lyric constructs
144 - init id's, Input_register aliases.
145 - bf: notehead x-swap
148 - junked \init_end; construct
149 - Preparatory work for MIDI output:
150 * Acceptor as baseclass for Register_group_register
151 * Global_acceptor as interface of Register to Score
153 - Lyrics: partially working
154 - some doco updates (junks, mostly)
163 - bf: Script::dir_i_ checks.
164 - bf: script stacking
165 - bf: Text_spanner::do_subst.
166 - bf: Text_spanner::Text_spanner(Text_spanner&)
167 - bf: script priority read from script.ini
168 - bf: Script_def::do_equal_b
170 - mudela: ; obligatory for \paper {}.
171 - some cosmetic changes involving RTTI macros
176 - bf: whole rest position, whole/half rest dots.
180 - bf: init of Tie::dir_i_
181 - bf: Staff_side depends on staff_sym_
182 - bf: Script::do_substitute_dependency() now implemented
183 - more print info (also in output)
184 - bf: Vertical_align_element
185 - stemless beams now allowed (with warning)
186 - bf: Rest_column::stem_l_ init
187 - merge rests.ly with collisions.ly
190 - rests under beam [c8 r c]
193 - first attempt at rest collisions
197 - beam stem length: beams.ly
198 - bf: mingw configure
204 - doco: other-packages.pod, lots of lilyliterature.pod
205 - last duration mode now is default.
206 - some OpusTeX stuff.
207 - bf Y2K in convert-mudela
208 - Grand rewrite of Music/Register stuff:
209 * separation of Y and X-elt-groups
210 * Registers: info up: broadcasts, info down: get_xxx_info()
211 * Registers: try_request works from bottom to top of tree.
212 * Score_elem empty_b_ and transparent_b_ flag
213 * Junk Staff_column, and find the requests while walking the
216 * Staff_group, Score_request_register.
217 * align key/Meters/bar across staffs
218 * junked Staff, Staff_column, Staff_walker, Complex_walker,
219 Request_column Pulk_voice, Pulk_voices, Walker_registers,
221 Input_score, Input_staff, Input_music and a lot of
223 * mudela: lots of structure changes : now much simpler
224 * generation of pre/postbreak items now in Score_elem with deps.
226 - bf: make_patch explanation
227 - bf: make install TeX stuff
228 - mudela: . mandatory for REALs
232 - damped beamslope after wanske
237 - sketch of Music classes
238 - General_script_def as baseclass for Text_def and Script_def
239 - bf: clean lib/out/liblily.a
240 - bf: rests shorter than 1/4
246 - plet hack removed :-( [ c c c ]2/3 -> [2/3 c c c ]1/1
249 - bf: bar, Hilfslinie
250 - bf: configure for mingw32
253 - WIN32 -> WINDOWS32, more win32->windows32
254 - some GNU/Linux changes
255 - cygnus b18 / mingw update
256 - doze compile; bf: p-score.cc compares
257 - reincluded toccata fixes
258 - small stuff: vi tags, typos, bibl
263 - make_website --jpeg, --png and --gif
265 - bf: Score_elem::TeXstring assert fail
266 - bf: headswap with stemdown
269 - bf: accidental dims
270 - bf: measure bar width
277 - bf pathfind /root/file
278 - massive Score_elem rewrite:
279 * group_element_i_ count
280 * support for removing an individual Score_elem cleanly.
281 * moved dep stuff into class Directed_graph_node
282 * Score_elems can be copied and deleted freely.
285 * Line_of_{score,staff} now are Score_elems
286 * clean dep handling upon deletion
287 * delete unbroken spanners
288 * added a break_processing round.
290 - junk Complex_staff,
291 - clean {lily}?proto.hh
293 - Score_elem now as virtual base class everywhere
294 - naming: Staff_elem -> Score_elem
295 - bf: make in toplevel dir
296 - bf: broken tie y-pos
297 - bf: sharing 4th, 8th and 16th noteheads
298 - bf: overlapping chords. <\multivoice c d >
301 - new stem direction code
302 - bfs: wohltemperirt.ly (thanks, Werner)
309 - bf: mi2mu mudela commands
311 - mi2mu quantify tuning
317 - exe's now built in out/
318 - toplevel Makefile dep from make/Toplevel.make.in
319 - make_website: add version footer
320 - make_website: bf dist *.txt
321 - bf: fix loose bars: \meter 4/4; c1.
322 - Staff_elem -> Score_elem
331 - bf: segfault during MIDI output with mi2mu output.
332 - kludge: parse error beyond eof
333 - don't read ini if toplevel file not found
334 - accumulate \kern in TeX output.
335 - bf: try to prevent long lines; TeX breaks on them.
336 - naming: Pointer->Link, IPointer->Pointer
337 - bf: \plet didn't work (MB)
341 - mi2mu -p -s16 fugua2.midi getting better!
342 plus factor 2 mi2mu speedup (fugue2.midi 5.50user)
343 - bf: Duration_convert quantify threshold down
344 - bf: (on quantify): tcols quantified; no silly voices
347 - lily parsing speedup: backup rules for lexer.l
348 - bf: mi2mu, using midi_voice list...
351 - all in all mi2mu speedup of about factor 8 since pl61
352 (fugue.midi 82.72user to 10.30user on a 586.133)
354 - binary search on track-columns
355 - mi2mu IP*list to Array (implications?!) conversion
356 - mi2mu parsing speedup: backup rules for midi-lexer.l
357 - bf: zero denominator
362 - make clean bf: remove lex & yacc files too
363 - added kludge in case measure too long
364 - added kludge in case of unconnected columns.
365 - kludged columns get error marker
366 - kludged lines get error marker
370 - smarter + faster duration-convert using Array
371 - bf: mi2mu compilation/duration-conversions
372 - lots faster mi2mu, hopefully does type 1 too...
374 - mi2mu handles non-quantified rests, try mi2mu -b wtk-i/fugue2.midi
380 - scales.ly bugfix: dimensions default to ((0,0), (0,0))
381 - naming: PointerList->Pointer_list
382 - tied notes don't get accidental
385 - bf: _"text" direction
386 - mailing list into lilypond.pod
389 - set_flower_debug: Warning if -d is used when NPRINT is defined.
390 - Fixed several TeX details. vcenter renamed since it interfered
391 with LaTeX. Position of accents changed.
392 - New example; scripts.ly
393 - table_sixteen: added scriptdefinition (Lilypond breaks if a
394 script is defined without dimensions).
395 - bf: ifndef typos in p-score.cc, choleski.cc
396 - bf: Slur::do_post_processing(), whole notes caused SIGSEGV.
401 - mi2mu handles rests (quantified only)
402 - fixed configure buglet
403 - "!date" Fri May 2 02:18:12 MET DST 1997
406 - Request_register::get_feature(), tie direction, Slur direction
407 - lilypond output is now directly texable.
408 - make_website checks return status
413 - Slur now into voicegroups, and take stems into account.
414 - bf: rest size in table.
415 - split Slur in baseclass Bow
416 - Tie, Tie_req, Tie_register
421 - bf: toccata-fuga-E.ly
424 - mi2mu handles rests (quantified only)
425 - fixed configure buglet
426 - "!date" Fri May 2 02:18:12 MET DST 1997
430 - national chars in lyrics
432 - long comments: %{ %}
434 - bf: partial may be everywhere
435 - bf: meterchange not at start of measure
437 - bf: stem too long if stem is down.
440 - dank je schat, voor wtk-i
441 - mi2mu tries to handle rests
442 - "!date" Thu May 1 02:34:04 MET DST 1997
443 - maak je het niet te laat schat?
447 - small toccata-fuga-E.ly fixes
448 - \bar "||"; is now doublebar, "|." is finishbar
449 - collision hshift fix, with on-line assistance
453 - text alignment bugfix
454 - bugfix Voice_group_regs::get_register_p() now is actually called too
455 - bugfix init of Text_item::pos_i_
458 - toccata-fuga-in-E.ly, excerpts with real-life collisions
459 - \{l,r}{b,f}{toe,heel} --- using cmsy fonts...
465 - \[lr]heel \[lr]toe scripts (happy pedal studies, pa)
467 - removal of some example files
473 - swedish note name update
477 - Massive Rest/Stem/Collision/Note_column rewrite: resolve
478 notehead/rest ambiguities and bugs. eg, [c8 r8 c8]
481 - standchen.ly: repeats; lyricii to end
482 - convert-mudela: help + usage
483 - fixed midi key/meter-change (triggered by martien.ly) bug
488 - staff-side robustification
494 - bugfix Colhpos.cc::OK assert fail.
495 - Inclusion of MusixTeX MF files,
496 - detection of MF dir
499 - configure/make buglets.
502 - spurious accidental bug.
503 - simultaneity check.
505 - convert-mudela auto from guess
506 - include -> \include
507 - change order of opening parse/init file
508 - Pulk_voice, Pulk_voices
510 - revised request-from-voice extraction. Now much faster
516 - tex-prefix and tex-dir sep'd (here you are jan)
517 - convert-mudela framework
518 - Collision_register, Collision
522 - LILYINCLUDE dir searched before DIR_DATADIR(?)
523 - lily reads from stdin again (but does not now when to stop)
526 - transposition bugfix + doco
527 - LilyPond -> GNU LilyPond
528 - bugfixes for Staff_side and Note_column*
529 - wohltemperirt: complete
535 - merge rest / notehead.
536 - Staff_side as a base class for most "staff-side" symbols.
538 - Note_column_register, Note_column
545 - configure[.in], make/Configure_variables.make.in c++ (=doze fix)
546 - "configure; make" ok for doze, win32 target may be removed now
547 - win32/gcc 2.7.2 compile fixes -- why does this all compile
548 (without warnings, why can-t i even trigger warnings) under
549 linux/gcc-2.7.2.1? it's quite a tedious job fixing this
550 shit _on doze_ all the time.
551 * fixed #includes global-regs.cc, staff-info.cc, staff.cc
552 * key.hh:Key() -> Octave_key()
553 * added missing lily/include/input.hh: Input( Input const& )
557 - clef in cadenza mode.
559 - \command bla; for \meter, \clef, \octave etc.
563 - Duration order -> grouping
571 - Input mods: now use Source_file iso Sources
572 - makefile lib deps restructured
573 - make_website now produces in out/
577 - LILYINCLUDE env var.
583 - user settable register config
584 - struct Input now used iso defined_ch_C_
585 - Walker_registers and Staff_registers separated
586 - dynamic-reg -> hairpins
589 - doze configure/compile fixes
592 - install mudela manpage too
593 - RedHat spec lilypond.spec fixed
594 - target: rpm (make RedHat packages)
599 - Removing unused Voice_regs & Voice_groups
603 - merged 42.3 42.jcn4 code trees (see stuff below)
604 - moving towards Mudela 0.1 (again)
605 * keyword "music" dropped for horizontal music
606 * keywords "\lyric" "\melodic" introduced, e.g.:
607 melody = \melodic { c c | g g }
608 * removed level of indirection:
609 - staff initialisable with music identifier list:
610 \staff{ global melody }
611 - \score and staffs alike
612 - gnu standard(?) help texts
613 - configure "creates" toplevel Makefile from make/Toplevel.make
617 - write meter to track0 too...
619 - new Sources in My_midi_lexer: sourcefile_p_ = get_file_l(): oeps.
620 (ain-t hungarian grand?)
623 - updated for mudela 0.1
628 - pure parser, My_lily_parser
632 - Duration in parser, Duration restructuring
633 - grandiose lexer hax. Flex should be fixed, really.
634 Lexer much faster now.
641 - warnings if incorrect mode
642 - missing scsii measure
643 - declaration used check.
647 - lily writes midi meter/key changes from requests
650 + write bar change requests
651 + more tunable quantisation
654 - half-new-menuetto.ly converted to mudela -almost- 0.1
655 - new mi2mu of bach's wtk pre1/fugue1
657 pl 42.3 (jcn version)
658 - oeps, branched source tree
661 - const naming change (T const <-> const T)
662 - Mudela 0.1 (roughly the same as below..)
665 - moving towards Mudela 0.1:
666 * all keywords must be preceded by backslash '\'
667 * explicit lexer switches '$' and '@' dropped
668 * keyword "music" dropped for horizontal music
669 * keywords "\lyric" " introduced, e.g.:
670 melody = \melodic { c c | g g }
671 * staff initialisable with music identifier:
677 - configure sets CXX (to c++, commonly)
679 - renamed lexer.hh, mylexer.cc My_flex_lexer to my.lily.lexer.*
682 - new lilyinput (Mudela 0.1) doc.
684 - new-twinkle.ly (in Mudela 0.1, hopefully)
687 - further Makefile revamping.
703 - detect TeX directory
724 - notename now as identifier. Parser/lexer cleanup
727 - mi2mu --blonde-durations, --no-silly options.
728 - mi2mu starts to look promising, see examples
730 - pre1.midi.ly, fugue.midi.ly
732 - Duration handles blonde midi-durations
733 - More settings for Duration_convert
734 - lily writes meter too (ugh, howto?)
736 - mi2mu auto track number fix
737 - mi2mu / lily Midi_tempo fixed/added
741 - lily midi output track 0 name
743 - make out/make and out/make/Site.make in configure script!
744 - mi2mu double newline fix
753 - own versioning for mi2mu: 0.0.10
754 - some file renaming mi2mu
762 - experimental RPM spec.
767 - m2m renamed to mi2mu
768 - better line breaking in mi2mu
769 - (somewhat broken) progress indicator for mi2mu
770 - mi2mu output === lily input (in names and durations,
771 always assuming voices > 1 though)
774 - midi: note on/off only once per pitch per track
775 (sending all note-on events introduces cool mi2mu feature)
776 - make clean removes deps too
777 - mi2mu notename/accidental/octave, and key fixed
780 - auto create of out-dirs, config headers, using tag file .GENERATE
783 - stanchen.ly debugged
786 - configure script help and in topdir again, duh.
787 - auto configure upon virgin make
788 - configured makefile stuff in make/out/
793 - doze target (for 16 bit dos xcompiler: gcc-go32)
795 - make/User.make; C..FLAGS sorted out
800 - new make structure, featuring:
801 * top-level/sub-level build
802 * auto custom-library dependencies/build
803 * top-level/sub-level dist
804 * minimal(? can even smaller) specific Makefiles
805 * which makes for simple lib/exe module split (make/Template.make)
806 * integrated flowerlib
807 * all stuff into subbirs (make/Stuff.make)
808 * all headers into <module>/include dirs (make/Include.make)
809 * all output into <module>/out (executables into bin/)
810 * more make features, like make config, make help
812 * lilypond-x.x.x/.version for toplevel lily version
813 * lilypond-x.x.x/<module>/.version for <module> version (eg: flower)
814 * versioning using additional optional MY_PATCH_LEVEL
820 - generic m2m header: m2m.hh
823 - small fixes, make, dist, configure
826 - all of the below, e.g. new filenames and new makefile
827 structure patches merged
832 - great filename renaming operation with - convention.
833 - printing methods for paper_def/lookup/symtab(s)
834 - untied all registers from complexwalker. Now registers are
835 intrinsically hierarchical. All walker communication is done via a
836 "top level" register.
840 - instrument, track_name, copyright/left stuff for m2m/ly
846 - text, key, tempo event in midi output/ly input
849 - simple makefile structure, allows for multiple projects
856 - language.pod as starting point for mudela devel.
860 - m2m patchy --no-triplet option;
861 lilypond accepts m2m's real midi output (hand-add red tape)
862 - m2m output only valid durations, resync option wip
863 - m2m produces .ly output
865 - simpler and better naming for Duration*
866 - the great String renaming / index to base=0 change
867 - Track_column, Lily_stream
868 - Duration, Plet, Duration_convert taking load off duration calc.
877 - do MIDI rests cleanly.
878 - lily/m2m: time and tempo fixed for metric timing
881 - m2m parses more midi stuff (all of bach-wtc); timing??
882 - m2m recognises some commandline options
891 - alignment of breakable items.
895 - better midi syntax.
897 - preliminary midi2mudela (/mudela2midi) converter: m2m (JCN)
899 - m2m sources: midi-*; (JCN)
900 - new Midi_walker, fixes several MIDI bugs.
901 - junked Midi_staff, Staff_column children, Midi_walker
908 - Source_file::error_str simplified
912 - Swedish notenames (MB)
920 - Jan's patches, see below
922 - some midi bugfixes.
927 - midi output using pitches iso notename
929 - added midi output (some midi output files broken?)
930 - all melodic fixed (except for error.ly:-)
933 - midiwalker line break
934 - empty/nonexistent include at top of ly
937 - midi poor man-s staff dynamics
939 - Midi_column, Midi_staff, Midi_walker
942 - Jan's patches, see below
945 - simple plet notation (JCN)
946 - lyrics centred, but no fully suppored? (JCN)
950 - Midi_item, Midi_pitch, Midi_duration
951 - Midi_chunk, Midi_header, Midi_track
952 - preparations for midi output
953 - no exit upon context error (JCN)
954 - converted some "warnings" to errors; no output (JCN)
958 - updated standchen, menuetto (JCN)
959 - new plet notation (JCN)
960 - plet.ly (parse and spacing tests) (JCN)
965 - multiple meters, see rhythm.ly
966 - skip syntax/Skip_req
967 - score_wide_music: commands in staff now override commands in score.
973 - meters now kept in baseclass Staff_walker
974 - Score_walker (to ease MIDI output)
976 - Hungarian doco added to CodingStyle
979 - music processing speedup
980 - website added to doco
981 - clef must *inside* music
982 - fixed spurious "beam too narrow" messages.
984 - merge musical / non-musical staff_column
985 - musical/ non-musical requests
987 - split up request.hh, Musical_req vs. Nonmusical_req
992 - Coriolan example (JN)
995 - calcideal assertion bugfix
1001 - better multivoice spacing
1002 - move rest in multivoice staff
1003 - errors in TeX output now warnings
1004 - progress indicator
1005 - music processing speedup.
1007 - make spanner for staffsym; scrap Line_pstaff
1008 - scrap simplestaff (Rhythmic_staff temporarily disabled)
1009 - docxx 3.0 format comments
1010 - split register source files
1011 - hardcoded dimensions compile time
1012 - Lookup::tex_hairpin
1015 - script junking (2x)
1017 - beam::center (plet position!)
1020 - multiplatform Makefile (JN)
1021 - context errors: bugfixes (JN)
1026 - idealspacing slightly better for multivoice.
1030 - Script.cc : float exception (MB)
1031 - Request::Request(Request) copying of definition pointer (JN)
1032 - cleaned dependencies for broken spanners
1033 - stupid typo in Staff_elem::post_processing()
1034 - init of hpos in PCol::PCol
1035 - Word_wrap::solve() bug
1038 - preliminary WIN32 support (JN)
1040 - errors converted to warnings (JN)
1041 - context errors (JN)
1042 - As vs. as notename.
1043 - WARNING: "melodic" stafftype will create the new Complex_staff!
1045 - Lohman's Viola Quartet (JN)
1046 - JS Bach Solo Cello suite II menuet (JN)
1053 - last_duration_mode: default_duration is last duration entered
1055 - syntax: grouping 2*4 3*8
1056 - preliminary multivoice support
1058 - JS Bach's WTK example added.
1061 - Text_reg and Script_reg
1064 - Documentation/lelie_logo.png
1065 - 8-bit chars for input (see ltest.tex) (MB)
1066 - quotes around string now optional
1070 - print/name methods of Staff_elem
1071 - added Request_register
1072 - Voice_group_registers, Voice_registers, *_register
1077 - other clefs added, keys typeset properly (MB)
1082 - Commands in music-mode (an input feature) (there you are, Mats)
1088 - default extension, search path.
1092 - inputfile name in output.
1095 - Make dependencies per .o
1096 - Split Input_* parsing steps to enable marking
1098 - unconnected columns
1105 - | checks for bar in a voice (Barcheck_req)
1107 - naming (Hungarian notation, svec vs. Array)
1108 - cleanup PScore, Score
1109 - removed Staff_commands, plugging commands into Staff_column directly
1112 - huge memleak fixed; unearthed lots of bugs
1118 - nplets (triplets!)
1120 - Move breaking stuff into a separate class Break_algorithm
1121 - dependencies for Staff_elem's
1126 - updated doco to .pod
1127 - include files from .ly
1129 - Rational for time measurement
1130 - directionalspanner/textspanner
1134 - grouping code: LilyPond can set advanced multibeams.
1141 - robust Staff_commands
1145 - robust Input_commands
1146 - merged Vertical_/Horizontal music
1147 - PARTIALs with duration
1148 - modularized lexer: multiple runs
1152 - notenames configurable
1157 - multibeams (simple)
1161 - symtables from .ly
1163 - Input_{score/staff}
1168 - Horizontal/Vertical music