1 ===========================================================================
3 ===========================================================================
5 1. Clean out existing binaries: make maintainer-clean
6 2. Test the distribution for yourself: ./configure, make, galan
7 (testing it on Win32 might not be a bad idea, either)
8 (you should also test the tutorial example and any other saved
9 files you can lay your hands on)
10 3. Until satisfied, make changes and return to 1. :-)
11 4. Update the version number:
12 a. change line 3 of configure.in
13 b. change the #define VERSION in config.h.w32
14 c. change the version entry in galan.spec
15 d. change the SSI directives in the webpages
16 5. Get automake to test the distribution: make distcheck
17 6. If this fails, fix it and go back to 1 or 5.
18 7. Inspect the distribution closely
19 - are any new files missing?
20 - is everything clearly copyrighted and GPLed?
21 8. Check the lot into CVS and update tags
22 9. Upload the tarball.
23 10. Update the webpage.
25 11. ...optionally :-), prepare RPMs and Win32 binaries.
27 ===========================================================================
28 Important things to do (not in any particular order)
29 ===========================================================================
31 Infrastructure-related:
32 ----------------------------------------
34 * test the latency preference on Win32 - for that matter, reinstall Windows
35 so that builds proceed correctly ;-(
37 * add BPM control to clock? (Is BPM even a sensible idea? I suppose
40 * make controls appear in a spot not already occupied...
41 * use the algorithm from smart-placement.jl in sawmill
43 * implement a "sample library" directory and make paths relative to that
45 * implement tabs in the control-panel and allow controls to be sent to
47 ( do we still need this with control grouping ??? i will not erase this entry
48 because it is still a good idea to have different control panels )
51 * make loading more robust across incompatible changes
52 * make sure can save/load...
53 * samples independently
54 * patterns independently
55 * save/load performances...
57 * variable output sample-rate/bit-depth/number-of-channels etc. to cope
59 ( this has to be done for jack support, too ).
62 * make sure you can drive the program entirely from the keyboard!
63 * shortcuts for 'important' things?
64 * menu-popup-keys for the less-common things?
66 * make sure off-line processing works nicely
67 * rename some of the plugins more sensibly
69 * implement alsa_output once ALSA works on my soundcard
71 * implement those glue-diamonds so you can 'bend links round corners'
72 - not as urgent given subroutines?
74 * muting of individual components? individual links?
77 * selection in controls
79 * set connector to a value from connector menu on sheet
81 * add dialog box to numeric patterns
82 ( set pattern to curve, one value, slide )
84 * property for numeric pattern from control
86 * change osc radiobutton to be smaller
88 * make iscomp connect to n connectors
89 ( this could be complicated when loading/saving )
91 * fix up down buttons in patloop.c
93 * the sheet (widget) should support layers so that documentation components can be turned on and off
94 And names of connectors can be on the sheet too. It is still not very convenient with the statusbar :(
96 * a component needs to describe its capabilities so that i can find a common denominator for the context
97 menu of selected components. I could hard code deletion. But this is not really what i want.
98 the properties of a component should also be copyable. So that i can set the properties for 10 controls
99 at once. This would be really useful !!! For now it is a pain.
102 ----------------------------------------
103 * glossary of synthesis terms
104 * document multiple sheets
105 * missing doc for plugins:
113 ----------------------------------------
115 * led-display control.
118 ----------------------------------------
120 * implement some cool generators/components
123 * 5-voice (n-voice?) trigger sequencer?
124 * 5-voice (n-voice?) sample player? ('drum kit')
125 * 'loop' generator (RTRA? ...needs more thought)
126 * compressor/expander/gate/limiter
128 * EQ-3, EQ-5... EQ like in xmms
129 * FM synth with, say, 5 modulators + vibrato
130 * Bell, Gaussian envelopes
135 * RAW/WAV-file output device
137 * (note/level) pattern memory/sequencer
138 * (trigger) pattern memory/sequencer
139 * (VCF) filter component a la 303
141 * sample player (monophonic)
142 * add pitch control to sample player
146 * VCA-style envelope-controlled gain component
147 * multitap delay a la Freebirth
149 * /dev/dsp sample source
152 * sample player (polyphonic)
154 * network-messages --> distributed gAlan?
156 ===========================================================================
157 Less important things to do
158 ===========================================================================
160 * libtoolize the whole thing. I tried this once and couldn't get it to work
161 right. What's more, I couldn't find any help on the web at all. GIMP does
162 things very differently. What other software uses plugins like I am?
164 * use more of glib and less adhockery.
166 * implement 'entry' controls?
167 * allow individual controls to have their own entries in their popup menus
168 * change the text-entry part of controls to a spinbutton
169 * test on a slower machine (this is probably quite important, really)
170 - works relatively nicely on a P75 running Win95... relatively
172 * add some graphical indication (other than icons) to the user of what
173 generator-class a component is a wrapper for an instance of - it can
174 get bloody confusing (how should this be done ???)
176 * pretty icons etc. (general prettification of UI)
178 * make gtkknob and gtkslider share code properly. There's a hell of a lot in
179 common between the two.