[L2Ork-dev] Patch private abstractions

Guillem Bartrina guillembartrina at gmail.com
Wed Jul 29 12:13:03 EDT 2020


Hi everyone,

in the last meeting I did a small presentation about the feature I'm 
going to implement next.

A quick reminder:

--------------

### Allow the user to store additional patch definitions within a pd 
file, which can be instantiated as abstractions ###

- creating new abstractions won't require accessing the filesystem

- patch portability is improved, due to the fact that the patch and all 
its abstraction dependencies can be packed into a single pd file

- it fosters the use of abstractions when they should be used. 
Currently, sub-patches are often used only because they are easier to 
create than abstractions, and this leads to code repetition.

Key aspects:

 > the .pd file structure: one main patch and multiple additional patches

 > scope for additional sub-patches: only instantiable by the main patch 
and its sub-patches. They might be instantiable by the additional 
sub-patches themselves too, to be determined.

--------------

Matt suggested implementing this feature in a similar way to how [array] 
or [text] works:

 > There is a template object that contains the abstraction definition. 
This object is not usable: it doesn't accept incoming messages, it 
doesn't have xlets, ... . It basically behaves like a comment, but it 
can be opened to edit the abstraction. For instance, it could be [ab 
define <name>].

 > If the corresponding [ab define <name>] abstraction definition exists 
within the scope (the definition is somewhere in the subpatch subtree), 
it can be instantiated by typing, for instance, [ab <name>] in an object.

 > If the abstraction definition is edited, all instances of that 
abstraction are updated, as is currently the case with ordinary 
abstractions.


I think this one above is an easy and clean way to do this for both 
users and developers.

---

I've already spent some time trying to figure out how some of the 
related parts of the codebase work, in order to get some inspiration. 
I've checked: [array], [text], [clone], [declare], templates, scalars, ...

I would like to know your point of view in order to build a clear and 
well-defined objective, which will allow me to progress in the most 
direct way.







More information about the L2Ork-dev mailing list