X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=TODO;h=06720105d2e4c8f05e34bd76e7b9e699544dccde;hb=2059367f59496fb11796bd2cf239f6b58625231e;hp=78cecc175ec03229882fe049cd19edfba904f3a3;hpb=50802c7203c8e4a3eea1d7bf23064d60cd0d3ec7;p=lilypond.git diff --git a/TODO b/TODO index 78cecc175e..06720105d2 100644 --- a/TODO +++ b/TODO @@ -1,64 +1,204 @@ 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/ug - * versioning stuff (cvt mudela, mudela, etc.) +0.2: - * get rid of gif files. + * ly2dvi seams to eat accents as in \'el\'egant - * set_midi_channel/staff() out of performer. + * libtoolize flowerlib - * dots into separate item. + * shared lib - * use String iso Text_def for lyrics. + * bf: abbrevbeam? - * use position 0 for center of staff iso bottom. + * add full coriolan to website. - * return status on exit + * robustify Beam (in case of no stems, 32nd notes) - * lyrics in chords still fuck up. + * fix [c8 c16 c16] (mustn't slope) - * rewire acknowledge_element() logic with a process_acknowledged() + * fix silly " "2*12 a4 (=4*12) sticky plet - * progress when creating MIDI elts. + * check for groff / troff/ nroff et - * pushgroup/popgroup + * latex quirk? - * whole head on ledger line + * use kpsepath to find all TeX dirs + - configure.in + - clean-fonts.sh - * piano staff + * mudela-convert. + + * nicen examples: + - remove all \multi + - break-up heavily-nested score blocks + + * disable spaces in TeX stuff + + * handle ^C for tmp/file creation. + + * WWW mirror/archive for the mailing lists. + + * dots & rest collisions. + + * add a screenshot to the website. :) + + * documentation + - introduction? + - info? + - LaTeX? + - more manpages? + + * naming Mozarella, Madeira, Muella? + + * versioning for Feta + + * 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) + + * stem len adjustable + +STUFF + * clefs: The names I'd like are of the form + + [FGC]n{[_^]8} F, G or C clef, on nth line, subscripted + or superscripted with an 8. + So: + G, G2, treble, (== current `violin') G clef on second line. + F, F4, bass (== current `bass' ) F clef on fourth line + G_8, G2_8 G clef on 2nd line, with 8 subscript + G^8 G clef on 2nd line with 8 superscript + C1, soprano (==current `soprano') C clef on first line. + C2, (==current `mezzosoprano') C clef on second line + C3, alto (==current `alto') C clef on third line + C4, tenor (==current `tenor') C clef on fourth line + C5 (==current `baritone') C clef on fifth line) + + + + * 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 - * implement better breaking algorithm + * page handling: + - PS output + - optimal pagebreaking. - * update 20 pt table + * put errorlevel in Input class - * decent TeX page layout + * AFM for font input? - * a tutorial + +3RD PARTY BUGS: + + * tried egcs 1.0.2: failed on lily/stem.cc -> flower/include/interval.hh + should narrow down and send bug report + + * xdvi: PS in magnifying glass. + + * Fix profiling. gprof bugreport? 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: + - shared lib on Solaris too. + + * Add mudela-output to Rosegarden. + + * a musical dictionary. See Documentation/vocabulary-*, other +languages: + - explanation + - 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 + - ornaments (and trills?) - repeat - slurs - - dynamics etc. + - accents + - dynamics + - account for rhythmic position in measure + - etc. * grace notes - - adapt for multiple font sizes. - make separate class for Grace_*_engravers (which is at Voice_gravs level) - - move stem, beam, slur into baseclass to adapt for (fixed - size) grace notes. + - make encapsulated spacing problems. * accidentals per Voice_group - * Convert all ref/bib stuff into BibTeX. - * Output class, handles : (smallish) - help text /(c) notice? - version line @@ -67,56 +207,51 @@ PROJECTS - 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, PostScript, Ascii... interpreters. (difficult) - - poor man's ascii output possible? - - MusixTeX output possible? (would have to be done before break calc.) + make ofi2 TeX, MusiXTex, Display PostScript, PostScript, + Ascii... interpreters. (difficult) + - NIFF ? - Common Music Notation - PostScript output (esp. Beams, Slurs, etc) - - Move PScore, Items, Spanners etc. into libmutype.a - - * separate Score_elem settings in user-settable (properties - .. ) and non-user-settable part. Maybe use something like X-resources: - "Staff=oboe*dir: 0", "Staff=*.Voice_group=solo*dir: 1" + - 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] - - interbeam height - - doc on Rhythmic_grouping + - 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 - - * Redo font support - - rename mf fonts to avoid conflicts with musixtex - - 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) - - use MF to generate rules. - - rewrite : make a metafont iso font + * Redo fonts + - adapt for multiple font sizes. * lines: - Ledger lines, should be separate item: Ledger_lines, Ledger_lines - set different line sizes / thicknesses - - stem down too far right - beam stem showthrough, inter beam sizes (french vs german style) * Collisions - - bring Collision::do_pre_processing to haircutter - left/right note balls should be handled by Collision: < \multi 2; { \stem 1; } { } > @@ -126,33 +261,27 @@ PROJECTS besides lists of flats/sharps, possibly via declaration - key transposition. - key undo: \key bes; .. . \key; should print natural - - special key: \key 'b bes bis'; + - special key: \key bes 'b bis'; - spacing, national styles? -PARSER - * Duration -> Musical_duration, typedef Rational Duration? - -BUGS - - * fix mysterious Flex malloc bug + * Support for TAB + - redo Notehead to allow digits as heads + - add a \tablature {} lexer mode for easy entering * should adjust stemlength for flag number. - * lilypond - -> crash + * breaking: + - caching breakpoints + - saving them + - penalties + - specify number of lines - * standchen triool beam up/down - - * (where are the) gcc compile warnings on linux - -SEVERELY LACKING: - - * SPEED! + * Rhythmic staff. * multibar rests - * barnumbers, markers + * markers - * abbreviations c4=16 INPUTLANGUAGE @@ -163,8 +292,6 @@ INPUTLANGUAGE * 4 ? - * should have \require{package.ly} to read req'd packages. - * Viola mode? @c c g e g @@ -179,85 +306,54 @@ INPUTLANGUAGE * bracket (bracketplets) - * \duration 8; e*2/3 - * configure pitch_byte - * figured bass? - * rest name configurable * Raw request syntax -PROJECTS - - * Do RTTI i.s.o. static_name(), name() and request-junk. - SMALLISH PROJECTS + * progress when creating MIDI elts. + * A range for context errors (eg. mark both { and }. ) * lyric in staff (sharpsharp in staff, text below) - * fix Egler definitions ( see tex/eglerdefs.tex ) - - * replace Score_elem member access by get()/set() methods, to enable - future embedded code. - - * --fast/--draft: leave out constraints - * write Dynamic_line (to group dynamics horizontally) - * write Rest_collision - - * use Real for y positions. - - * shared lib on Solaris too. - - * bugreport to doc++ devel: struct not in class hier; public - virtual baseclasses - - * get rid of init_end; - - * cleanup lily-proto.hh and proto.hh + * use Real for all y positions. + - use translate_axis( .. ,Y_AXIS) * half-sharps, half-flats * adaptive accidental spacing. - * unix style paths for LILYINCLUDE env - - * indentable stream as baseclass for TeX stream, lily stream, Dstream. - * handle EOF graciously in error messages. - +oo * caching Item/spanner dimensions. * centered whole rest - * caching breakpoints / saving them. - - * use dstream feature in mi2mu - * qtor, btor, mtor-> tor( QUIET_ver ), tor( DEBUG_ver ), etc. - use tors feature in lily (?) - * declare symtab - * declare notenametab? * midi esp.: use I32 iso int where 32 bits are needed (or assumed...) - * parshape - - * read from mmap directly: bugreport to flex developers-> - yy_scan_buffer in C++.. + * Flower types: + - A decent scalar type + - String hash + - Pointer hash * binsearch/hash for identifiers * stafftypes: voice names/ instrument names. - * Decent TeX titledefs (\tempo, \metron, etc. ) + * TeX stuff: + - Decent TeX titledefs (\tempo, \metron, etc. ) + - decent TeX page layout * lily \tempo @@ -265,46 +361,26 @@ SMALLISH PROJECTS * textspanner: center position - * script-spacing - * Brackets - * use (char *) iso. String for communication between lexer and - parser. - - * configure idealspacing: arithmetic spacing - - * LilyPond .deb. Other packaging methods? - - * detect -pipe - -DOC - * Score_elem structure. - - * all errors - - * config of TeX macros - - * a test suite - - * hacking-HOWTO + * 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: -FUTURE + % toe to bheel four to five + % ^_u 4_5 + % - + % --|x-- --|x-- + % --|--- --|--- + % --|--- --|--- + (where "to" is a tiny bow) * auxilliary file for caching info. - * Reg_configure_request - - * slur parts as a script - - * mixed fontsizes - - * put scripts on bars - - * guitar chord - - * better beamslope calculation: QLP for beams? - * Text_crescendo * clean solution for staffsize in items. @@ -314,19 +390,14 @@ FUTURE * volta IDEAS - * check out CORBA for Score_elems? - * derive PCol from Score_elem? More in Score_elems? Spacing? - - * scoping in Lexer: do general id- assignments in mudela. - - ID '=' EXPR; + * 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 + * use an embedded language: Python, Scheme for: - Score_elems - Engraver @@ -335,10 +406,6 @@ IDEAS * y -dims in internote? Staff-space? X-dimensions? - * merge Atom and Symbol? - - * merge common code of Item, Atom/Molecule - * Spacing_request for manually adjusting spacing * caching breakpoints @@ -349,23 +416,31 @@ IDEAS * used fixedpoint arithmetic for min. energy. - * default convert mudela-file.ly -> mudela-file.tex - - rename {standchen,scsii-menuetto,...}.tex + * move towards incremental algorithms. - * stack scripts in chords: - % fingering: footing: - < a-4 c-2 g-1 > < c-\ltoe e-\lheel > + * far fetched language ideas + - design meta-language like TeX and Metafont + - programming/macros input - * parameterised scripts for fingering and footing: + * Global type registration. - % toe to bheel four to five - % ^_u 4_5 - % - - % --|x-- --|x-- - % --|--- --|--- - % --|--- --|--- - (where "to" is a tiny bow) + My_class * p = create_object( My_class ) + Type t = get_type ( *p ); + if ( t <= get_type( q )) + .. - * move towards incremental algorithms. + * versioning stuff (cvt mudela, mudela, etc.) + + * a real convert-mudela + + * dots into separate item. + + * use String iso Text_def for lyrics. + + * Klavarskribo? + + * lyrics in chords still fuck up. + + * pushgroup/popgroup - * design meta-language like TeX and Metafont + * Use hooks/dependency graphs for properties