Updated TODO.
[ahxm.git] / TODO
blobb572c4bb546113666c106009c3049a7061e4d956
1 Ann Hell Ex Machina TODO / Bug List
2 ===================================
4 Release Critical Bugs
5 ---------------------
7  * 1017: mp_doccer documentation is severely outdated.
8  * 1021: Add line number to compiler errors.
9  * 1022: Add file name to compiler errors.
10  * 1025: 'event1' has been moved to song.c (generic song event stream)
11    and 'event2' has been moved to ss_song.c (softsynth song event stream),
12    but due to almost all of ss_song.c being private, there is no way to
13    order the instruments and the effects to do anything until a way of
14    storing them is decided. So, project state is really critical now as
15    nothing works (last working version was 'cvs update -D 20050419').
16  * 1028: input.c should be ss_input.c.
17  * 1029: output.c should be ss_output.c.
18  * 1030: Refactorize the output system to always use a forked process.
19  * 1032: Refactorize input, ss_gen and ss_ins to always use pointers to
20    struct ss_wave instead of copies of them.
21  * 1035: The number of compiled tracks should be available somewhere.
22  * 1036: Unify song event types; ss_song should use the same event types.
24 Open Bugs
25 ---------
27  * 1034: tempo_from_wave() will never work; when the wave is loaded, it's
28    too late for the tempo to be set, as the ss_song stream has no tempo
29    information. The only solution is to just print the optimal tempo, for
30    the ahxm programmer to change it manually.
32 Pending Enhancements
33 --------------------
35  * 1002: Build an audio filtering tool to test effects.
36  * 1003: There should exist 'some kind' of effect for note volumes
37    to add a random variation, to add 'humanity'. This cannot
38    be a standard digital effect as it should be different
39    for each note.
40  * 1005: Vibrato should be variable (from 'no-vibrato' to 'some-vibrato'
41    in the same note).
42  * 1006: A 'choose' option, to take randomly one block or another
43    (blocks seem appropriate, but further study is necessary). A random
44    seed script command is also necessary.
45  * 1007: Support for 'tonalities'; fixed transpositions for each note of
46    the octave so that, for example, a 'f' is always a 'f#'.
47  * 1008: Support for 'keyboard splits': ranges of notes that a track will
48    ignore. This should allow to have multiple tracks playing the same
49    notes but with different channel maps and, for example, having a
50    guitar glissando pan from left to right.
51  * 1010: Loop stretching ('stretch wave without pitch change to last
52    exactly N time units').
53  * 1011: Loop matching ('change wave pitch to last exactly N time units').
54  * 1020: When a source file includes multiple songs, there should exist a
55    way to mark song / track changes. This should be used to include text
56    messages as ID3 tags or even to generate .cue / .toc files.
58 Closed
59 ------
61  * 1000: Convert current event queue to two event queues. The first
62    stage queue should store notes and the second note on / note off
63    events (Tue, 17 Aug 2004 12:00:00 +0200).
64  * 1004: Vibrato for generators (Fri, 13 Aug 2004 11:05:00 +0200).
65  * 1009: Set tempo from a sample loop ('set tempo so that this wave
66    will match exactly one/N measures') (Fri, 16 Aug 2004 18:08:00 +0200).
67  * 1013: Volume should be a command ('v', for example) and not be
68    inherited from previous notes. There should also be settable as
69    relative inc/decrements (as octaves) (Mon, 30 Aug 2004 14:37:59 +0200).
70  * 1014: doc/language.txt is severely outdated
71    (Mon, 30 Aug 2004 15:13:00 +0200)
72  * 1015: Upgrade build system (new config.sh, makefile.in, etc.).
73    (Thu, 09 Sep 2004 18:56:29 +0200).
74  * 1016: Integrate the new compiler (Sun, 12 Sep 2004 16:13:11 +0200).
75  * 1001: Generator should use queues of active / free generators.
76    (Sun, 17 Oct 2004 12:50:10 +0200).
77  * 1012: Portamento should not have a 'time', only a frequency
78    inc/decrement per time unit (Sun, 17 Oct 2004 13:18:04 +0200).
79  * 1018: The 'default' driver should not be bound to the first usable
80    one, but be a sequential try of all available drivers
81    (Thu, 11 Nov 2004 12:18:12 +0100).
82  * 1019: Add libartsc support (Thu, 11 Nov 2004 12:30:02 +0100).
83  * 1023: The SS_FRAMES lex/yacc token should be SS_MSECS, that is,
84    the compiler should not use frames but milliseconds
85    (Tue, 19 Apr 2005 20:05:46 +0200).
86  * 1024: The 'event1' and 'event2' stuff is ugly. It should be called,
87    respectively, 'note stream' (as it's, more or less, device independent)
88    and 'ss stream', which depends of softsynth, frames and such. In the
89    future, there could exist a 'midi stream' if MIDI output is supported
90    (Closed by #1025; Wed, 20 Apr 2005 17:30:31 +0200).
91  * 1033: SONG_EV_SS_NOTE won't work, because freq can't be calculated
92    on compilation time; instead, it should be a generic message
93    (Sat, 23 Apr 2005 10:52:35 +0200).
94  * 1026: Get rid of event.c and event.h (Sat, 23 Apr 2005 12:28:47 +0200).
95  * 1027: Get rid of effect.c and effect.h (Sat, 23 Apr 2005 12:28:51 +0200).
96  * 1031: Add lex/yacc code for processing absolute notes (A1, C#4, F&3)
97    (Sat, 23 Apr 2005 16:14:21 +0200).
99 Email bugs to angel@triptico.com