Without reading your reply in depth, it calls to mind my feeling that it would 
be *nice* if somehow clone supported subpatches natively to avoid requiring 
abstractions for simple things ala:

[clone pd …]

This is probably another discussion, however.

enohp ym morf tnes
-----------
Dan Wilcox
danomatika.com
robotcowboy.com


> On Jan 19, 2023, at 7:02 AM, Alexandre Torres Porres <por...@gmail.com> wrote:
> 
> 
> but anyway, I have a few doubts how [clone] would deal with internals, and 
> this is just a rough idea so far, and we'll have to better discuss this when 
> time is right...
> 
> for instance, how would someone deal with arguments? 
> 
> Like, I made a simple abstraction to mimic somewhat MAX's [mc.dac~], which 
> takes multichannel signals and distributes them from channel 1.
> 
> In clone, I need a damn simple abstraction with [inlet~] going into [dac~ 
> $1], and I use the '-di' flag to distribute multichannel input and  '-s 1' so 
> '$1' gets values starting from 1. It works great, I also have an argument in 
> [clone] for the number of abstractions that in this case represents maximum 
> channels.
> 
> So, being able to call internal objects inside [clone] saves us the need to 
> write a simple abstraction for this or any other object, which is good, but 
> how would I be able to set the argument of [dac~] in [clone] and have it 
> receive the instance number? That's something to think about, because simply 
> calling "dac~" instead of an abstraction name doesn't or shouldn't do it.
> 
> Now, I can and will gladly code an abstraction that mimics MAX's [mc.dac~] in 
> ELSE (actually I have already, just to test these things). The abstraction 
> uses [clone] internally and uses yet another abstraction with [dac~] inside, 
> so the user just needs to call the abstraction name. With what we have, 
> someone can make a library with all internals and whatever more externals 
> they like in a similar fashion. It's great that the doors are opened for this 
> and that we can go crazy. It would also be nice that we didn't have to worry 
> about this and have our "wrapper object". If not into [clone], maybe a new 
> object, why not call it [mc~]? I think such a new object is needed  because 
> it might be hard to expand [clone] to do more things than it's doing. this 
> [mc~] object than takes object names as an argument, and further arguments 
> according to the objects argument. This [mc~] object would be similar to 
> [clone] and create inlets/outlets according to the given object name and we'd 
> have a way to use them to set all copies or each of them.
> Maybe "mc.dac~" is a special case... let's think of a [lop~] object, we 
> wouldn't really need to specify "$1" as an argument... it doesn't make much 
> sense. It does make sense to maybe use a cutoff argument for all copies 
> though, so you could have [mc~ lop~ 500] and all signal inputs get filter at 
> 500hz. For [dac~], the special case, we could give it $1 as an argument and 
> it would mean instance number, and a similar flag '-s 1' could set it, so 
> we'd have [mc~ -s 1 dac~ $1].
> 
> well, I guess that's it, I'm tired and going to bed
> 
> cheers and good night
> 
> 
>> Em qua., 18 de jan. de 2023 às 11:45, Dan Wilcox <danomat...@gmail.com> 
>> escreveu:
>> I can't answer you as I haven't looked at Miller's implementation. I can 
>> *imagine* that if [clone] is able to load an internal class then it follows 
>> it would be able to open an external class which is loaded. I didn't mean to 
>> imply that it can *now* but more than it *might* be able to if it can loaded 
>> internal objects.
>> 
>>> On Jan 18, 2023, at 3:43 PM, Alexandre Torres Porres <por...@gmail.com> 
>>> wrote:
>>> 
>>>> Em qua., 18 de jan. de 2023 às 05:18, Dan Wilcox <danomat...@gmail.com> 
>>>> escreveu:
>>> 
>>>> Also similar to Miller's approach, there appears to be a way to load 
>>>> existing mono externals in the mc mechanism. So yeah, same problem, 
>>>> similar technical solution, different implementation.
>>> 
>>> Hmm, I am still missing what is Pd's approach to load an existing external 
>>> into a mc mechanism...
>>> 
>>> I'm understanding that [clone] may be able to load internal objects (and 
>>> abstractions of course) into a new multi-channel paradigm, but not 
>>> externals. Please enlighten me.
>>> 
>>> cheers
>> 
>> --------
>> Dan Wilcox
>> @danomatika
>> danomatika.com
>> robotcowboy.com
>> 
>> 
>> 
_______________________________________________
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev

Reply via email to