[gmpi] Re: 3.15 MIDI (goals.undo vs. playing)

  • From: Chris Grigg <gmpi-public@xxxxxxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Fri, 18 Jun 2004 15:50:06 -0700

Thanks for the comments, Steve. Undo expectations still seems shaky to me, I'd like to firm them up if we can.

Steve said:

Chris said:
 > 2 - MIDI CLICK-AND-WIGGLE ... Is there a need for this
 > style of input to be undoable?  I'm not sure there is, partially
 because I'm not sure what 'undo' means for some operations -- what do
 host writers think?

Yes, there is a need for it to be undoable - the user wont see any reason why wiggling a slider on a MIDI box is different to moving it with a mouse. Its no harder to undo either, as the MIDI->GMPI mapping happens inside the host, just like the mouse->GMPI mapping.

Yes, all else being equal I agree there should, if possible, be the same operation... But I still haven't seen anyone explain what "undo" means in this context. Actually, this is an issue for all instrument-style plugs irrespective of whether pure GMPI is used or MIDI is used.


First question is, undo what events? Reset the wiggled parameter to its state before... well, before what? Most recent parameter change? A MIDI slider move generates many many CC change msgs, so undoing only the last one is not terribly useful functionality. Start of the move gesture? How do you define that? A user-set redo milestone is unambiguous, but irritating.


 > 3 - MIDI PERFORMANCE INPUT / NEW PLUGS - ...
 > ...Again, is undo needed or meaningful here, since, unlike,
 > say, many audio DSP plugs, a synth plug's state is much more complex
 (notes in release phase, envelope position, sample index per
 oscillator, etc.) than a parameter snapshot?

Again, yes, undo is both meaingfull and needed. Not all hosts have to provide it, but theresno reason to prevent them.

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).


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 not put the instrument into the state it was before the note on; now you 've got a note in release phase when there was no note at all before the note on, and all the other playing notes are further into their timelines. So, how thorough do we expect undo to be for playing an instrument, vs. how much of the plug's internal state do you need the host to mirror for undo to be useful for playing an instrument?

Bonus question: What is the meaning of an undo operation on a SysEx message?

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.

-- Chris G.

----------------------------------------------------------------------
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

Other related posts: