]> git.donarmstrong.com Git - lilypond.git/blob - TODO
release: 0.1.57
[lilypond.git] / TODO
1 Features you cannot find in the doco as working, should be mentioned here.
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 0.2:
10         * junk embedded mf
11
12         * shared lib
13
14         * ly2dvi seams to eat accents as in \'el\'egant
15
16         * libtoolize flowerlib
17
18         * bf: abbrevbeam? 
19
20         * add full coriolan to website.
21
22         * robustify Beam (in case of no stems, 32nd notes)
23
24         * check for groff / troff/ nroff et
25
26         * latex quirk?
27         * use kpsepath to find all TeX dirs
28         - configure.in 
29         - clean-fonts.sh
30
31         * mudela-convert.
32
33         * nicen examples:
34         - remove all \multi
35         - break-up heavily-nested score blocks
36
37         * --metafont
38
39         * disable spaces in TeX stuff
40         
41         * handle ^C for tmp/file creation.
42
43         * WWW mirror/archive for the mailing lists.
44
45         * dots & rest collisions.
46
47         * add a screenshot to the website. :)
48
49         * documentation
50         - introduction?
51         - info?
52         - LaTeX?
53         - more manpages?
54
55         * naming Mozarella, Madeira, Muella?
56
57         * versioning for Feta
58
59         * the warning about the negative slur/tie length appears twice
60         which is irritating.
61
62         * The `3' in the meter key is a one or two pixels too thin (at 600dpi)
63         in the middle:
64
65         * better hshift (dots, distance, head dependent)
66
67         * stem len adjustable
68
69 STUFF
70
71
72         * give Items/Spanners access to unbroken originals      
73
74         * scoping for properties
75
76         {       c4
77                 \multi 2  < { \stemup .. } { \stemdown .. } >
78                 c2 
79         }
80
81         this modifies \stem for the c2
82
83         * use properties for:
84         - Text_style
85         - default_octave
86         - plet?
87         - default_duration?
88         - default abbreviation
89         - Staff_sym size
90         - default tempo.
91         - font size
92         - bartypes (get rid of derived Span_bar_engravers)
93         - cadenza mode? 
94         - MIDI instrument
95         - staff title
96
97         * page handling:
98         - PS output
99         - optimal pagebreaking.
100
101         * put errorlevel in Input class
102
103         * AFM for font input?
104
105 3RD PARTY BUGS:
106
107         * xdvi: PS in magnifying glass.
108
109         * Fix profiling. gprof bugreport?
110
111 PROJECTS
112
113         * Unicode support?
114         - 16 bit Strings
115         - -u switch
116         - detect of 16/8 bit files
117         - examples to go with it.
118
119         * Spring_spacer:
120         - write a faster Spring_spacer (without matrices if possible)
121         - use straight LP to find minimal "fitting force"
122         - relate energybound to linelen unitspace fontsize etc.
123         - used fixed point fp
124
125         * \header
126         - output header info to MIDI too.
127
128
129         * Makefile stuff:
130         - shared lib on Solaris too.
131
132         * Add mudela-output to Rosegarden.
133
134         * a musical dictionary. See Documentation/vocabulary-*, other
135 languages:
136         - italian
137         - german
138         - dutch
139         - swedish
140          .. ?
141
142         * chords
143         - guitar chords
144         - chord names
145         - basso continuo
146         - Syntax/parser
147         - MIDI output?
148         - typesetting
149
150         * integrate midi-elts from mi2mu and lily?
151
152         * Debug logs:
153         - derive lily_stream, Dstream, texstream from ostream?
154         - indentable stream as baseclass for TeX stream, lily stream, Dstream.
155         - use dstream feature in mi2mu
156         - integrate IO checking into stream class
157
158         * input converters
159         - NIFF?
160         - ABC? 
161         - SMDL?
162
163         * add to MIDI output:
164         - tempo change
165         - repeat
166         - slurs
167         - dynamics etc.
168
169         * grace notes
170         - make separate class for Grace_*_engravers 
171         (which is at Voice_gravs level)
172         - make encapsulated spacing problems.
173
174         * accidentals per Voice_group
175
176         * Convert all ref/bib stuff into BibTeX.
177
178         * Output class, handles : (smallish)
179         - help text /(c) notice?
180         - version line
181         - warning /errors/progress
182         - abort on error/warning; exit status
183         - quiet/ignore-version options
184         - logfile output
185
186         * piano staff
187
188         * elaborate Staff_side baseclass:
189         - scripts
190         - text
191         - slur start/end
192
193         * cautionary accidental
194
195         * Output an output format independent (ofi) typeset file; and 
196           make ofi2 TeX, MusiXTex, Display PostScript, PostScript,
197           Ascii... interpreters. (difficult)
198
199         - NIFF ?
200         - Common Music Notation
201         - PostScript output (esp. Beams, Slurs, etc)
202         - Move all Score_elems, into libmutype.a
203  
204         * Documentation
205         - Doc Mutopia (Music To The People) 
206         - Doc (C) stuff of sheet music
207         - a better format?  SGML?  TeX?  Info?
208         - a tutorial
209
210         * TeX spanners , use texbeam.cc as an example (smallish)
211         - Glissando
212         - trill
213
214         * Rewrite Stem, Beam and Rhythmic_grouping (hairy)
215         - [c8. c32 c32]
216         - doc on Rhythmic_grouping
217         - general shaving on Beam and Stem
218         - use plet grouping
219         - separate visual from rhythmic info even more
220         - beams over bars
221
222         * Redo fonts
223         - adapt for multiple font sizes.
224
225         * lines:
226         - Ledger lines, should be separate item: Ledger_lines, Ledger_lines
227         - set different line sizes / thicknesses
228         - beam stem showthrough, inter beam sizes (french vs german style)
229
230         * Collisions
231         - left/right note balls should be handled by Collision:
232         < \multi 2; { \stem 1; <b c> } { <f as b> } >
233
234         * Keys:
235         - merge key{item} & localkey{item}?
236         - do conventional keys (C G A, F B E, a e fis, d as des, etc ), 
237           besides lists of flats/sharps, possibly via declaration
238         - key transposition. 
239         - key undo: \key bes; .. . \key; should print natural   
240         - special key: \key bes 'b bis';
241         - spacing, national styles?
242
243         * Support for TAB
244         - redo Notehead to allow digits as heads
245         - add a \tablature {} lexer mode for easy entering
246
247         * should adjust stemlength for flag number.
248
249         * breaking:
250         - caching breakpoints
251         - saving them
252         - penalties
253         - specify number of lines
254
255         * Rhythmic staff.
256
257         * multibar rests
258
259         * markers
260
261
262 INPUTLANGUAGE
263
264         * c4 4 4 4 for c4 c4 c4 c4?
265
266         * neatly (and readably) expressing concurrent
267         voices
268
269         * <c f a>4 ?
270
271         * Viola mode?
272
273                 @c c g e g 
274         for
275                 c g es g, 
276
277                 @A c g e g
278         for
279                 cis gis e gis
280
281         * relative mode for pitch entering
282
283         * bracket (bracketplets)
284
285         * configure pitch_byte
286
287         * rest name configurable
288
289         * Raw request syntax
290
291 SMALLISH PROJECTS
292
293         * progress when creating MIDI elts.
294
295         * A range for context errors (eg. mark both { and }. )
296
297         * lyric in staff  (sharpsharp in staff, text below)
298
299         * write Dynamic_line (to group dynamics horizontally)
300
301         * use Real for all y positions.
302         - use translate_axis( .. ,Y_AXIS) 
303
304         * half-sharps, half-flats
305
306         * adaptive accidental spacing.
307
308         * handle EOF graciously in error messages.
309
310         * caching Item/spanner dimensions.
311
312         * centered whole rest
313
314         * qtor, btor, mtor-> tor( QUIET_ver ), tor( DEBUG_ver ), etc.
315         - use tors feature in lily (?)
316
317         * declare notenametab?
318
319         * midi esp.: use I32 iso int where 32 bits are needed (or assumed...)
320
321         * Flower types:
322         - A decent scalar type
323         - String hash
324         - Pointer hash
325
326         * binsearch/hash for identifiers
327
328         * stafftypes: voice names/ instrument names.
329
330         * TeX stuff:    
331         - Decent TeX titledefs (\tempo, \metron, etc. )
332         - decent TeX page layout
333
334         * lily \tempo
335
336         * C meter iso 4/4, idem for alla breve, etc.
337
338         * textspanner: center position
339
340         * Brackets
341         
342         * Scripts:
343         - stack scripts in chords:
344           % fingering:        footing:
345             < a-4 c-2 g-1 >   < c-\ltoe e-\lheel >
346         - script-spacing
347         - slur parts as a script
348         - stack parameterised scripts for fingering and footing:
349
350             % toe to bheel   four to five
351             %   ^_u            4_5  
352             %     -                           
353             %  --|x--         --|x--
354             %  --|---         --|---
355             %  --|---         --|---
356           (where "to" is a tiny bow)
357
358         * auxilliary file for caching info.
359
360         * Text_crescendo
361
362         * clean solution for staffsize in items.
363
364         * revise calcideal
365
366         * volta
367
368 IDEAS
369
370         * Output data structures of Mudela in XML/SGML.
371
372         * create libmudela, or liblily_frontend
373
374         * move MIDI stuff (including Quantization) to a ANSI C libmidi library.
375
376         * use an embedded language: Python, Scheme
377         for: 
378                 - Score_elems
379                 - Engraver
380                 - Translators
381                 - Complex mudela?
382
383         * y -dims in internote? Staff-space? X-dimensions?
384
385         * Spacing_request for manually adjusting spacing
386
387         * caching breakpoints
388
389         * #c <-> cis
390
391         * breath marks 
392
393         * used fixedpoint arithmetic for min. energy.
394
395         * move towards incremental algorithms.
396
397         * far fetched language ideas
398         - design meta-language like TeX and Metafont
399         - programming/macros input
400
401         * Global type registration.
402
403                 My_class * p = create_object( My_class )
404                 Type t = get_type ( *p );
405                 if ( t <= get_type( q ))
406                         ..
407
408         * versioning stuff (cvt mudela, mudela, etc.)
409
410         * a real convert-mudela
411
412         * dots into separate item.
413
414         * use String iso Text_def for lyrics.
415
416         * Klavarskribo?
417
418         * lyrics in chords still fuck up.
419
420         * pushgroup/popgroup
421
422         * Use hooks/dependency graphs for properties