Option record pass-thru now works.
[epichord.git] / TODO
blob0dcd7efe5f13e2e1fd3e4f3806794eff9274c12e
1 short list of features not yet implemented
3 keyboard input
4   allow remapping
5 the rest of the mouse commands
6   select many notes/patterns
7   delete all selected
8   move all selected
9   copy all selected
10   split/join
11   no overlapping patterns
12 the event editor
13   mouse commands
14   display
15   menu
16 import midi file
17 record midi input
18   overwrite mode
19   layer mode
20   out of bounds behavior
21   metronome lead in
22 undo and redo
23 graphical upgrades
24 trackselect in piano roll
25   toggle tracks shown
26   switch edited track
27 jack transport
28 lash
32 big list of features
35 create seqpat (with new blank pattern)
36 create note
37 create event
38 delete seqpat
39 delete note
40 delete event
41 move note
42 move seqpat
43 resize seqpat
44 resize note
45 select seqpat
46 select note
47 select event
48 shift select seqpat
49 shift select note
50 shift select event
51 box select seqpat
52 box select note
53 box select event
54 change event value
55 add track
56 remove track
58 copy selected notes
59 copy selected events
60 soft copy selected seqpats
61 hard copy selected seqpats
62 uniquify seqpat
63 split seqpat in half
64 join two seqpats
66 save textfile
67 load textfile
68 save type 1 standard midi file
69 import type 0/1 standard midi file
71 set loop start
72 set loop end
73 set song position
75 play notes on virtual keyboard
76 play notes on real keyboard
78 x zoom in pattern editor or song editor
80 options
81 bpm
82 beats per measure
83 measures per phrase
84 metronome lead in
85 always hard copy
86 record pass thru
87 play note insertion
88 play note selection
89 follow playback
90 quantize note off
91 record modes
92 merge - insert notes into current track
93 overwrite - erase all notes before inserting into current track
94 layer - on each loop create new track (muted)
95 new - merge into new track created at time of recording
97 toggle display of tracks on piano roll
99 keyboard shortcuts
100 ctrl-c copy
101 ctrl-v paste
102 ctrl-z undo
103 ctrl-y redo
104 ctrl-a select all
105 ctrl-s save
106 ctrl-o load
108 graphics
110 change pattern color
111 timeline shows correct indicator
112 trackmodule has updated info
113 toggle buttons show correct state
114 piano keyboard highlights keys
118 save records the following
119 track name
120 track vol
121 track pan
122 track mute
123 track solo
124 track port
125 track chan
126 track prog
127 loop positions
128 loop flag
129 keyboard flag
130 song title
131 song author
132 song info
133 seqpats
134 patterns
135 arranger scroll positions
136 seqpat event editor controller
137 beats per measure
138 measures per phrase
140 metronome lead-in
141 always hard copy
142 auto track name
143 record pass through
144 play note insertion
145 play note selection
146 follow playback
147 play note selection
148 quantize note off
149 record mode
155 immediate features to be implemented
158 volume and pan controls dont work
159 change time signature and bars per measure
161 select many patterns
162 select many notes
165 what i did instead (changes since last)
167 saveload restores/clears title/author/info
168 vol pan mute solo widgets work
169 mute and solo works
170 autohell
173 BUGS
175 if events are dispatched out of order, they are put in order by playing the
176 rest of the notes after the first-out-of-order at the end of the buffer, causing
177 an error on the order of 1024/48000 = 21 ms. to fix it, the events must be
178 dispatched in time order. solution is to enqueue and sort before dispatch.
179 the above workaround was done because if you try to dispatch them out of order
180 jack crashes. this occurs when events occur near each other but not exactly
181 at the same time, or at high bpm.
183 the pattern drag sound bug is that when a pattern is moved, note offs do not
184 occur. to fix it, when dragging a pattern you must dispatch note offs in one
185 way or another.
187 the hand doesnt point directly at notches 1 and 3 if they are numbered 0 1 2 3
188 for each beat.
190 there is a 1 frame error caused by a kludge in the sequencer mechanism.
191 there are cases where a midi event is to be dispatched on the first 
192 frame of the buffer, but also on the frame right after the last, i.e. 
193 index 1024 in a frame buffer of 1024 frames. When a event appears to be
194 destined for 1024, i dispatch at 1023 rather than waiting until next 
195 process. a real solution would check the sequencer play mechanism and 
196 its interation with the backend's real time to see why its considering 
197 playing these notes.