On Fri, Jun 18, 2004 at 03:50:06PM -0700, Chris Grigg wrote: > First question is, undo what events? Reset the wiggled parameter to > its state before... well, before what? Most recent parameter change? Gesture! It is probably safe to assume some hysteresis on MIDI messages within which they are part of the same gesture. receive_MIDI idx = some_hash_of_the_MIDI_message; /* for example CC# */ g = gestures[idx]; if g != 0 and g is_not_too_old this message is part of the gesture g else gestures[idx] = a_new_gesture > Well, undo on program change is probably unambiguous, but the > continuous-gesture-oriented questions I asked above also apply to > other messages you're more likely to find in performance input > (pitchbend and the aftertouches). So, the pseudo-code is simple, but if there is something braindead about it, I trust you to find it :) > More centrally, second question is: What is the meaning of an undo > operation on messages that don't so much set a parameter as trigger a > process, e.g. Note On? Just sending the corresponding Note Off does > Bonus question: What is the meaning of an undo operation on a SysEx message? Undo does not make sense for Note control, and it's dubious whether Undo for Sysex makes sense. > Just to be clear: Editing a patch via (G)UI is different from playing > the instrument (though obviously there's some overlap), and undo > certainly should apply for patch edits, I'm just asking about playing > the instrument. For many of us bedroom techno dorks, it is much the same. I use a MIDI knob box to tweak a patch so that I can close my eyes and tweak. I'm doing what a better sound-designer might do with the mouse. Load a patch that is close to something I want set up a MIDI map to my knob box turn off the screen tweak Sometimes I have something I like, but then screw it up. An undo history is INVALUABLE. ---------------------------------------------------------------------- Generalized Music Plugin Interface (GMPI) public discussion list Participation in this list is contingent upon your abiding by the following rules: Please stay on topic. You are responsible for your own words. Please respect your fellow subscribers. Please do not redistribute anyone else's words without their permission. Archive: //www.freelists.org/archives/gmpi Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe