]> git.donarmstrong.com Git - lilypond.git/blobdiff - TODO
patch::: 1.1.8.hwn1
[lilypond.git] / TODO
diff --git a/TODO b/TODO
index 5af191f9f2e8aa5f77b86f8e9f78aebe4bf6540a..8a2255c06524aac5db49c437edb1fbc0f6517383 100644 (file)
--- a/TODO
+++ b/TODO
-Features you cannot find in the doco as working, should be mentioned her.
+Features you cannot find in the doco as working, should be mentioned here.
 
 This is an assorted collection of stuff that will be done, might be
 done, or is an idea that I want to think about
 
 Most of the items are marked in the code as well, with full explanation. 
-grep for TODO and ugh/ugr
+grep for TODO and ugh/ugr/urg
 
+BUGS:
+       * gallina barlines.
 
-IMPORTANT
-       * add mi2mu example output (.midi.ly and .gif) to website
+       * latex bla.tex broken (titles / \lilyfooter stuff?)
 
-       * piano staff
+       * msgfmt -o check?
 
-       * decent spacing
-       
-       * implement better breaking algorithm
+       * \breathmark TeX macro 
+
+       * configure error if GUILE 1.3 not found
+
+       * catch GUILE errors?
+
+       * add new glyphs to font.ly
+
+       * formatting of input stuff. 
+
+       * \notes{ a \< b \cr } vs \notes{ a \< b \! }
+
+       * if possible, it might be nice for a warning to appear if someone does
+       \translator with no name and without assigning it to an
+       identifier.  
+
+       * space after bars?
+
+       * [/3 c8 c16 c c c]/1
+
+       * fix singleStaffBracket
+
+       * repeat bars: need distance after ":|" and before "|:"
 
-       * update 20 pt table
+       * The time signature warnings still remain, will be fixed later.
+
+       Summary of minor spelling irregularities:
+       -  capitalization/use of underscores in property names
+
+       * fix Score.skipBars
+
+       * repeat bars: need distance after ":|" and before "|:"
+
+       * \shape 1st dim skipped? 
+
+       * fix marks/barnumbers/marginal notes
+
+       * broken scripts:
+       lbheel = \script { "bheel" 0 0 -1  0 0 }
+       rbheel = \script { "bheel" 0 0 1 0 0 }
+       lbtoe = \script { "btoe" 0 0 -1 0 0 }
+       rbtoe = \script { "btoe" 0 0 1 0 0 }
+       lfheel = \script { "fheel" 0 0 -1  0 0 }
+       rfheel = \script { "fheel" 0 0 1 0 0 }
+       lftoe = \script { "ftoe" 0 0 -1 0 0 }
+       rftoe = \script { "ftoe" 0 0 1 0 0 }
        
-       * use Hungarian throughout code
+       and also
+       
+       portato= \script { "portato" 0 -1 0 1 0 }
 
-       * decent TeX page layout
+STUFF
+       * uniformise recent feta contributions.
 
-       * per staff item-widths [JCN]
+       * check out legal/(c) matters for scores.
 
-       * script priority
+       * move option processing out of gh_enter
 
-       * a Hands on tutorial [HKN]
+       * check out GCC signatures?
 
-PROJECTS
-       * Output class, handles : (smallish)
-       - help text /(c) notice?
-       - version line
-       - warning /errors/progress
-       - abort on error/warning; exit status
-       - quiet/ignore-version options
-       - logfile output
+       * Align_element::padding  ?
 
-       * elaborate Staff_side baseclass:
-       - scripts
-       - text
-       - slur start/end
+       * uniformise property names.
 
-       * Output an output format independent (ofi) typeset file; and 
-         make ofi2 TeX, MusixTex, PostScript, Ascii... interpreters. (difficult)
-       - poor man's ascii output possible?
-       - MusixTeX output possible? (would have to be done before break calc.)
-       - NIFF ?
-       - PostScript output (esp. Beams, Slurs, etc)
-       - Move PScore, Items, Spanners etc. into libmutype.a
+       * ydirection <-> yDirection
 
