<div dir="ltr">This is excellent news indeed.  Happy to see this taking place.<div><br></div><div><br></div><div class="gmail_extra"><div class="gmail_quote">On Mon, May 12, 2014 at 10:12 AM, Miller Puckette <span dir="ltr"><<a href="mailto:msp@ucsd.edu" target="_blank">msp@ucsd.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">I think the global shared symbol space will cause some confusion (patches<br>

will have to protect their sends and receives, etc., by fabricating local<br>
names using '$' characters.<br>
<br></blockquote><div><br></div><div>Hm, yea I can see it odd because it means a patch running in normal pd works differently to one that is 'instanced' in a plug-in architecture.  I suppose people can be a little more careful how they design their synth / effect - wide variable passing, but it will make it more difficult to convert a patch to a plug-in.  Still, can be worked around.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Also, it won't be possible to run several Pds concurrently on several<br>
threads - in a threaded environment, each Pd instance will have to lock<br>
all others out while it runs.  (There might be a fix for that by replacing<br>
all static variables in Pd by thread-local ones, but this is untested and<br>
I'd hate to do it unless there's a real need for it, since it would involve<br>
systematically changing 100s of variable definitions in Pd.)<br>
<br></blockquote><div><br></div><div>I don't think running multiple pd instances concurrently is a big use case - the big thing this solves is the ability to have 'pd plugin', via vst, AU, or some other platform, and in those environments all current audio nodes are processed on the same thread.  If someone really needs multiple concurrent instances of pd running, they can look into spawning new processes (which was already possible).</div>
<div><br></div><div>Miller, is the locking happening within <span style="font-family:arial,sans-serif;font-size:12.727272033691406px">pd_setinstance() or some other pd internal place, or is this synchronization required by the libpd wrapping layer?</span></div>
<div><span style="font-family:arial,sans-serif;font-size:12.727272033691406px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:12.727272033691406px">cheers,</span></div><div><span style="font-family:arial,sans-serif;font-size:12.727272033691406px">Rich</span></div>
</div></div></div>