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