+       * typo checks on property names?
 
-       * separate Score_elem settings in user-settable (properties
-       .. ) and non-user-settable part.
+       * make engraver hacking robust.
 
-       * TeX spanners , use texbeam.cc as an example (smallish)
-       - Glissando
-       - trill
-       - bracket
+       * --safe:  disallow backslashes, disallow \include.
 
-       * Rewrite Stem, Beam and Rhythmic_grouping (hairy)
-       - [c8. c32 c32]
-       - interbeam height
-       - doc on Rhythmic_grouping
-       - general shaving on Beam and Stem
-       - use plet grouping
-       - abbreviations [c2 c2]1/2
-       - separate visual from rhythmic info even more
-       - beams over bars
+       * use streambufs and iostream
+       to provide IO handling for TeX stream, mudela stream, data-file.
 
-       * Redo MIDI output to use Registers: (Difficult)
-       - remember more horizontal info than melodics:
-       - tempo change
-       - repeat
-       - slurs
-       - dynamics etc.
+       * seriously buffer TeX output (do profile of writing .5 mb TeX file.)
 
+       * strip EXEs before installing
 
-       * Redo font support 
-       - use GSharp fonts?
-       - rename mf fonts to avoid conflicts with musixtex
-       - check (c) issues
-       - use own fonts/update musixtex fonts/find older (c)-less fonts
-       - hack up mf sources for decent spacing info (and then 
-       read AFM/TFM directly, for text too)
+       * zip target for binary windows dist (JBR)
 
+       * revise documentation
 
-       * lines:
-       - Ledger lines, should be separate item: Ledger_lines, Ledger_lines_reg
-       - set different line sizes / thicknesses
-       - stem down too far right
-       - beam stem showthrough, inter beam sizes (french vs german style)
+       * abbrev -> tremolo
 
-       * Collisions
-       - bring Collision::do_pre_processing to haircutter
-       - left/right note balls should be handled by Collision:
-       < \multivoice { \stem 1; <b c> } { <f as b> } >
+       * junking \skip req in lyrics
 
-       * Keys:
-       - merge key{item} & localkey{item}?
-       - do conventional keys (C G A, F B E, a e fis, d as des, etc ), 
-         besides lists of flats/sharps, possibly via declaration
-       - key transposition. 
-       - key undo: \key bes; .. . \key; should print natural   
-       - special key: \key 'b bes bis';
-       - spacing, national styles?
+       * Language:
+       - \type -> \context ?
+       - \translator -> ?
+       - fix \partial 
+       - \bla {} vs \bla ; 
+       - mix engraver hacking with music ?
+       - \once\property  KEY = VAL
+       - \addtranslator, \removetranslator
+       - junk ^ and _ for scripts
+       - junk _ for lyrics.
+       - abstract grammar.
 
-PARSER
-       * Duration -> Musical_duration, typedef Rational Duration?
+       * percussion note heads
 
-**********************
-HKN buglist:
+       * mi2mu empty staffs.
 
-noten staan vaak te dicht aan de rechterkant van de maatstreep.
+       * include MIDI list 
 
-tekst staat erg ver van notenbalken af
+       * midi_instrument -> midiInstrument
 
-waarom geen ; achter dingen in \paper? (\textwidth 180\mm)
-(sowieso: wanneer wel en geen ; ?)
+       * horizontal centering of dynamics 
 
-Onduidelijk wanneer wel en geen \ voor een woord. Maak liever
-verplichte regels
+       * \font\fontA=feta20.afm (.afm?)
 
-****************
+       * gzip RH manpage
 
+       * stable make/config stuff
 
-BUGS
-       * RPM permissions -> redhat!
+       * stemup/stemdown; see test/updown.fly
+         - check examples; add \type Staff hither and thether
 
