<div dir="ltr">Hah, yeah that's a great idea, although you might not want to look at the C source ;)</div><div class="gmail_extra"><br><div class="gmail_quote">On 1 November 2016 at 16:41, Andy Farnell <span dir="ltr"><<a href="mailto:padawan12@obiwannabe.co.uk" target="_blank">padawan12@obiwannabe.co.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Its an idea I've long supported, for perhaps 10 years.<br>
<br>
But there are some subtle dangers to openness.<br>
<br>
Given the very small size of Pd patch code in relation<br>
to even the simplest compiled external we might agree a<br>
principle, a standard, an unwritten law if you like....<br>
<br>
that any pd abstraction converted by a [gen~] like mechanism<br>
into a compiled external, carries with it the dataflow source<br>
as a data chunk. That means the dataflow source is always distributed<br>
with it. Further the whole process is reversible with a<br>
"convert-external-to-<wbr>abstraction" process.<br>
<br>
What we would have then is a kind of great "folding editor/compiler"<br>
for DSP development where two views of code are possible.<br>
This would be powerful in teaching C as well as data-flow with<br>
the same tool.<br>
<br>
Andy<br>
<div><div class="h5"><br>
On Tue, Nov 01, 2016 at 02:12:08PM -0200, Alexandre Torres Porres wrote:<br>
> > More generally, it would be great if abstractions could do<br>
> > anything a compiled object could do.<br>
><br>
> Exactly ;)<br>
><br>
> And again, let me add, there are things like the heavy compiler,<br>
> <a href="https://enzienaudio.com" rel="noreferrer" target="_blank">https://enzienaudio.com</a> where you can compile pd patches into optimized code<br>
><br>
> how does that work? Wouldn't that be something like the "gen~" idea I<br>
> brought up? How hard would it be to have a compiler for a patch to be<br>
> turned into a coded object?<br>
><br>
> if abstractions could do anything a compiled object could do including<br>
> being optimized and efficient, that would be amazing...<br>
><br>
> cheers<br>
><br>
> 2016-11-01 13:56 GMT-02:00 Alex Norman <<a href="mailto:x37v.alex@gmail.com">x37v.alex@gmail.com</a>>:<br>
><br>
> > Miller did seem open to a control outlet on the inlet~ object. This was<br>
> > when we were discussing the clone object and how you have to pass messages<br>
> > to the first control inlet, if you have one, instead of just the first<br>
> > inlet always, to control the cloning operations. More generally, it would<br>
> > be great if abstractions could do anything a compiled object could do.<br>
> > Alex<br>
> ><br>
> > On November 1, 2016 8:47:11 AM PDT, Alexandre Torres Porres <<br>
> > <a href="mailto:porres@gmail.com">porres@gmail.com</a>> wrote:<br>
> ><br>
> >> 2016-11-01 8:42 GMT-02:00 Pierre Guillot <<a href="mailto:guillotpierre6@gmail.com">guillotpierre6@gmail.com</a>>:<br>
> >><br>
> >>> Hi Alexandre,<br>
> >>><br>
> >>> > I wonder if a thing like libpd could work as turning a vanilla patch<br>
> >>> into a<br>
> >>> > compiled object to be used inside pd... that'd be something like gen~<br>
> >>> in<br>
> >>> > max/msp.<br>
> >>><br>
> >>> Can you be more specific ? For the moment, I think it would be<br>
> >>> equivalent to use an abstraction or the object [pd~] (libpd loads<br>
> >>> dynamically a patch so I guess that the execution of the patch cannot be<br>
> >>> optimized and except if the patch has been be somehow included inside the<br>
> >>> binary, you'll have to share the patch with the object). For me, the main<br>
> >>> advantage of gen~ is that it generates code that can be used inside an<br>
> >>> application but libpd already offers this feature. So what would be the<br>
> >>> advantage?<br>
> >>><br>
> >><br>
> >><br>
> >> Well, I thought the code could be optimized somehow, which I believe is<br>
> >> something gen~ does, and that could be an advantage... but I really know<br>
> >> nothing and now it seems that is not possible.<br>
> >><br>
> >><br>
> >> > A - being able to retrieve control data from [inlet~]<br>
> >>><br>
> >>> I did it in the Cicm Wrapper but it was pretty tricky. If you use the<br>
> >>> object [hoa.process~], you can send messages via a signal inlet for<br>
> >>> example. I'm not very proud of this because I had to hack a bit the inlet<br>
> >>> class. Now, I don't know if I must remove this feature or keep it...<br>
> >>> Perhaps somebody could tell/remind us if there is a reason why signal<br>
> >>> inlets can't receive messages.<br>
> >>><br>
> >><br>
> >> cool, there's also a [route~] object from zexy which could be embedded in<br>
> >> inlet~<br>
> >><br>
> >><br>
> >> > B - being able to know if a signal is connected to [inlet~]<br>
> >>><br>
> >>> I also did it in the Cicm Wrapper, perhaps this feature could be<br>
> >>> included in the "m_pd.h" interface because for the moment you need to<br>
> >>> include "g_canvas.h" and "m_imp.h". Anyway, if you want a simple code that<br>
> >>> shows how to do it, I have an example<br>
</div></div>> >>> <<a href="https://github.com/pierreguillot/pd-dummy/blob/master/src/connected_tilde.c" rel="noreferrer" target="_blank">https://github.com/<wbr>pierreguillot/pd-dummy/blob/<wbr>master/src/connected_tilde.c</a>><br>
<span class="">> >>> in my dummy library.<br>
> >>><br>
> >><br>
> >> awesome, it's be great to have something like this in vanilla in order to<br>
> >> improve the design of abstractions ;)<br>
> >><br>
> >> cheers<br>
> >><br>
</span>> >> ------------------------------<br>
<span class="">> >><br>
> >> <a href="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a> mailing list<br>
> >> UNSUBSCRIBE and account-management -> <a href="https://lists.puredata.info/listinfo/pd-list" rel="noreferrer" target="_blank">https://lists.puredata.info/<wbr>listinfo/pd-list</a><br>
> >><br>
> >><br>
<br>
</span>> ______________________________<wbr>_________________<br>
<div class="HOEnZb"><div class="h5">> <a href="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a> mailing list<br>
> UNSUBSCRIBE and account-management -> <a href="https://lists.puredata.info/listinfo/pd-list" rel="noreferrer" target="_blank">https://lists.puredata.info/<wbr>listinfo/pd-list</a><br>
<br>
</div></div><br>______________________________<wbr>_________________<br>
<a href="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a> mailing list<br>
UNSUBSCRIBE and account-management -> <a href="https://lists.puredata.info/listinfo/pd-list" rel="noreferrer" target="_blank">https://lists.puredata.info/<wbr>listinfo/pd-list</a><br>
<br></blockquote></div><br></div>