]> git.donarmstrong.com Git - lilypond.git/blob - TODO
release: 0.0.63
[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         * \meter 4/4; c1.  doesn't gen bar.
116
117         * stacked scripts.
118
119         * redo timing stuff <-> pulk to allow \meter 2/4; e2. to work
120         out correctly
121
122         * key transposition.
123
124         * help-lines for rests
125
126         * lilypond - -> crash
127
128         * chlapik balk ruimte 
129
130         * standchen triool beam up/down
131
132 SEVERELY LACKING:
133
134         * SPEED!
135
136         * grace notes
137
138 FURTHER FOR ORCHESTRAL SCORE:
139
140         * multibar rests
141
142         * barnumbers, markers
143
144         * abbreviations c4=16
145
146         * doublebar "||", finishbar "|||" (or "||." ?)
147
148 INPUTLANGUAGE
149
150         * relative mode for pitch entering
151
152         * \duration 8; e*2/3
153
154         * configure pitch_byte
155
156         * special key.
157
158         * figured bass?
159
160         * rest name configurable
161
162         * Raw request syntax
163
164         * subtime with Subtle_reqs
165
166 SMALLISH PROJECTS
167
168         * --fast/--draft: leave out constraints
169
170         * write Dynamic_line (to group dynamics horizontally)
171
172         * write Rest_collision
173
174         * use Real for y positions.
175
176         * shared lib on Solaris too.
177
178         * bugreport to doc++ devel: struct not in class hier; public
179         virtual baseclasses
180
181         * cleanup lily-proto.hh and proto.hh
182
183         * half-sharps, half-flats
184         
185         * resync barcheck.
186
187         * key undo
188
189         * unix style paths for LILYINCLUDE env
190
191         * indentable stream as baseclass for TeX stream, lily stream, Dstream.
192
193         * handle EOF graciously in error messages.
194
195         * caching Item/spanner dimensions.
196
197         * key transposition
198         
199         * centered whole rest
200
201         * caching breakpoints / saving them. 
202
203         * use dstream feature in mi2mu
204
205         * qtor, btor, mtor-> tor( QUIET_ver ), tor( DEBUG_ver ), etc.
206         * use tors feature in lily
207
208         * declare notenametab?
209
210         * do conventional keys (C G A, F B E, a e fis, d as des, etc ), 
211           besides lists of flats/sharps
212
213         * midi esp.: use I32 iso int where 32 bits are needed (or assumed...)
214
215         * parshape
216
217         * read from mmap directly: bugreport to flex developers->
218         yy_scan_buffer in C++..
219
220         * binsearch/hash for identifiers
221
222         * stafftypes: voice names/ instrument names.
223
224         * Decent TeX titledefs (\tempo, \metron, etc. )
225
226         * C meter iso 4/4
227
228         * textspanner: center position
229
230         * script-spacing
231
232         * Brackets
233
234         * caching of Register_group_register hierarchies.
235
236         * use (char *) iso. String for communication between lexer and
237         parser.
238
239         * configure idealspacing: arithmetic spacing
240
241         * LilyPond .deb. Other packaging methods?
242
243         * detect -pipe
244
245
246 DOC
247         * all errors
248         
249         * config of TeX macros
250
251         * a test suite
252
253         * hacking-HOWTO
254
255 FUTURE
256
257         * auxilliary file for caching info.
258
259         * Reg_configure_request
260
261         * bring Collision::do_pre_processing to haircutter
262
263         * slur parts as a script
264         
265         * mixed fontsizes
266
267         * put scripts on bars
268
269         * guitar chord
270
271         * Junk Staff_column, and find the requests while walking the Voices.?
272
273         * better beamslope calculation: QLP for beams?
274
275         * implement better breaking algorithm
276
277         * Text_crescendo
278
279         * clean solution for staffsize in items.
280
281         * merge key{item} & localkey{item}?
282
283         * revise calcideal
284
285         * volta
286
287         * piano staff
288
289         * vertical spanner
290
291 IDEAS
292
293         * scoping in Lexer: do general id- assignments in mudela.
294
295         ID '=' EXPR;
296
297         * create libmudela, or liblily_frontend
298
299         * move MIDI stuff (including Quantization) to a ANSI C libmidi library.
300
301         * use an embedded language: Python
302         for : 
303                 - Items/Spanners
304                 - Registers
305                 - Complex mudela?
306
307         * y -dims in internote?
308
309         * merge Atom and Symbol?
310
311         * merge common code of Item, Atom/Molecule
312         * Spacing_request for manually adjusting spacing
313
314         * Staff_group, Score_request_register.
315
316         * Meters/bars should be aligned, which is difficult if
317         we get different keychanges in different staffs.
318
319         * caching breakpoints
320
321         * #c <-> cis
322
323         * breath marks 
324
325         * used fixedpoint arithmetic for min. energy.
326
327         * default convert mudela-file.ly -> mudela-file.tex
328           - rename {standchen,scsii-menuetto,...}.tex
329
330         * (related with above) --simple-mudela option for lily,
331           to lily input files with one-voice simple mudela 
332           (no red tape)
333
334         * stack scripts in chords:
335           % fingering:        footing:
336             < a-4 c-2 g-1 >   < c-\ltoe e-\lheel >
337
338         * parameterised scripts for fingering and footing:
339
340             % toe to bheel   four to five
341             %   ^_u            4_5  
342             %     -                           
343             %  --|x--         --|x--
344             %  --|---         --|---
345             %  --|---         --|---
346           (where "to" is a tiny bow)
347
348         * move towards incremental algorithms.