1 Ann Hell Ex Machina TODO / Bug List
2 ===================================
7 * 1017: mp_doccer documentation is severely outdated.
8 * 1022: Add file name to compiler errors.
9 * 1030: Refactorize the output system to always use a forked process.
10 * 1040: Get rid of all _ prefixed symbols.
11 * 1045: Line numbers in compiler errors are incorrectly reported when
12 inserting a block at the end of the line; when the block is inserted,
13 the linefeed has already been read and yyline incremented. This probably
14 occurs also with other directives.
15 * 1051: Unify all header files into annhell.h.
16 * 1052: Add quantizations.
17 * 1055: Add signal control to cleanly close the devices.
18 * 1056: Note printing in midiin.c should correctly print chords.
23 * 1034: tempo_from_wave() will never work; when the wave is loaded, it's
24 too late for the tempo to be set, as the ss_song stream has no tempo
25 information. The only solution is to just print the optimal tempo, for
26 the ahxm programmer to change it manually.
27 * 1046: When a compilation error occurs inside a named block, the reported
28 line number is the one where the insertion occurs, not the one where the
34 * 1002: Build an audio filtering tool to test effects.
35 * 1003: There should exist 'some kind' of effect for note volumes
36 to add a random variation, to add 'humanity'. This cannot
37 be a standard digital effect as it should be different
39 * 1005: Vibrato should be variable (from 'no-vibrato' to 'some-vibrato'
41 * 1006: A 'choose' option, to take randomly one block or another
42 (blocks seem appropriate, but further study is necessary). A random
43 seed script command is also necessary.
44 * 1007: Support for 'tonalities'; fixed transpositions for each note of
45 the octave so that, for example, a 'f' is always a 'f#'.
46 * 1008: Support for 'keyboard splits': ranges of notes that a track will
47 ignore. This should allow to have multiple tracks playing the same
48 notes but with different channel maps and, for example, having a
49 guitar glissando pan from left to right.
50 * 1010: Loop stretching ('stretch wave without pitch change to last
51 exactly N time units').
52 * 1011: Loop matching ('change wave pitch to last exactly N time units').
53 * 1020: When a source file includes multiple songs, there should exist a
54 way to mark song / track changes. This should be used to include text
55 messages as ID3 tags or even to generate .cue / .toc files.
56 * 1042: Add multiple MIDI devices; a configuration file will match device
57 numbers to real addresses in /dev. Then each track in the song file could
58 have a command to set which MIDI device will the events be sent to.
59 * 1043: The same as the multiple MIDI devices, there should exist multiple
60 dsp devices. This way, a unique computer with more than one sound card
61 can output multichannel songs at a time.
66 * 1000: Convert current event queue to two event queues. The first
67 stage queue should store notes and the second note on / note off
68 events (Tue, 17 Aug 2004 12:00:00 +0200).
69 * 1004: Vibrato for generators (Fri, 13 Aug 2004 11:05:00 +0200).
70 * 1009: Set tempo from a sample loop ('set tempo so that this wave
71 will match exactly one/N measures') (Fri, 16 Aug 2004 18:08:00 +0200).
72 * 1013: Volume should be a command ('v', for example) and not be
73 inherited from previous notes. There should also be settable as
74 relative inc/decrements (as octaves) (Mon, 30 Aug 2004 14:37:59 +0200).
75 * 1014: doc/language.txt is severely outdated
76 (Mon, 30 Aug 2004 15:13:00 +0200)
77 * 1015: Upgrade build system (new config.sh, makefile.in, etc.).
78 (Thu, 09 Sep 2004 18:56:29 +0200).
79 * 1016: Integrate the new compiler (Sun, 12 Sep 2004 16:13:11 +0200).
80 * 1001: Generator should use queues of active / free generators.
81 (Sun, 17 Oct 2004 12:50:10 +0200).
82 * 1012: Portamento should not have a 'time', only a frequency
83 inc/decrement per time unit (Sun, 17 Oct 2004 13:18:04 +0200).
84 * 1018: The 'default' driver should not be bound to the first usable
85 one, but be a sequential try of all available drivers
86 (Thu, 11 Nov 2004 12:18:12 +0100).
87 * 1019: Add libartsc support (Thu, 11 Nov 2004 12:30:02 +0100).
88 * 1023: The SS_FRAMES lex/yacc token should be SS_MSECS, that is,
89 the compiler should not use frames but milliseconds
90 (Tue, 19 Apr 2005 20:05:46 +0200).
91 * 1024: The 'event1' and 'event2' stuff is ugly. It should be called,
92 respectively, 'note stream' (as it's, more or less, device independent)
93 and 'ss stream', which depends of softsynth, frames and such. In the
94 future, there could exist a 'midi stream' if MIDI output is supported
95 (Closed by #1025; Wed, 20 Apr 2005 17:30:31 +0200).
96 * 1033: SONG_EV_SS_NOTE won't work, because freq can't be calculated
97 on compilation time; instead, it should be a generic message
98 (Sat, 23 Apr 2005 10:52:35 +0200).
99 * 1026: Get rid of event.c and event.h (Sat, 23 Apr 2005 12:28:47 +0200).
100 * 1027: Get rid of effect.c and effect.h (Sat, 23 Apr 2005 12:28:51 +0200).
101 * 1031: Add lex/yacc code for processing absolute notes (A1, C#4, F&3)
102 (Sat, 23 Apr 2005 16:14:21 +0200).
103 * 1036: Unify song event types; ss_song should use the same event types
104 (Sun, 24 Apr 2005 10:29:22 +0200).
105 * 1035: The number of compiled tracks should be available somewhere
106 (Sun, 24 Apr 2005 10:35:19 +0200).
107 * 1037: ss_ins_frame() is flawed; as it directly mixes into frame[],
108 each intrument's ss effects affect the previous ones
109 (Mon, 25 Apr 2005 16:42:28 +0200).
110 * 1025: 'event1' has been moved to song.c (generic song event stream)
111 and 'event2' has been moved to ss_song.c (softsynth song event stream),
112 but due to almost all of ss_song.c being private, there is no way to
113 order the instruments and the effects to do anything until a way of
114 storing them is decided. So, project state is really critical now as
115 nothing works (last working version was 'cvs update -D 20050419').
116 (Mon, 25 Apr 2005 18:16:48 +0200).
117 * 1039: Volumes can't be set as integer numbers (0 and 1 should be valid)
118 (Mon, 25 Apr 2005 18:26:06 +0200).
119 * 1038: Comments can't be written inside extended commands
120 (Mon, 25 Apr 2005 18:31:55 +0200).
121 * 1021: Add line number to compiler errors (Mon, 25 Apr 2005 19:11:01 +0200).
122 * 1028: input.c should be ss_input.c (Wed, 27 Apr 2005 08:08:49 +0200).
123 * 1029: output.c should be ss_output.c (Wed, 27 Apr 2005 16:59:34 +0200).
124 * 1044: Line numbers in compiler errors don't work if the error is inside
125 a block or after inserting one
126 (Closed by #1045; Sun, 08 May 2005 10:22:43 +0200).
127 * 1047: Change generators to use just one volume and not a channel map
128 (Mon, 09 May 2005 16:24:13 +0200).
129 * 1049: Since the closing of #1047, the channel map in ss_ins is
130 completely broken (Tue, 10 May 2005 18:27:28 +0200).
131 * 1050: New ss_ins is flawed; volumes are never used
132 (Tue, 10 May 2005 18:41:30 +0200).
133 * 1041: Get rid of CHANNELS and always use dynamic structures or buffers
134 (Tue, 10 May 2005 19:40:52 +0200).
135 * 1048: ss_wave must be dynamic (Thu, 12 May 2005 19:23:13 +0200).
136 * 1032: Refactorize input, ss_gen and ss_ins to always use pointers to
137 struct ss_wave instead of copies of them (Thu, 12 May 2005 19:31:44 +0200).
138 * 1053: Create a tool that will read from a MIDI keyboard and print
139 the played keys on stdout (Closed by #1054;
140 Mon, 23 May 2005 17:04:54 +0200).
141 * 1054: Modify midiin.c to print currently played notes to stdout
142 (Mon, 23 May 2005 19:10:45 +0200).
144 Email bugs to angel@triptico.com