[L2Ork-dev] Patch private abstractions

Jonathan Wilkes jon.w.wilkes at gmail.com
Thu Aug 13 22:44:51 EDT 2020

On Thu, Aug 13, 2020 at 6:38 PM Guillem Bartrina
<guillembartrina at gmail.com> wrote:
> Hi,
> in the last meeting we discussed a bit about the fact the way ab private
> abstractions are saved (so the definition is updated) is a little
> counter-intuitive for users (e.j. creating a new instance of an
> abstraction that hasn't yet been saved gives us an empty canvas).
> On the one hand, I don't see a major issues here. The user just has to
> get used to saving the abstractions when he finishes editing them.
> On the other hand, there is the UX side. We can think of a situation
> where the user has edited the definition somewhere and forgot to save it
> (so it is still dirty) Then he creates new instances and they don't look
> as they should, so the user has to find the dirty canvas (perhaps among
> many others) and save it.

Just as a measuring stick-- I think the ideal UX would be that any change a user
makes to a given instance *immediately* updates in all the other instances. Such
a design would remove the entire concept of a "dirty" [ab] so that "dirty" only
applies to the parent canvas.

I *think* implementation details of Purr Data rule out such a design,
but I did want
to mention it as something to measure UX against.

> An easy solution we came up with was to open the save dialog (Yes, No;
> the Cancel option doesn't make sense) within each dirty canvas every
> time we create a new instance (or when we close the file). The problem
> here is the case when we have multiple dirty canvases of the same
> private abstraction.

Or even of different private abstractions. This is a problem with file-level
abstractions, too. It quickly becomes untenable to track what's going on when
abstractions keep popping up to ask for permission to be saved. At least in
my own experience, when the number of abstractions that pop up to show
the dialog is greater than 1, there is a 100% chance that I've forgotten
what I was doing and can no longer provide a useful answer to the dialog. :)

> Do we want the user to go one by one, choosing Yes or No and keeping the
> definition of the last Yes-ed canvas? Or when the first Yes is clicked,
> all the remaining dirty canvases are discarded?
> Another approach could be to simply warn the user about the existence of
> dirty canvases of that private abstraction.
> Another could be a custom dialog (maybe using dialog_external) where all
> dirty canvases are listed and the user has to choose either one or none
> of them.

I see at least one special case:

1. I create [ab new]
2. I add some content to it.
3. I may or may not close the window for [ab new].
4. I create another [ab new].

In all cases I can think of, the user will want that 2nd instance to
be filled with the
contents they added to the 1st instance, *regardless* of whether they saved the
contents in the first instance.

Also: if I create [ab new] and there are currently no definitions for
"new", shouldn't
the subpatch window automatically be displayed like [pd]? What's the
use case where
the user doesn't immediately want to start adding content to that
private abstraction?

> Tomorrow I will also write about the absontrol/absanity topic and some
> other things.

Sounds good!


> Best,
> _______________________________________________
> L2Ork-dev mailing list
> L2Ork-dev at disis.music.vt.edu
> https://disis.music.vt.edu/listinfo/l2ork-dev

More information about the L2Ork-dev mailing list