X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=TODO;h=b981bc66403f61b083ee11defbcdbe09e5799efc;hb=5cfb4ad642561dcb61593b1aeb24717c5eb110da;hp=20b8e9aea56b1e47ac62f12b93f1b7f0916f2866;hpb=450905eed19bced95484ebb2639aba2eeb250b06;p=lilypond.git diff --git a/TODO b/TODO index 20b8e9aea5..b981bc6640 100644 --- a/TODO +++ b/TODO @@ -1,236 +1,441 @@ -before 0.1 +Features you cannot find in the doco as working, should be mentioned here. - * update 20 pt table +This is an assorted collection of stuff that will be done, might be +done, or is an idea that I want to think about - * decent TeX page layout +Most of the items are marked in the code as well, with full explanation. +grep for TODO and ugh/ugr - * per-pstaff item-widths +0.2: - * script priority + * check for groff / troff/ nroff et -This is an assorted collection of stuff that will be done, might be -done, or is an idea that I want to think about + * use kpsepath to find all TeX dirs + - configure.in + - clean-fonts.sh + + * nicen examples: + - remove all \multi + - break-up heavily-nested score blocks -PARSER - * Duration-> Musical_duration, typedef Rational Duration? + * --metafont -BUGS + * disable spaces in TeX stuff - * hairpin width + * height of dyns. + + * handle ^C for tmp/file creation. - * problems with empty staff. + * WWW mirror/archive for the mailing lists. - * help-lines + * dots & rest collisions. - * help-lines for rests + * add a screenshot to the website. :) - * [c8. c32 c32] + * documentation + - introduction? + - info? + - LaTeX? + - more manpages? - * cis ( | ) cis + * naming Mozarella, Madeira, Muella? - * lilypond - -> crash + * versioning for Feta - * \stem -1 < chord > rest + * bf: abbrevs over whole note -SEVERELY LACKING: + * the warning about the negative slur/tie length appears twice + which is irritating. - * SPEED! + * The `3' in the meter key is a one or two pixels too thin (at 600dpi) + in the middle: - * grace notes + * better hshift (dots, distance, head dependent) -FURTHER FOR ORCHESTRAL SCORE: + * tie/slur dir & curvature - * multibar rests + * stem len adjustable - * barnumbers, markers + * mindist for spanners - * abbreviations c4=16 + -INPUTLANGUAGE +STUFF - * relative mode for pitch entering - * configure pitch_byte + * give Items/Spanners access to unbroken originals - * special key. + * scoping for properties - * figured bass? + { c4 + \multi 2 < { \stemup .. } { \stemdown .. } > + c2 + } - * transposition + this modifies \stem for the c2 - * rest name configurable + * use properties for: + - Text_style + - default_octave + - plet? + - default_duration? + - default abbreviation + - Staff_sym size + - default tempo. + - font size + - bartypes (get rid of derived Span_bar_engravers) + - cadenza mode? + - MIDI instrument + - staff title - * Raw request syntax + * page handling: + - papersizes + - PS output + - optimal pagebreaking. - * subtime with Subtle_reqs + * put errorlevel in Input class -SMALLISH PROJECTS + * AFM for font input? - * bugreport to doc++ devel: struct not in class hier; public - virtual baseclasses +3RD PARTY BUGS: - * half-sharps, half-flats - - * key undo + * gdb on RedHat 5 - * unix style paths for LILYINCLUDE EN + * xdvi: PS in magnifying glass. - * rpm package buildroot + * Fix profiling. gprof bugreport? - * indentable stream as baseclass for TeX stream, lily stream, Dstream. +PROJECTS - * caching Item/spanner dimensions. + * Unicode support? + - 16 bit Strings + - -u switch + - detect of 16/8 bit files + - examples to go with it. - * key transposition - - * caching breakpoints / saving them. + * Spring_spacer: + - write a faster Spring_spacer (without matrices if possible) + - use straight LP to find minimal "fitting force" + - relate energybound to linelen unitspace fontsize etc. + - used fixed point fp - * use dstream feature in mi2mu + * \header + - output header info to MIDI too. - * qtor, btor, mtor-> tor( QUIET_ver ), tor( DEBUG_ver ), etc. - - declare notenametab? + * Makefile stuff: + - shared lib on Solaris too. + - check libtool - * use tors feature in lily + * Add mudela-output to Rosegarden. - * do conventional keys (C G A, F B E, a e fis, d as des, etc ), - besides lists of flats/sharps + * a musical dictionary. See Documentation/vocabulary-*, other +languages: + - italian + - german + - dutch + - swedish + .. ? - * midi esp.: use I32 iso int where 32 bits are needed (or assumed...) + * chords + - guitar chords + - chord names + - basso continuo + - Syntax/parser + - MIDI output? + - typesetting - * fix Staff_elem::width() derivs to use offset_ + * integrate midi-elts from mi2mu and lily? - * parshape + * 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 - * read from mmap directly: bugreport to flex developers-> - yy_scan_buffer in C++.. + * input converters + - NIFF? + - ABC? + - SMDL? - * binsearch/hash for identifiers + * add to MIDI output: + - tempo change + - repeat + - slurs + - dynamics etc. - * stafftypes: voice names/ instrument names. + * grace notes + - make separate class for Grace_*_engravers + (which is at Voice_gravs level) + - make encapsulated spacing problems. - * Lookup::tex_glissando, Lookup::tex_bracket, (use texbeam.cc as an - example.) + * On-demand loading of simple-engravers? - * Decent TeX titledefs (\tempo, \metron, etc. ) + * accidentals per Voice_group - * command priority into enum + * Convert all ref/bib stuff into BibTeX. - * don't broadcast Staff_sym + * 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 - * C meter iso 4/4 + * piano staff - * textspanner: center position - * script-spacing + * elaborate Staff_side baseclass: + - scripts + - text + - slur start/end + + * cautionary accidental + + * Output an output format independent (ofi) typeset file; and + make ofi2 TeX, MusiXTex, Display PostScript, PostScript, + Ascii... interpreters. (difficult) + + - poor man's ascii output possible? + - MusiXTeX output possible? (would have to be done before break calc.) + - NIFF ? + - Common Music Notation + - PostScript output (esp. Beams, Slurs, etc) + - Move all Score_elems, into libmutype.a + + * Documentation + - Doc Mutopia (Music To The People) + - Doc (C) stuff of sheet music + - a better format? SGML? TeX? Info? + - a tutorial + + * TeX spanners , use texbeam.cc as an example (smallish) + - Glissando + - trill + - bracket + + * 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 + + * Redo fonts + - adapt for multiple font sizes. + + * 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) + + * Collisions + - left/right note balls should be handled by Collision: + < \multi 2; { \stem 1; } { } > + + * 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 bes 'b bis'; + - spacing, national styles? + + * Support for TAB + - redo Notehead to allow digits as heads + - add a \tablature {} lexer mode for easy entering + + * should adjust stemlength for flag number. + + * breaking: + - caching breakpoints + - saving them + - allowing users to set them. + - penalties + - specify number of lines + + * Rhythmic staff. + + * Baroque superstaff - * Brackets +SEVERELY LACKING: + + * SPEED! - * caching of Register_group_register hierarchies. + * multibar rests - * use (char *) iso. String for communication between lexer and - parser. + * markers - * configure idealspacing: arithmetic - * collision Request_register. +INPUTLANGUAGE - * add (good guess of) width to lyric items + * c4 4 4 4 for c4 c4 c4 c4? - * midi output: eat-up dynamic, key/meter/tempo changes, and -write them neatly + * neatly (and readably) expressing concurrent + voices - * LilyPond .deb + * 4 ? -DOC + * Viola mode? - * beam generation. + @c c g e g + for + c g es g, - * all errors + @A c g e g + for + cis gis e gis - * a test suite + * relative mode for pitch entering -FUTURE + * bracket (bracketplets) - * Reg_configure_request + * configure pitch_byte - * slurs per voicegroup. + * rest name configurable - * slur parts as a script - - * multiple scripst. + * Raw request syntax - * mixed fontsizes +SMALLISH PROJECTS - * put scripts on bars + * progress when creating MIDI elts. - * glissando + * A range for context errors (eg. mark both { and }. ) - * guitar chord + * lyric in staff (sharpsharp in staff, text below) - * Junk Staff_column, and find the requests while walking the Voices.? + * write Dynamic_line (to group dynamics horizontally) - * MIDI repeat: make lily understand repeats + * use Real for all y positions. + - use translate_axis( .. ,Y_AXIS) + * half-sharps, half-flats - * better beamslope calculation: QLP for beams? + * adaptive accidental spacing. - * implement better breaking algorithm + * handle EOF graciously in error messages. + + * caching Item/spanner dimensions. + + * centered whole rest + + * qtor, btor, mtor-> tor( QUIET_ver ), tor( DEBUG_ver ), etc. + - use tors feature in lily (?) + + * declare notenametab? + + * midi esp.: use I32 iso int where 32 bits are needed (or assumed...) + + * Flower types: + - A decent scalar type + - String hash + - Pointer hash + + * binsearch/hash for identifiers + + * stafftypes: voice names/ instrument names. + + * TeX stuff: + - Decent TeX titledefs (\tempo, \metron, etc. ) + - decent TeX page layout + + * lily \tempo + + * C meter iso 4/4, idem for alla breve, etc. + + * textspanner: center position + + * Brackets + + * Scripts: + - 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: + + % toe to bheel four to five + % ^_u 4_5 + % - + % --|x-- --|x-- + % --|--- --|--- + % --|--- --|--- + (where "to" is a tiny bow) + + * auxilliary file for caching info. * Text_crescendo * clean solution for staffsize in items. - * merge key{item} & localkey{item}? - * revise calcideal * volta - * piano staff - - * vertical spanner IDEAS - * integrate Register/Midi stuff + * Output abstract data structures associated with +Mudela. * create libmudela, or liblily_frontend - * Horizontal_align_item, Vertical_align_item. + * move MIDI stuff (including Quantization) to a ANSI C libmidi library. - * move MIDI io to a ANSI C libmidi library. + * use an embedded language: Python, Scheme + for: + - Score_elems + - Engraver + - Translators + - Complex mudela? - * use an embedded language: scheme, lisp, S-lang, Perl, GUILE, ? - - Items/Spanners - - Registers + * y -dims in internote? Staff-space? X-dimensions? - * y -dims in internote? + * Spacing_request for manually adjusting spacing - * hack up mf sources for decent spacing info (and then maybe - read TFM directly) + * caching breakpoints - * merge Atom and Symbol? + * #c <-> cis - * merge common code of Item, Atom/Molecule + * breath marks - * Spacing_request for manually adjusting spacing + * used fixedpoint arithmetic for min. energy. - * Staff_group, Score_request_register. + * move towards incremental algorithms. - * SHIT: meters/bars should be aligned, which is difficult if - we get different keychanges in different staffs. + * far fetched language ideas + - design meta-language like TeX and Metafont + - programming/macros input - * Integrating (objectiveC) MusicKit with LilyPond - - * MusixTeX output possible? + * Global type registration. - * PostScript output (esp. Beams, Slurs, etc) + My_class * p = create_object( My_class ) + Type t = get_type ( *p ); + if ( t <= get_type( q )) + .. - * caching breakpoints + * naming of Voice_group/Voice - * use exceptions iso assert? + * versioning stuff (cvt mudela, mudela, etc.) - * #c <-> cis + * a real convert-mudela - * breath marks + * dots into separate item. - * used fixedpoint arithmetic for min. energy. + * use String iso Text_def for lyrics. + + * Klavarskribo? + + * lyrics in chords still fuck up. + + * rewire acknowledge_element() logic with a process_acknowledged() + + * pushgroup/popgroup + + * multi threading? + - 1 thread per element/ 1 thread per line + - 1 thread per Translator + + * Use hooks/dependency graphs for properties