-       * spurious Weird stem size warnings
+       * $DEPENDENCIES_OUTPUT support
 
-       * staccato dot positions.
+       * use a fake-yodl.sh to mimick yodl when yodl is not installed
 
-       * stacked scripts.
+       * fix BUGs
 
-       * lilypond - -> crash
+       * fix weird behaviour when .AFMs not found.
 
-       * standchen triool beam up/down
+       * Xdvi zooming ?! Try to understand GS garbage collection.
+               gs: Error: /undefined in draw_beam
+               gs: Operand stack:
 
-SEVERELY LACKING:
+       * run texhash after installing .tex
 
-       * SPEED!
+       * fix vertical alignment and stafflines
 
-       * grace notes
+       * GrandStaff needs more work -- I want a single word
+       `harpsichord' to the left of the grandstaff, not one on each
+       stave.  (Organ staff -- with separate pedal -- but common
+       properties may be something to think about.  Of course for
+       organ you want to be able to give stop indications on the way
+       through, so the \property Voice.Instrument would be a stop,
+       and \property GrandStaff.instrument would be PipeOrgan...)
 
+       * make Tie_req a "command" { <c g> ~ <c g> }
 
-FURTHER FOR ORCHESTRAL SCORE:
+       * bib ep1988
 
-       * multibar rests
+       * revise the Score_priority_align_engraver concept.  It sucks. 
 
-       * barnumbers, markers
+       * ly2xdvi, ly2ps
 
-       * abbreviations c4=16
+       * make new VoiceOne, VoiceTwo, VoiceThree contexts with
+ydirection and hshift preset
 
-       * doublebar "||", finishbar "|||" (or "||." ?)
+       * *.yo: fix pod manpage layout legacy
 
-INPUTLANGUAGE
+       * text-items clash with stems/beams
 
-       * should have \require{package.ly} to read req'd packages.
+       * --include, -I option for ly2dvi (pass on to lily)
 
-       * relative mode for pitch entering
+       * fix placement of beam-less abbrev
 
-       * bracket (bracketplets)
+       * \meter 3/4;
+       <{\voiceone cis4. cis8 cis4 | cis4 cis cis | r1 }
+        {\voicetwo cis,4 r r | r2. | r1 }> |
+       }
 
-       * \duration 8; e*2/3
+       * try to use template<Type> iso MACRO(Type)
 
-       * configure pitch_byte
+       - NEWS: ... Musical_pitch (analogous to Duration and Rhythmic_req)
+         think about, analogous to pitch: 
+          * { a4 a16 } c <-- duration of c?
+          * <a4 b8> c <-- duration of c?
 
-       * figured bass?
+       * \tempo 4. = 90;
 
-       * rest name configurable
+       * fix audio-items (don't use (input) requests, but copy data)
 
-       * Raw request syntax
+       * junk My_lily_parser::abbrev_beam_type_i_ 
 
-       * subtime with Subtle_reqs
+       * make sure all ex's have a mudela-version
 
-PROJECTS
+       * do rest-collisions for Multi_measure_rests as well.
 
-       * Do RTTI i.s.o. static_name(), name() and request-junk.
+       * split error/warning in error/warning/non_fatal_error
 
-       * add remove() methods to all items/spanners.
+       * add a Duration_convert member to Duration_iter to set parameters.
+       Junk global duration settings. 
+       * deps for ly2dvi
 
-SMALLISH PROJECTS
+       * clean up abbrev/plet/beam/abbrevbeam/duration mess in parser.
 
-       * replace Score_elem member access by get()/set() methods, to enable
-       future embedded code.
+       * minimum length second part broken tie
+       * en-,discouraged linebreaking: 
+         - handle DISALLOW < penalty > FORCE
+         - discourage breaking of slurs
 
-       * --fast/--draft: leave out constraints
+       * multibar rest
+         - symbol(s)
 
-       * write Dynamic_line (to group dynamics horizontally)
+       * fix variable define/lookup parser global<->paper
 
-       * write Rest_collision
+       * fix title/instrument placements; see input/test/title.ly
 
-       * use Real for y positions.
+       * <\voiceone c4. \voicetwo c4>
 
-       * shared lib on Solaris too.
+       * add full cello suites to web site (kom op, Maarten!)
 
-       * bugreport to doc++ devel: struct not in class hier; public
-       virtual baseclasses
+       * Rethink Time_description
+         * \cadenza , \meter, \grouping should all be \properties
 
-       * cleanup lily-proto.hh and proto.hh
+       * rename
+         - plet -> tuplet
+         - measure -> bar
+         - abbreviation-beam -> (measured/unmeasured) tremolo
+         - partial -> anacrouse
 
-       * half-sharps, half-flats
+       * shared lib
 
-       * adaptive accidental spacing.
+       * robustify Beam (in case of no stems, 32nd notes)
+
+       * decentralised spring factory
+
+       * move paper vars into engraver properties
+
+       * check for groff / troff/ nroff et
 
-       * Score_elem invisible_b_ flag
+       * more intelligent file searching
+       - make LilyPond RPM fully relocatable
+
+       * nicen examples:
+       - break-up heavily-nested score blocks
+
+       * disable spaces in TeX stuff
        
-       * unix style paths for LILYINCLUDE env
+       * handle ^C for tmp/file creation.
 
-       * indentable stream as baseclass for TeX stream, lily stream, Dstream.
+       * dots & rest collisions.
 
-       * handle EOF graciously in error messages.
+       * documentation
+       - introduction?
+       - info?
+       - LaTeX?
+       - more manpages?
 
-       * caching Item/spanner dimensions.
+       * versioning for Feta
 
-       * centered whole rest
+       * the warning about the negative slur/tie length appears twice
+       which is irritating.
 
-       * caching breakpoints / saving them. 
+       * The `3' in the meter key is a one or two pixels too thin (at 600dpi)
+       in the middle:
 
