]> git.donarmstrong.com Git - lilypond.git/blob - TODO
release: 0.0.60
[lilypond.git] / TODO
1
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
4
5 Most of the items are marked in the code as well, with full explanation. 
6 grep for TODO and ugh/ugr
7
8
9 IMPORTANT
10
11         * update 20 pt table
12
13         * use Hungarian throughout code
14
15         * rename mf fonts to avoid conflicts with musixtex
16
17         * decent TeX page layout
18
19         * per-pstaff item-widths [JCN]
20
21         * script priority
22
23         * use own fonts/update musixtex fonts
24
25         * a Hands on tutorial [HKN]
26
27
28 PROJECT:
29
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
36
37
38         * elaborate Staff_side baseclass:
39          - scripts
40          - text
41          - slur start/end
42
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)
48
49 PARSER
50         * Duration-> Musical_duration, typedef Rational Duration?
51
52 HKN buglist:
53
54 \bar || ook dunne streepjes? Sluit de balk niet af! (soms met de
55 ruimte van een hele maat erachter (bij unmatching staffs)
56
57 Hele rusten ook in andere maatsoort dan 4/4 (en centreren in de maat)
58
59 ------------------------\
60 barcheck failed in lyric mode -> assert (zie barcheck.ly) (0.0.57)
61 ------------------------/
62
63 optie om te stoppen na eerste barcheck fail? (en wellicht in eerder
64 stadium van preprocessing)
65
66 noten staan vaak te dicht aan de rechterkant van de maatstreep.
67
68 optie om nummers/markers boven maatstrepen te zetten
69
70 tekst staat erg ver van notenbalken af
71
72 barcheck her-synchroniseren? (evt met optie)
73
74 script ^"3" onder ondanks boven?
75
76 symbolen voor triller? (dus "tr---")
77
78 waarom geen ; achter dingen in \paper? (\textwidth 180\mm)
79 (sowieso: wanneer wel en geen ; ?)
80
81 Onduidelijk wanneer wel en geen \ voor een woord. Maak liever
82 verplichte regels
83
84 implementeren versieringen door duration *0 ofzo? (geeft nu assertion,
85 zie duration0.ly)
86
87 midi: instrumenten definieren?
88 midi: tempo halverwege het stuk wijzigen?
89 midi: gebonden noten niet herhalen?
90
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?)
99
100 Lengte van de stokken klopt vaak niet, zie bijv. de eerste maat van
101 langestok.ly.
102
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
106
107 ---------------\
108 \bar "||" \meter 6/8; op het eind van de regel staat door elkaar
109 gedrukt.
110
111
112 BUGS
113
114         * detect -pipe
115         
116         * redo timing stuff <-> pulk to allow \meter 2/4; e2. to work
117         out correctly
118
119         * key transposition.
120
121         * hairpin width
122
123         * help-lines for rests
124
125         * [c8. c32 c32]
126
127         * \duration 8; e*2/3
128
129         * cis ( | ) cis
130
131         * lilypond - -> crash
132
133         * chlapik balk ruimte 
134
135         * standchen triool beam up/down
136
137
138 SEVERELY LACKING:
139
140         * SPEED!
141
142         * grace notes
143
144 FURTHER FOR ORCHESTRAL SCORE:
145
146         * multibar rests
147
148         * barnumbers, markers
149
150         * abbreviations c4=16
151
152         * doublebar "||", finishbar "|||" (or "||." ?)
153
154 INPUTLANGUAGE
155
156         * relative mode for pitch entering
157
158         * configure pitch_byte
159
160         * special key.
161
162         * figured bass?
163
164         * rest name configurable
165
166         * Raw request syntax
167
168         * subtime with Subtle_reqs
169
170 SMALLISH PROJECTS
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         * key undo
186
187         * unix style paths for LILYINCLUDE EN
188
189         * indentable stream as baseclass for TeX stream, lily stream, Dstream.
190
191         * caching Item/spanner dimensions.
192
193         * key transposition
194         
195         * caching breakpoints / saving them. 
196
197         * use dstream feature in mi2mu
198
199         * qtor, btor, mtor-> tor( QUIET_ver ), tor( DEBUG_ver ), etc.
200
201         - declare notenametab?
202
203         * use tors feature in lily
204
205         * do conventional keys (C G A, F B E, a e fis, d as des, etc ), 
206           besides lists of flats/sharps
207
208         * update for T70 fonts or newer
209
210         * midi esp.: use I32 iso int where 32 bits are needed (or assumed...)
211
212         * parshape
213
214         * read from mmap directly: bugreport to flex developers->
215         yy_scan_buffer in C++..
216
217         * binsearch/hash for identifiers
218
219         * stafftypes: voice names/ instrument names.
220
221         * Lookup::tex_glissando, Lookup::tex_bracket,  (use texbeam.cc as an
222         example.)
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         * midi output: eat-up dynamic, key/meter/tempo changes, and
242 write them neatly
243
244         * LilyPond .deb
245
246 DOC
247
248         * beam generation.
249
250         * all errors
251
252         * a test suite
253
254 FUTURE
255
256         * Reg_configure_request
257
258         * bring Collision::do_pre_processing to haircutter
259
260         * slur parts as a script
261         
262         * mixed fontsizes
263
264         * put scripts on bars
265
266         * glissando
267
268         * guitar chord
269
270         * Junk Staff_column, and find the requests while walking the Voices.?
271
272         * MIDI repeat: make lily understand repeats
273
274         * better beamslope calculation: QLP for beams?
275
276         * implement better breaking algorithm
277
278         * Text_crescendo
279
280         * clean solution for staffsize in items.
281
282         * merge key{item} & localkey{item}?
283
284         * revise calcideal
285
286         * volta
287
288         * piano staff
289
290         * vertical spanner
291
292 IDEAS
293
294         * scoping in Lexer: do general id- assignments in mudela.
295
296         ID '=' EXPR;
297
298         * integrate Register/Midi stuff
299
300         * create libmudela, or liblily_frontend
301
302         * move MIDI stuff (including Quantization) to a ANSI C libmidi library.
303
304         * use an embedded language: scheme, lisp, S-lang, Perl, GUILE, ?
305         for : 
306                 - Items/Spanners
307                 - Registers
308
309         * y -dims in internote?
310
311         * hack up mf sources for decent spacing info (and then 
312         read TFM directly, for text too)
313
314         * merge Atom and Symbol?
315
316         * merge common code of Item, Atom/Molecule
317         * Spacing_request for manually adjusting spacing
318
319         * Staff_group, Score_request_register.
320
321         * SHIT: meters/bars should be aligned, which is difficult if
322         we get different keychanges in different staffs.
323
324         * caching breakpoints
325
326         * #c <-> cis
327
328         * breath marks 
329
330         * used fixedpoint arithmetic for min. energy.
331
332         * default convert mudela-file.ly -> mudela-file.tex
333           - rename {standchen,scsii-menuetto,...}.tex
334
335         * (related with above) --simple-mudela option for lily,
336           to lily input files with one-voice simple mudela 
337           (no red tape)
338
339         * stack scripts in chords:
340           % fingering:        footing:
341             < a-4 c-2 g-1 >   < c-\ltoe e-\lheel >
342
343         * parameterised scripts for fingering and footing:
344
345             % toe to bheel   four to five
346             %   ^_u            4_5  
347             %     -                           
348             %  --|x--         --|x--
349             %  --|---         --|---
350             %  --|---         --|---
351           (where "to" is a tiny bow)
352