1 short list of features not yet implemented
5 the rest of the mouse commands
6 select many notes/patterns
11 no overlapping patterns
21 allow disconnected noteon, noteoffs
23 trackselect in piano roll
34 create seqpat (with new blank pattern)
59 soft copy selected seqpats
60 hard copy selected seqpats
67 save type 1 standard midi file
68 import type 0/1 standard midi file
74 play notes on virtual keyboard
75 play notes on real keyboard
77 x zoom in pattern editor or song editor
91 merge - insert notes into current track
92 overwrite - erase all notes before inserting into current track
93 layer - on each loop create new track (muted)
94 new - merge into new track created at time of recording
96 toggle display of tracks on piano roll
110 timeline shows correct indicator
111 trackmodule has updated info
112 toggle buttons show correct state
113 piano keyboard highlights keys
117 save records the following
134 arranger scroll positions
135 seqpat event editor controller
154 immediate features to be implemented
157 volume and pan controls dont work
158 change time signature and bars per measure
164 what i did instead (changes since last)
166 saveload restores/clears title/author/info
167 vol pan mute solo widgets work
174 if events are dispatched out of order, they are put in order by playing the
175 rest of the notes after the first-out-of-order at the end of the buffer, causing
176 an error on the order of 1024/48000 = 21 ms. to fix it, the events must be
177 dispatched in time order. solution is to enqueue and sort before dispatch.
178 the above workaround was done because if you try to dispatch them out of order
179 jack crashes. this occurs when events occur near each other but not exactly
180 at the same time, or at high bpm.
182 the pattern drag sound bug is that when a pattern is moved, note offs do not
183 occur. to fix it, when dragging a pattern you must dispatch note offs in one
186 the hand doesnt point directly at notches 1 and 3 if they are numbered 0 1 2 3
189 there is a 1 frame error caused by a kludge in the sequencer mechanism.
190 there are cases where a midi event is to be dispatched on the first
191 frame of the buffer, but also on the frame right after the last, i.e.
192 index 1024 in a frame buffer of 1024 frames. When a event appears to be
193 destined for 1024, i dispatch at 1023 rather than waiting until next
194 process. a real solution would check the sequencer play mechanism and
195 its interation with the backend's real time to see why its considering