lilypond-0.0.61
[lilypond.git] / TODO
blobb65304f456edfd01d2ffb3ed5ef40defec1ab3fb
2 This is an assorted collection of stuff that will be done, might be
3 done, or is an idea that I want to think about
5 Most of the items are marked in the code as well, with full explanation. 
6 grep for TODO and ugh/ugr
9 IMPORTANT
11         * update 20 pt table
13         * use Hungarian throughout code
15         * rename mf fonts to avoid conflicts with musixtex
17         * decent TeX page layout
19         * per-pstaff item-widths [JCN]
21         * script priority
23         * use own fonts/update musixtex fonts
25         * a Hands on tutorial [HKN]
28 PROJECT:
30         * Output class, handles 
31         - help text /(c) notice?
32         - warning /errors/progress
33         - abort on error/warning; exit status
34         - quiet/ignore-version options
35         - logfile output
38         * elaborate Staff_side baseclass:
39          - scripts
40          - text
41          - slur start/end
43         * Output an output format independent (ofi) typeset file; and 
44           make ofi2 TeX, MusixTex, PostScript, Ascii... interpreters.
45         - poor man's ascii output possible?
46         - MusixTeX output possible?
47         - PostScript output (esp. Beams, Slurs, etc)
49 PARSER
50         * Duration-> Musical_duration, typedef Rational Duration?
52 HKN buglist:
54 \bar || ook dunne streepjes? Sluit de balk niet af! (soms met de
55 ruimte van een hele maat erachter (bij unmatching staffs)
57 Hele rusten ook in andere maatsoort dan 4/4 (en centreren in de maat)
59 ------------------------\
60 barcheck failed in lyric mode -> assert (zie barcheck.ly) (0.0.57)
61 ------------------------/
63 optie om te stoppen na eerste barcheck fail? (en wellicht in eerder
64 stadium van preprocessing)
66 noten staan vaak te dicht aan de rechterkant van de maatstreep.
68 optie om nummers/markers boven maatstrepen te zetten
70 tekst staat erg ver van notenbalken af
72 barcheck her-synchroniseren? (evt met optie)
74 script ^"3" onder ondanks boven?
76 symbolen voor triller? (dus "tr---")
78 waarom geen ; achter dingen in \paper? (\textwidth 180\mm)
79 (sowieso: wanneer wel en geen ; ?)
81 Onduidelijk wanneer wel en geen \ voor een woord. Maak liever
82 verplichte regels
84 implementeren versieringen door duration *0 ofzo? (geeft nu assertion,
85 zie duration0.ly)
87 midi: instrumenten definieren?
88 midi: tempo halverwege het stuk wijzigen?
89 midi: gebonden noten niet herhalen?
91 --------/\
92 De beam van de triool klopt niet.
93         <[d8. b8.> \duration 32; <e'32*2/3 cis'32*2/3> <d'32*2/3 b32*2/3>
94         <cis'32*2/3 a32*2/3> \duration 16; <b gis> <d' fis> <cis' e>
95 <b d]> |
96 (zie ook ergens in lacidarem-pianoI.ly)
97 --------/
98 scales.ly compileert niet meer (vanwege transpose?)
100 Lengte van de stokken klopt vaak niet, zie bijv. de eerste maat van
101 langestok.ly.
103 Triolen enzo: het zou handig zijn als je het cijfer "3" ook _tussen_
104 twee noten kon plaatsen. Dat is bijvoorbeeld nodig in
105 c4*2/3 c8*2/3
107 ---------------\
108 \bar "||" \meter 6/8; op het eind van de regel staat door elkaar
109 gedrukt.
112 BUGS
114         * detect -pipe
115         
116         * redo timing stuff <-> pulk to allow \meter 2/4; e2. to work
117         out correctly
119         * key transposition.
121         * hairpin width
123         * help-lines for rests
125         * [c8. c32 c32]
127         * \duration 8; e*2/3
129         * cis ( | ) cis
131         * lilypond - -> crash
133         * chlapik balk ruimte 
135         * standchen triool beam up/down
138 SEVERELY LACKING:
140         * SPEED!
142         * grace notes
144 FURTHER FOR ORCHESTRAL SCORE:
146         * multibar rests
148         * barnumbers, markers
150         * abbreviations c4=16
152         * doublebar "||", finishbar "|||" (or "||." ?)
154 INPUTLANGUAGE
156         * relative mode for pitch entering
158         * configure pitch_byte
160         * special key.
162         * figured bass?
164         * rest name configurable
166         * Raw request syntax
168         * subtime with Subtle_reqs
170 SMALLISH PROJECTS
172         * write Rest_collision
174         * use Real for y positions.
176         * shared lib on Solaris too.
178         * bugreport to doc++ devel: struct not in class hier; public
179         virtual baseclasses
181         * cleanup lily-proto.hh and proto.hh
183         * half-sharps, half-flats
184         
185         * key undo
187         * unix style paths for LILYINCLUDE EN
189         * indentable stream as baseclass for TeX stream, lily stream, Dstream.
191         * caching Item/spanner dimensions.
193         * key transposition
194         
195         * caching breakpoints / saving them. 
197         * use dstream feature in mi2mu
199         * qtor, btor, mtor-> tor( QUIET_ver ), tor( DEBUG_ver ), etc.
201         - declare notenametab?
203         * use tors feature in lily
205         * do conventional keys (C G A, F B E, a e fis, d as des, etc ), 
206           besides lists of flats/sharps
208         * update for T70 fonts or newer
210         * midi esp.: use I32 iso int where 32 bits are needed (or assumed...)
212         * parshape
214         * read from mmap directly: bugreport to flex developers->
215         yy_scan_buffer in C++..
217         * binsearch/hash for identifiers
219         * stafftypes: voice names/ instrument names.
221         * Lookup::tex_glissando, Lookup::tex_bracket,  (use texbeam.cc as an
222         example.)
224         * Decent TeX titledefs (\tempo, \metron, etc. )
226         * C meter iso 4/4
228         * textspanner: center position
230         * script-spacing
232         * Brackets
234         * caching of Register_group_register hierarchies.
236         * use (char *) iso. String for communication between lexer and
237         parser.
239         * configure idealspacing: arithmetic spacing
241         * midi output: eat-up dynamic, key/meter/tempo changes, and
242 write them neatly
244         * LilyPond .deb
248         * beam generation.
250         * all errors
252         * a test suite
254 FUTURE
256         * Reg_configure_request
258         * bring Collision::do_pre_processing to haircutter
260         * slur parts as a script
261         
262         * mixed fontsizes
264         * put scripts on bars
266         * glissando
268         * guitar chord
270         * Junk Staff_column, and find the requests while walking the Voices.?
272         * MIDI repeat: make lily understand repeats
274         * better beamslope calculation: QLP for beams?
276         * implement better breaking algorithm
278         * Text_crescendo
280         * clean solution for staffsize in items.
282         * merge key{item} & localkey{item}?
284         * revise calcideal
286         * volta
288         * piano staff
290         * vertical spanner
292 IDEAS
294         * scoping in Lexer: do general id- assignments in mudela.
296         ID '=' EXPR;
298         * integrate Register/Midi stuff
300         * create libmudela, or liblily_frontend
302         * move MIDI stuff (including Quantization) to a ANSI C libmidi library.
304         * use an embedded language: scheme, lisp, S-lang, Perl, GUILE, ?
305         for : 
306                 - Items/Spanners
307                 - Registers
309         * y -dims in internote?
311         * hack up mf sources for decent spacing info (and then 
312         read TFM directly, for text too)
314         * merge Atom and Symbol?
316         * merge common code of Item, Atom/Molecule
317         * Spacing_request for manually adjusting spacing
319         * Staff_group, Score_request_register.
321         * SHIT: meters/bars should be aligned, which is difficult if
322         we get different keychanges in different staffs.
324         * caching breakpoints
326         * #c <-> cis
328         * breath marks 
330         * used fixedpoint arithmetic for min. energy.
332         * default convert mudela-file.ly -> mudela-file.tex
333           - rename {standchen,scsii-menuetto,...}.tex
335         * (related with above) --simple-mudela option for lily,
336           to lily input files with one-voice simple mudela 
337           (no red tape)
339         * stack scripts in chords:
340           % fingering:        footing:
341             < a-4 c-2 g-1 >   < c-\ltoe e-\lheel >
343         * parameterised scripts for fingering and footing:
345             % toe to bheel   four to five
346             %   ^_u            4_5  
347             %     -                           
348             %  --|x--         --|x--
349             %  --|---         --|---
350             %  --|---         --|---
351           (where "to" is a tiny bow)