Undoing could re-bang Toggle Bang and Press IOBox


  • patch for a quick test
  • video that should explain better than words.

beta34.2 32bit, W7 x64.

Funny note: CamStudio 2.7.4 sees an IOBox as a window (see wtf2.mp4).

undo_bug.zip (239.2 kB)

good find. please check latest alpha which does not add bangs and presses to the undo history.

Thank you.
Checked against latest 32bit alpha, I can’t repeat the issue.
Interesting how the thing intentionally remained for Toggle, though.

I have always seen the Bang and Toggle (and more recently Press) IOBoxes more like GUI elements, than actual variables; in other words something useful to manually trigger events, until it gets substituted by actual logic that outputs a 1\0 (true\false) for one frame and\or continuously. Press, immho, is a better example of something meant for direct user’s interaction than its (and not “it’s”, like I’ve written in the patch… :facepalm:) two siblings.

Even if they are “at the top of the patch” (no other logic up the stream); while live patching, “randomly” toggling a Toggle could create issues.

I’d like to have your points of view on this.

press/bang are different to toggles and other values in that the latter are a state while press/bang are only triggers that can change state.

i see your point where IOBoxes can be used for two different things:

  • set constants for a patch
  • tweak variables at runtime

in the first case you’ll agree that you want all changes to such constants to be saved in a patch whereas in the second case you’re arguing you don’t want those changes saved.

in vvvv undo and the state of a patch are very much coupled: anything that we want to be saved in the patch also is automatically part of the undo history. so we don’t have a way to change that. one could now think of an extra flog on IOBoxes to have them not take part in undo…i guess that would be possible…

meanwhile you can always use Undo (VVVV) to disable undo (and the recording of state) while your’re performing. hope that explains.

Ah, thank you very much, I guess I’m looking at this from a more convenient perspective now. Saving IOBoxes values is indeed very important.

I too thought about such a flag, but didn’t dare to mention it, ahahah.