-       * use dstream feature in mi2mu
+       * the bracket is ugly (wings are too parabolic, should be more circular)
 
-        * qtor, btor, mtor-> tor( QUIET_ver ), tor( DEBUG_ver ), etc.
-       - use tors feature in lily (?)
+       * better hshift (dots, distance, head dependent)
 
-       * declare symtab
+        * clefs (AG): The "8" should appear closer to the actual clef,
+          touching it.
 
-       * declare notenametab?
+       * put errorlevel in Input class
 
-       * midi esp.: use I32 iso int where 32 bits are needed (or assumed...)
+       * junk nesting slurs
 
-       * parshape
+       * integrate midi-elts from mi2mu and lily?
 
-       * read from mmap directly: bugreport to flex developers->
-       yy_scan_buffer in C++..
+       * score-bar-scripts
+       FMR: Free memory read:
+         * This is occurring while in:
+               Bar_column::do_substitute_dependency(Score_element*,Score_element*) [bar
+       -column.cc:29]
+               Score_element::unlink() [score-elem.cc:383]
+               Paper_score::set_breaking(const Array<Column_x_positions>&) [p-score.cc:
+       150]
+               Paper_score::calc_breaking() [p-score.cc:189]
+               Paper_score::process() [p-score.cc:203]
+               Score::run_translator(Music_output_def*) [score.cc:117]
+         * Reading 4 bytes from 0x65d3a0 in the heap.
+         * Address 0x65d3a0 is 160 bytes into a freed  block at 0x65d300 of 208 bytes.
+         * This block was allocated from:
+               malloc         [rtlib.o]
+               __builtin_new  [libgcc.a]
+               Span_score_bar::clone()const [span-score-bar.hh:20]
+               Item::copy_breakable_items() [item.cc:69]
+               Item::do_breakable_col_processing() [item.cc:89]
+               Score_element::calcalute_dependencies(int,int,void(Score_element::*)()*)
+        [score-elem.cc:171]
+         * There have been 22 frees since this block was freed from:
+               free           [rtlib.o]
+               __builtin_delete [libgcc.a]
+               Span_score_bar::~Span_score_bar() [span-score-bar.hh:18]
+               Paper_score::set_breaking(const Array<Column_x_positions>&) [p-score.cc:
+       156]
+               Paper_score::calc_breaking() [p-score.cc:189]
+               Paper_score::process() [p-score.cc:203]
+       Postprocessing elements... 
+       TeX output to score-bar-scripts.tex...
 
-       * binsearch/hash for identifiers
 
-       * stafftypes: voice names/ instrument names.
+3RD PARTY BUGS:
 
-       * Decent TeX titledefs (\tempo, \metron, etc. )
+       * redhat (v?) graphical install bomb-out?
 
-       * C meter iso 4/4, idem for alla breve, etc.
+       * GNU diff 2.7: diff -rN does not see a new directory with empty file
 
-       * textspanner: center position
+       * GNU patch 2.1: <must find simple example> if patch chokes on a
+         hunk, or on allegedly unsorted hunks in a diff, it may stop 
+         without a trace of failure (create .rej file, print error or 
+         dump core) and just ignore any further diffs.
 
-       * script-spacing
+       * glibc 2.0:
 
-       * Brackets
+         f = fopen ("/dev/null", "r")
+         assert (feof (f))
 
-       * caching of Register_group_register hierarchies.
+3RD PARTY PROJECTS:
 
-       * use (char *) iso. String for communication between lexer and
-       parser.
+       * GNU indent: handle C++
 
-       * configure idealspacing: arithmetic spacing
+       * GNU patch 
+         - 'double-fix' mode: ignore identical fix, rather than suggest 
+           to revert patch direction when (more or less? exactly) the same 
+           thing is fixed
 
-       * LilyPond .deb. Other packaging methods?
+PROJECTS
 
-       * detect -pipe
+       * Scripts:
+       - fix position of bar number
+       - stack scripts in chords:
+         % fingering:        footing:
+           < a-4 c-2 g-1 >   < c-\ltoe e-\lheel >
+       - script-spacing
+       - slur parts as a script
+       - stack parameterised scripts for fingering and footing:
+
+       * convert-mudela:
+       - automatically add  a \version if not present.
+       - better parsing
+       - make smarter
+       - convert-mudela -e empty.ly
+
+       * emacs mudela-mode
+       -  should handle block comments too.
+       -  handle lexer modes (\header, \melodic, \lyric) etc.
+       -  indentation
+       -  notenames?
+       -  fontlock: \melodic \melodic
+
+       * use properties for:
+       - plet?
+       - Staff_sym size
+       - default tempo.
+       - font size
+       - bartypes (get rid of derived Span_bar_engravers)
+       - cadenza mode? 
+
+       * page handling:
+       - PS output
+       - optimal pagebreaking.
+
+       * Unicode support? -> man 7 unicode
+       - 16 bit Strings
+       - -u switch
+       - detect of 16/8 bit files
+       - examples to go with it.
+
+       * Spring_spacer:
+       - write a faster Spring_spacer (without matrices if possible)
+       - relate energybound to linelen unitspace fontsize etc.
+       - used fixed point fp?
+
+       * \header
+       - output header info to MIDI too.
+
+       * a musical dictionary. See Documentation/vocabulary-*, other
+       languages:
+       - explanations
+       - italian
+       - german
+       - dutch
+       - swedish
+        .. ?
+
+       * chords
+       - guitar chords
+       - chord names
+       - basso continuo
+       - Syntax/parser
+       - MIDI output?
+       - typesetting
+
+       * Debug logs:
+       - derive lily_stream, Dstream, texstream from ostream?
+       - indentable stream as baseclass for TeX stream, lily stream, Dstream.
+       - use dstream feature in mi2mu
+       - integrate IO checking into stream class
+
+       * input converters
+       - NIFF?
+       - ABC? 
+       - SMDL?
+
+       * add to MIDI output:
+       - tempo change
+       - ornaments (and trills?)
+       - repeat
+       - slurs
+       - accents
+       - dynamics
+       - account for rhythmic position in measure
+       - etc.
 
-DOC
-       * Score_elem structure.
+       * grace notes
+       - make separate class for Grace_*_engravers 
+       (which is at Voice_gravs level)
+       - make encapsulated spacing problems.
 
-       * all errors
-       
-       * config of TeX macros
+       * accidentals per Voice_group
+
+       * Output class, handles : (smallish)
+       - help text /(c) notice?
+       - version line
+       - warning /errors/progress
+       - abort on error/warning; exit status
+       - quiet/ignore-version options
+       - logfile output
+
+       * piano staff
+
+       * elaborate Staff_side baseclass:
+       - scripts
+       - text
+       - slur start/end
 
-       * a test suite
+       * PS 
+       - speed up PS code.
+       - PS lines to .eps files
+       - write custom prolog
 
-       * hacking-HOWTO
 
-FUTURE
+       * Output an output format independent (ofi) typeset file; and 
+         make ofi2 TeX, MusiXTex, Display PostScript, PostScript,
+         Ascii... interpreters. (difficult)
 
-       * auxilliary file for caching info.
+       - NIFF ?
+       - Common Music Notation
+       - PostScript output (esp. Beams, Slurs, etc)
+       - Move all Score_elems, into libmutype.a
+       - SGML
 
-       * Reg_configure_request
+       * Documentation
+       - Doc (C) stuff of sheet music
+       - a better format?  SGML?  TeX?  Info?
+       - a better tutorial
 
-       * slur parts as a script
-       
-       * mixed fontsizes
+       * more spanners (smallish)
+       - Glissando
+       - trill
 
-       * put scripts on bars
+       * Rewrite Stem, Beam and Rhythmic_grouping (hairy)
+       - [c8. c32 c32]
+       - doc on Rhythmic_grouping
+       - general shaving on Beam and Stem
+       - use plet grouping
+       - separate visual from rhythmic info even more
+       - beams over bars
+       - endbeam req should be *after* the duration, so you can do
+       < { [c4]    }
+         { c8. c16 } >
 
-       * guitar chord
 
-       * Junk Staff_column, and find the requests while walking the
-       Voices.?
+       * lines:
+       - Ledger lines, should be separate item: Ledger_lines, Ledger_lines
+       - set different line sizes / thicknesses
+       - beam stem showthrough, inter beam sizes (french vs german style)
 
-       * better beamslope calculation: QLP for beams?
+       * Collisions
+       - left/right note balls should be handled by Collision:
+       < \multi 2; { \stem 1; <b c> } { <f as b> } >
 
-       * Text_crescendo
+       * Keys:
+       - merge key{item} & localkey{item}?
+       - spacing, national styles?
 
-       * clean solution for staffsize in items.
+       * Support for TAB
+       - redo Notehead to allow digits as heads
+       - add a \tablature {} lexer mode for easy entering
 
-       * revise calcideal
+       * should adjust stemlength for flag number.
 
-       * volta
+       * breaking:
+       - caching breakpoints
+       - saving them
+       - specify number of lines
 
-IDEAS
-       * check out CORBA for Score_elems?
+       * markers
 
-       * derive PCol from Score_elem? More in Score_elems? Spacing?
+INPUTLANGUAGE
 
-       * scoping in Lexer: do general id- assignments in mudela.
+       * c4 4 4 4 for c4 c4 c4 c4?
 
-       ID '=' EXPR;
+       * neatly (and readably) expressing concurrent
+       voices
 
-       * create libmudela, or liblily_frontend
+       * <c f a>4 ?
 
