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 IMPORTANT * update 20 pt table * use Hungarian throughout code * rename mf fonts to avoid conflicts with musixtex * decent TeX page layout * per-pstaff item-widths [JCN] * script priority * use own fonts/update musixtex fonts * a Hands on tutorial [HKN] PROJECTS * Output class, handles - help text /(c) notice? - warning /errors/progress - abort on error/warning; exit status - quiet/ignore-version options - logfile output * elaborate Staff_side baseclass: - scripts - text - slur start/end * Output an output format independent (ofi) typeset file; and make ofi2 TeX, MusixTex, PostScript, Ascii... interpreters. - poor man's ascii output possible? - MusixTeX output possible? (would have to be done before break calc.) - NIFF ? - PostScript output (esp. Beams, Slurs, etc) * TeX spanners , use texbeam.cc as an example - Glissando - trill - bracket * Rewrite Beam and Rhythmic_grouping - [c8. c32 c32] - interbeam height - general shaving - use plet grouping - abbreviations [c2 c2]1/2 - separate visual from rhythmic info PARSER * Duration -> Musical_duration, typedef Rational Duration? ********************** HKN buglist: \bar || ook dunne streepjes? Sluit de balk niet af! (soms met de ruimte van een hele maat erachter (bij unmatching staffs) Hele rusten ook in andere maatsoort dan 4/4 (en centreren in de maat) ------------------------\ barcheck failed in lyric mode -> assert (zie barcheck.ly) (0.0.57) ------------------------/ noten staan vaak te dicht aan de rechterkant van de maatstreep. optie om nummers/markers boven maatstrepen te zetten tekst staat erg ver van notenbalken af waarom geen ; achter dingen in \paper? (\textwidth 180\mm) (sowieso: wanneer wel en geen ; ?) Onduidelijk wanneer wel en geen \ voor een woord. Maak liever verplichte regels implementeren versieringen door duration *0 ofzo? (geeft nu assertion, zie duration0.ly) midi: instrumenten definieren? midi: tempo halverwege het stuk wijzigen? midi: gebonden noten niet herhalen? Triolen enzo: het zou handig zijn als je het cijfer "3" ook _tussen_ twee noten kon plaatsen. Dat is bijvoorbeeld nodig in c4*2/3 c8*2/3 ---------------\ \bar "||" \meter 6/8; op het eind van de regel staat door elkaar gedrukt. **************** BUGS * detect -pipe * staccato dot positions. * stacked scripts. * redo timing stuff <-> pulk to allow \meter 2/4; e2. to work out correctly * key transposition. * help-lines for rests * lilypond - -> crash * chlapik balk ruimte * standchen triool beam up/down SEVERELY LACKING: * SPEED! * grace notes FURTHER FOR ORCHESTRAL SCORE: * multibar rests * barnumbers, markers * abbreviations c4=16 * doublebar "||", finishbar "|||" (or "||." ?) INPUTLANGUAGE * relative mode for pitch entering * \duration 8; e*2/3 * configure pitch_byte * special key. * figured bass? * rest name configurable * Raw request syntax * subtime with Subtle_reqs SMALLISH PROJECTS * 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 * cleanup lily-proto.hh and proto.hh * half-sharps, half-flats * key undo * unix style paths for LILYINCLUDE EN * indentable stream as baseclass for TeX stream, lily stream, Dstream. * caching Item/spanner dimensions. * key transposition * caching breakpoints / saving them. * use dstream feature in mi2mu * qtor, btor, mtor-> tor( QUIET_ver ), tor( DEBUG_ver ), etc. - declare notenametab? * use tors feature in lily * do conventional keys (C G A, F B E, a e fis, d as des, etc ), besides lists of flats/sharps * update for T70 fonts or newer * 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++.. * binsearch/hash for identifiers * stafftypes: voice names/ instrument names. * Decent TeX titledefs (\tempo, \metron, etc. ) * C meter iso 4/4 * textspanner: center position * script-spacing * Brackets * caching of Register_group_register hierarchies. * use (char *) iso. String for communication between lexer and parser. * configure idealspacing: arithmetic spacing * midi output: eat-up dynamic, key/meter/tempo changes, and write them neatly * LilyPond .deb DOC * beam generation. * all errors * a test suite FUTURE * Reg_configure_request * bring Collision::do_pre_processing to haircutter * slur parts as a script * mixed fontsizes * put scripts on bars * guitar chord * Junk Staff_column, and find the requests while walking the Voices.? * MIDI repeat: make lily understand repeats * better beamslope calculation: QLP for beams? * implement better breaking algorithm * Text_crescendo * clean solution for staffsize in items. * merge key{item} & localkey{item}? * revise calcideal * volta * piano staff * vertical spanner IDEAS * scoping in Lexer: do general id- assignments in mudela. ID '=' EXPR; * integrate Register/Midi stuff * create libmudela, or liblily_frontend * move MIDI stuff (including Quantization) to a ANSI C libmidi library. * use an embedded language: Python, Scheme? for : - Items/Spanners - Registers - Complex mudela * y -dims in internote? * hack up mf sources for decent spacing info (and then read TFM directly, for text too) * merge Atom and Symbol? * merge common code of Item, Atom/Molecule * Spacing_request for manually adjusting spacing * Staff_group, Score_request_register. * SHIT: meters/bars should be aligned, which is difficult if we get different keychanges in different staffs. * caching breakpoints * #c <-> cis * breath marks * used fixedpoint arithmetic for min. energy. * default convert mudela-file.ly -> mudela-file.tex - rename {standchen,scsii-menuetto,...}.tex * (related with above) --simple-mudela option for lily, to lily input files with one-voice simple mudela (no red tape) * stack scripts in chords: % fingering: footing: < a-4 c-2 g-1 > < c-\ltoe e-\lheel > * parameterised scripts for fingering and footing: % toe to bheel four to five % ^_u 4_5 % - % --|x-- --|x-- % --|--- --|--- % --|--- --|--- (where "to" is a tiny bow) * move towards incremental algorithms.