X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=TODO;h=1950f517bddb3a2723b834a0b485af1051ce68cc;hb=c3e003dacb5689ffe384d3a2f2d5dc2afb9439bb;hp=70e3590b8a5ffe78aaac8e6a40e6d88c647f890a;hpb=fe3f57f573545248c6245ebeff71884c23c35a84;p=lilypond.git diff --git a/TODO b/TODO index 70e3590b8a..1950f517bd 100644 --- a/TODO +++ b/TODO @@ -1,117 +1,461 @@ -BUGS - * first clef +Features you cannot find in the doco as working, should be mentioned here. - * position of key acc's +This is an assorted collection of stuff that will be done, might be +done, or is an idea that I want to think about -SEVERELY LACKING: +Most of the items are marked in the code as well, with full explanation. +grep for TODO and ugh/ugr + +0.2: + + * check for groff / troff/ nroff et + + * use kpsepath to find all TeX dirs + - configure.in + - clean-fonts.sh + + * forced breakpoints + + * nicen examples: + - remove all \multi + - break-up heavily-nested score blocks + + * --metafont + + * disable spaces in TeX stuff + + * height of dyns. + + * handle ^C for tmp/file creation. + + * WWW mirror/archive for the mailing lists. + + * dots & rest collisions. + + * add a screenshot to the website. :) + + * fix stdin input + + * documentation + - introduction? + - info? + - LaTeX? + - more manpages? + + * naming Mozarella, Madeira, Muella? + + * versioning for Feta + + * bf: abbrevs over whole note + + * spanner that is not spanned gives assert (). + + * the warning about the negative slur/tie length appears twice + which is irritating. + + * The `3' in the meter key is a one or two pixels too thin (at 600dpi) + in the middle: + + * better hshift (dots, distance, head dependent) + + * tie/slur dir & curvature + + * stem len adjustable + + * mindist for spanners + + + +STUFF + + + * give Items/Spanners access to unbroken originals + + * scoping for properties + + { c4 + \multi 2 < { \stemup .. } { \stemdown .. } > + c2 + } + + this modifies \stem for the c2 + + * 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 + + * page handling: + - papersizes + - PS output + - optimal pagebreaking. + + * put errorlevel in Input class + + * AFM for font input? + +3RD PARTY BUGS: + + * gdb on RedHat 5 + + * xdvi: PS in magnifying glass. + + * Rational infty(HUGE_VAL) on glibc / w32 + + * Fix profiling. gprof bugreport? + + * GS: /undefined in draw_beam after XDVI magnification. + + * Rational global static var. + +PROJECTS + + * Unicode support? + - 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) + - use straight LP to find minimal "fitting force" + - relate energybound to linelen unitspace fontsize etc. + - used fixed point fp + + * \header + - output header info to MIDI too. + + + * Makefile stuff: + - Use Automake + - shared lib on Solaris too. + - check libtool + - generate stuff in out/default, out/sun5-irix etc iso out/ + and out-sun5/ + + * Add mudela-output to Rosegarden. + + * a musical dictionary. See Documentation/vocabulary-*, other +languages: + - italian + - german + - dutch + - swedish + .. ? + + * chords + - guitar chords + - chord names + - basso continuo + - Syntax/parser + - MIDI output? + - typesetting + + * integrate midi-elts from mi2mu and lily? + + * 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 + - repeat + - slurs + - dynamics etc. * grace notes + - make separate class for Grace_*_engravers + (which is at Voice_gravs level) + - make encapsulated spacing problems. + + * On-demand loading of simple-engravers? + + * accidentals per Voice_group + + * Convert all ref/bib stuff into BibTeX. + + * 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 + + * 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 + - set linelength per line + + * Rhythmic staff. + + * Baroque superstaff + +SEVERELY LACKING: + + * SPEED! + + * multibar rests + + * markers + INPUTLANGUAGE - * figured bass? + * c4 4 4 4 for c4 c4 c4 c4? + + * neatly (and readably) expressing concurrent + voices + + * 4 ? + + * Viola mode? + + @c c g e g + for + c g es g, + + @A c g e g + for + cis gis e gis + + * relative mode for pitch entering - * transposition + * bracket (bracketplets) - * voicegroups. + * configure pitch_byte * rest name configurable -SMALLISH PROJECTS + * Raw request syntax - * Lookup::tex_glissando, Lookup::tex_bracket, - Lookup::tex_cresc, Lookup::tex_decresc (use texbeam.cc as an - example.) +SMALLISH PROJECTS - * Decent TeX titledefs (\tempo, \metron, etc. ) + * progress when creating MIDI elts. - * command priority into enum - - * C meter iso 4/4 + * A range for context errors (eg. mark both { and }. ) - * textspanner: dir of beam. + * lyric in staff (sharpsharp in staff, text below) - * script-spacing + * write Dynamic_line (to group dynamics horizontally) - * Brackets + * use Real for all y positions. + - use translate_axis( .. ,Y_AXIS) - * space rest. + * half-sharps, half-flats - * use (char *) iso. String for communication between lexer and parser. + * adaptive accidental spacing. - * As vs. as notename. + * handle EOF graciously in error messages. - * configure idealspacing: arithmetic spacing + * caching Item/spanner dimensions. - * fix symbols in parser.o: `Warning: size of symbol' + * centered whole rest - * Viola clef (->jan?!) + * qtor, btor, mtor-> tor( QUIET_ver ), tor( DEBUG_ver ), etc. + - use tors feature in lily (?) -DOC + * declare notenametab? - * beam generation. + * midi esp.: use I32 iso int where 32 bits are needed (or assumed...) - * all errors + * Flower types: + - A decent scalar type + - String hash + - Pointer hash -FUTURE + * binsearch/hash for identifiers - * Text_pstaff/Lyric_staff + * stafftypes: voice names/ instrument names. - * put requests on barcommands + * TeX stuff: + - Decent TeX titledefs (\tempo, \metron, etc. ) + - decent TeX page layout - * glissando + * lily \tempo - * guitar chord + * C meter iso 4/4, idem for alla breve, etc. - * better beamslope calculation + * textspanner: center position - * implement better breaking algorithm + * 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: - * check out linux -> go32 crosscompiler: dos port + % toe to bheel four to five + % ^_u 4_5 + % - + % --|x-- --|x-- + % --|--- --|--- + % --|--- --|--- + (where "to" is a tiny bow) - * Implement all requests + * auxilliary file for caching info. - * QLP for beams? + * Text_crescendo - * stacked slurs. + * clean solution for staffsize in items. * revise calcideal - * eentje/tweetje + * volta IDEAS - * itemcolumns + * Output abstract data structures associated with +Mudela. - * check out PMX + * create libmudela, or liblily_frontend - * dependencies: -> implement children more elegantly. Handle - spanner with broken deps. + * move MIDI stuff (including Quantization) to a ANSI C libmidi library. - * use an embedded language: scheme, lisp, S-lang, Perl, ? + * use an embedded language: Python, Scheme + for: + - Score_elems + - Engraver + - Translators + - Complex mudela? - * Broadcasts in Walker of Request and Item. + * 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 Command/Input_command. - - * merge common code of Item, Atom/Molecule + * breath marks - * Spacing_request for manually adjusting spacing + * used fixedpoint arithmetic for min. energy. - * Staff_group. + * 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. + + My_class * p = create_object( My_class ) + Type t = get_type ( *p ); + if ( t <= get_type( q )) + .. + + * naming of Voice_group/Voice + + * benchmark band_matrices. + + * versioning stuff (cvt mudela, mudela, etc.) + + * a real convert-mudela + + * dots into separate item. + + * use String iso Text_def for lyrics. + + * use position 0 for center of staff iso bottom. + + * 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 - * PostScript output (esp. Beams, Slurs, etc) + * Use hooks/dependency graphs for properties