-       * move MIDI stuff (including Quantization) to a ANSI C libmidi library.
+       * Viola mode?
 
-       * use an embedded language: Python
-       for: 
-               - Score_elems
-               - Registers
-               - Complex mudela?
+               @c c g e g 
+       for
+               c g es g, 
 
-       * y -dims in internote?
+               @A c g e g
+       for
+               cis gis e gis
 
-       * merge Atom and Symbol?
+       * relative mode for pitch entering
 
-       * merge common code of Item, Atom/Molecule
+       * bracket: volta 1,2
 
-       * Spacing_request for manually adjusting spacing
+       * configure pitch_byte
 
-       * Staff_group, Score_request_register.
+       * rest name configurable
 
-       * Meters/bars should be aligned, which is difficult if
-       we get different keychanges in different staffs.
+SMALLISH PROJECTS
 
-       * Horizontal_align item for meter,bar etc.
+       * limit memory usage; the full coriolan takes up too much resources.
 
-       * caching breakpoints
+       * fix confusing naming in Engraver vs Engraver_group_engraver (context)
 
-       * #c <-> cis
+       * progress when creating MIDI elts.
 
-       * breath marks 
+       * A range for context errors (eg. mark both { and }. )
 
-       * used fixedpoint arithmetic for min. energy.
+       * lyric in staff  (sharpsharp in staff, text below)
 
-       * default convert mudela-file.ly -> mudela-file.tex
-         - rename {standchen,scsii-menuetto,...}.tex
+       * half sharps/flats
 
-       * (related with above) --simple-mudela option for lily,
-         to lily input files with one-voice simple mudela 
-         (no red tape)
+       * write Dynamic_line (to group dynamics horizontally)
 
-       * stack scripts in chords:
-         % fingering:        footing:
-           < a-4 c-2 g-1 >   < c-\ltoe e-\lheel >
+       * use Real for all y positions.
+       - use translate_axis( .. ,Y_AXIS)  iso separate variables.
+
+       * half-sharps, half-flats
+
+       * adaptive accidental spacing.
+
+       * handle EOF graciously in error messages.
+
+       * centered whole rest
+
+       * declare notenametab?
+
+       * midi esp.: use I32 iso int where 32 bits are needed (or assumed...)
+
+       * Flower types:
+       - A decent scalar type
+
+       * binsearch/hash for identifiers
+
+       * stafftypes: voice names/ instrument names.
 
-       * parameterised scripts for fingering and footing:
+       * lily \tempo
 
-            % toe to bheel   four to five
+       * C meter iso 4/4, idem for alla breve, etc.
+
+       * textspanner: center position
+
+        *   % toe to bheel   four to five
            %   ^_u            4_5  
            %     -                           
            %  --|x--         --|x--
@@ -361,4 +590,48 @@ IDEAS
            %  --|---         --|---
           (where "to" is a tiny bow)
 
+       * auxilliary file for caching info.
+
+       * Text_crescendo
+
+       * clean solution for staffsize in items.
+
+       * revise calcideal
+
+       * volta
+
+IDEAS
+
+       * Output data structures of Mudela in XML/SGML.
+
+       * create libmudela, or liblily_frontend
+
+       * move MIDI stuff (including Quantization) to a ANSI C libmidi library.
+
+       * use an embedded language: Python, Scheme
+       for:
+               - Score_elems
+               - Translators
+
+       * y -dims in internote? Staff-space? X-dimensions?
+
+       * Spacing_request for manually adjusting spacing
+
+       * caching breakpoints
+
+       * used fixedpoint arithmetic for min. energy.
+
        * move towards incremental algorithms.
+
+       * far fetched language ideas
+       - design meta-language like TeX and Metafont
+       - programming/macros input
+
+       * versioning stuff (cvt mudela, mudela, etc.)
+
+       * Klavarskribo?
+
+       * lyrics in chords still fuck up.
+
+       * Use hooks/dependency graphs for properties
+