]> git.donarmstrong.com Git - lilypond.git/blob - TODO
release: 0.0.64
[lilypond.git] / TODO
1 Features you cannot find in the doco as working, should be mentioned her.
2
3 This is an assorted collection of stuff that will be done, might be
4 done, or is an idea that I want to think about
5
6 Most of the items are marked in the code as well, with full explanation. 
7 grep for TODO and ugh/ugr
8
9
10 IMPORTANT
11
12         * faq about mi2mu midi t1.
13
14         * update 20 pt table
15
16         * use Hungarian throughout code
17
18         * decent TeX page layout
19
20         * per-pstaff item-widths [JCN]
21
22         * script priority
23
24         * a Hands on tutorial [HKN]
25
26 PROJECTS
27
28         * Output class, handles : (smallish)
29         - help text /(c) notice?
30         - version line
31         - warning /errors/progress
32         - abort on error/warning; exit status
33         - quiet/ignore-version options
34         - logfile output
35
36         * elaborate Staff_side baseclass:
37         - scripts
38         - text
39         - slur start/end
40
41         * Output an output format independent (ofi) typeset file; and 
42           make ofi2 TeX, MusixTex, PostScript, Ascii... interpreters. (difficult)
43         - poor man's ascii output possible?
44         - MusixTeX output possible? (would have to be done before break calc.)
45         - NIFF ?
46         - PostScript output (esp. Beams, Slurs, etc)
47
48         * TeX spanners , use texbeam.cc as an example (smallish)
49         - Glissando
50         - trill
51         - bracket
52
53         * Rewrite Beam and Rhythmic_grouping (hairy)
54         - [c8. c32 c32]
55         - interbeam height
56         - doc on Rhythmic_grouping
57         - general shaving
58         - use plet grouping
59         - abbreviations [c2 c2]1/2
60         - separate visual from rhythmic info
61
62         * Redo MIDI output to use Registers: (Difficult)
63         - remember more horizontal info than melodics:
64         - tempo change
65         - repeat
66         - slurs
67         - dynamics etc.
68
69         * Redo font support 
70         - rename mf fonts to avoid conflicts with musixtex
71         - check (c) issues
72         - use own fonts/update musixtex fonts/find older (c)-less fonts
73         - hack up mf sources for decent spacing info (and then 
74         read AFM/TFM directly, for text too)
75
76 PARSER
77         * Duration -> Musical_duration, typedef Rational Duration?
78
79 **********************
80 HKN buglist:
81
82 \bar || ook dunne streepjes? Sluit de balk niet af! (soms met de
83 ruimte van een hele maat erachter (bij unmatching staffs)
84
85 noten staan vaak te dicht aan de rechterkant van de maatstreep.
86
87 optie om nummers/markers boven maatstrepen te zetten
88
89 tekst staat erg ver van notenbalken af
90
91 waarom geen ; achter dingen in \paper? (\textwidth 180\mm)
92 (sowieso: wanneer wel en geen ; ?)
93
94 Onduidelijk wanneer wel en geen \ voor een woord. Maak liever
95 verplichte regels
96
97 implementeren versieringen door duration *0 ofzo? (geeft nu assertion,
98 zie duration0.ly)
99
100 Triolen enzo: het zou handig zijn als je het cijfer "3" ook _tussen_
101 twee noten kon plaatsen. Dat is bijvoorbeeld nodig in
102 c4*2/3 c8*2/3
103
104 ---------------\
105 \bar "||" \meter 6/8; op het eind van de regel staat door elkaar
106 gedrukt.
107 ****************
108
109 BUGS
110
111         * mi2mu nonexist.midi
112
113         * staccato dot positions.
114
115         * stacked scripts.
116
117         * key transposition.
118
119         * help-lines for rests
120
121         * lilypond - -> crash
122
123         * chlapik balk ruimte 
124
125         * standchen triool beam up/down
126
127 SEVERELY LACKING:
128
129         * SPEED!
130
131         * grace notes
132
133 FURTHER FOR ORCHESTRAL SCORE:
134
135         * multibar rests
136
137         * barnumbers, markers
138
139         * abbreviations c4=16
140
141         * doublebar "||", finishbar "|||" (or "||." ?)
142
143 INPUTLANGUAGE
144
145         * relative mode for pitch entering
146
147         * \duration 8; e*2/3
148
149         * configure pitch_byte
150
151         * special key.
152
153         * figured bass?
154
155         * rest name configurable
156
157         * Raw request syntax
158
159         * subtime with Subtle_reqs
160
161 SMALLISH PROJECTS
162
163         * Help_line, Help_line_reg
164
165         * --fast/--draft: leave out constraints
166
167         * write Dynamic_line (to group dynamics horizontally)
168
169         * write Rest_collision
170
171         * use Real for y positions.
172
173         * shared lib on Solaris too.
174
175         * bugreport to doc++ devel: struct not in class hier; public
176         virtual baseclasses
177
178         * cleanup lily-proto.hh and proto.hh
179
180         * half-sharps, half-flats
181
182         * adaptive accidental spacing.
183
184         * score_elem invible_b_ flag
185         
186         * key undo
187
188         * unix style paths for LILYINCLUDE env
189
190         * indentable stream as baseclass for TeX stream, lily stream, Dstream.
191
192         * handle EOF graciously in error messages.
193
194         * caching Item/spanner dimensions.
195
196         * key transposition
197         
198         * centered whole rest
199
200         * caching breakpoints / saving them. 
201
202         * use dstream feature in mi2mu
203
204         * qtor, btor, mtor-> tor( QUIET_ver ), tor( DEBUG_ver ), etc.
205         * use tors feature in lily
206
207         * declare notenametab?
208
209         * do conventional keys (C G A, F B E, a e fis, d as des, etc ), 
210           besides lists of flats/sharps
211
212         * midi esp.: use I32 iso int where 32 bits are needed (or assumed...)
213
214         * parshape
215
216         * read from mmap directly: bugreport to flex developers->
217         yy_scan_buffer in C++..
218
219         * binsearch/hash for identifiers
220
221         * stafftypes: voice names/ instrument names.
222
223         * Decent TeX titledefs (\tempo, \metron, etc. )
224
225         * C meter iso 4/4
226
227         * textspanner: center position
228
229         * script-spacing
230
231         * Brackets
232
233         * caching of Register_group_register hierarchies.
234
235         * use (char *) iso. String for communication between lexer and
236         parser.
237
238         * configure idealspacing: arithmetic spacing
239
240         * LilyPond .deb. Other packaging methods?
241
242         * detect -pipe
243
244
245 DOC
246         * all errors
247         
248         * config of TeX macros
249
250         * a test suite
251
252         * hacking-HOWTO
253
254 FUTURE
255
256         * auxilliary file for caching info.
257
258         * Reg_configure_request
259
260         * bring Collision::do_pre_processing to haircutter
261
262         * slur parts as a script
263         
264         * mixed fontsizes
265
266         * put scripts on bars
267
268         * guitar chord
269
270         * Junk Staff_column, and find the requests while walking the Voices.?
271
272         * better beamslope calculation: QLP for beams?
273
274         * implement better breaking algorithm
275
276         * Text_crescendo
277
278         * clean solution for staffsize in items.
279
280         * merge key{item} & localkey{item}?
281
282         * revise calcideal
283
284         * volta
285
286         * piano staff
287
288         * vertical spanner
289
290 IDEAS
291
292         * scoping in Lexer: do general id- assignments in mudela.
293
294         ID '=' EXPR;
295
296         * create libmudela, or liblily_frontend
297
298         * move MIDI stuff (including Quantization) to a ANSI C libmidi library.
299
300         * use an embedded language: Python
301         for : 
302                 - Items/Spanners
303                 - Registers
304                 - Complex mudela?
305
306         * y -dims in internote?
307
308         * merge Atom and Symbol?
309
310         * merge common code of Item, Atom/Molecule
311         * Spacing_request for manually adjusting spacing
312
313         * Staff_group, Score_request_register.
314
315         * Meters/bars should be aligned, which is difficult if
316         we get different keychanges in different staffs.
317
318         * caching breakpoints
319
320         * #c <-> cis
321
322         * breath marks 
323
324         * used fixedpoint arithmetic for min. energy.
325
326         * default convert mudela-file.ly -> mudela-file.tex
327           - rename {standchen,scsii-menuetto,...}.tex
328
329         * (related with above) --simple-mudela option for lily,
330           to lily input files with one-voice simple mudela 
331           (no red tape)
332
333         * stack scripts in chords:
334           % fingering:        footing:
335             < a-4 c-2 g-1 >   < c-\ltoe e-\lheel >
336
337         * parameterised scripts for fingering and footing:
338
339             % toe to bheel   four to five
340             %   ^_u            4_5  
341             %     -                           
342             %  --|x--         --|x--
343             %  --|---         --|---
344             %  --|---         --|---
345           (where "to" is a tiny bow)
346
347         * move towards incremental algorithms.