Em sex., 4 de abr. de 2025 às 14:56, Alexandre Torres Porres <
por...@gmail.com> escreveu:

> We could have a new VST wrapper around Pd that is just that, and it'd be
> like having the [pd~] external from MAX, but it would let you run Pd in any
> DAW instead. Call it "Vanilla Plug" (even though "plug" and "vanilla" don't
> come often in the same sentence). And yeah, we would be able to use Pd as a
> plugin using [vstplugin~] ;)
>

This pd-dev email came later, so I read it before checking the earlier
ones, like the pd-announce mail about PureVST :) and I thought we were
talking about a plugin that already existed. Now I see we're talking about
a new thing and it's exactly what I wanted, so it seems :)

Sorry about the confusion, I will try and check it as soon as I can ;)

Wow, I'm really excited about this!

Thanks



>
> So, I will forward this thread to PlugData people and hopefully Tim or
> someone else will be able to chime in.
>
> cheers
>
> Em sex., 4 de abr. de 2025 às 10:32, Miller Puckette via Pd-dev <
> pd-dev@lists.iem.at> escreveu:
>
>> To Pd dev -
>>
>> I'm having fun seing if I can run large patches inside DAWs using the
>> purevst plug-in, and have hit one problem that I don't know how to deal
>> with, both technically and as a design question.  Large patches (such as
>> Philippe Manoury's upcoming opera :) typically have to fall back on
>> externs for one thing or another.  In Manoury's case, that would be
>> vstplugin~, smerdyakov, and antescofo~.  (It's humorous that I'm having
>> to run vstplugin~ _inside a VST plugin_ but there it is.  FWIW the
>> reverse - loading purevst under vstplugin~ - is working for me.)
>>
>> I found two problems loading externs into purevst... first off,
>> pre-defined symbols such as s_float are defined as globals in Pd but as
>> per-instance objects in libpd.  This means that externs compiled for Pd
>> that use those symbols won't load (dynamic linking says s__float is
>> undefined).  Of course we could just recompile every Pd extern in teh
>> world to always use gensym("float") instead of s_float, but this might
>> take a decade to do.  Another solution would be for me to define
>> s__float, etc., as static globals inside libpd but just never use them;
>> then when an un-hip extern sends them to pd_bind or class_addmethod or
>> the like I could just catch it and replace with the libpd-defined
>> version.  This might be error-prone but might be worth doing as a stopgap.
>>
>> But the bigger problem is this... running inside Ableton I found out
>> that the functions class_new(), class_addmethod(), and post() get
>> resolved to something other than the libpd-supplied ones - there's
>> apparently a name clash with some dynamic library or other that Ableton
>> Live links to.  I can't find any way I can control the order in which
>> dynamic linking under MacOS or linux resolves symbols.  I did get
>> pointed to one fun article here:
>>
>> https://www.akkadia.org/drepper/dsohowto.pdf
>>
>> ... but I can't find any way yet to oblige a Pd extern to call Pd's
>> version of class_new() instead of someone else's.
>>
>> The upshot is that Pd externs might load OK under some DAWs and crash in
>> others.  They're all guaranteed to  fail in Ableton, and sometimes
>> manage to crash it.
>>
>> So... I could provide new functions pd_class_new() etc.  Externs that
>> called the new functions wouldn't load in existing versions of Pd, so to
>> get an extern to run in either Pd vanilla or in libpd, you'd have to do
>> a run-time link to the new functions and revert to the old ones if the
>> new ones aren't found.  And, as new conflicts arise in the future, this
>> will have to be done to more ane more functions.
>>
>> Anyone with a better idea please let me in on it :)
>>
>> Miller
>>
>>
>>
>>  ---
>> pd-dev@lists.iem.at - the Pd developers' mailinglist
>>
>> https://lists.iem.at/hyperkitty/list/pd-dev@lists.iem.at/message/E7OWQEVFZXO7AQTAZFXP2XHZJ7UGFVZK/
>
>
 ---
pd-dev@lists.iem.at - the Pd developers' mailinglist
https://lists.iem.at/hyperkitty/list/pd-dev@lists.iem.at/message/SXLHJDZHKIIZNCXAJP6KE3FQKPCEQTZT/

Reply via email to