uliss / pd-ceammc

Pure Data CEAMMC distribution (based on vanilla 0.53 by Miller Puckette)
Other
107 stars 6 forks source link

issue with [declare] and the way Pd-ceammc handles externals/internals. #94

Closed porres closed 3 years ago

porres commented 3 years ago

hi, congrats on the new release, happy 2021

I tried installing my library (ELSE) and test it in this fork. Now, if I do [declare -path else] and try loading [xfade~], it doesn't work as it doesn't load [else/xfade~] but [ceammc/xfade~]. I consider this a compatibility issue between Pd-Vanilla and Pd-Ceammc.

I assume there's something in your fork that treats the built-in externals as internals and that is the problem. Purr Data (and Pd Extended before that) loads libraries in the "path" and/or "startup" and I think that is the best strategy as I believe this prevents this issue.

There are plenty abstractions in my library and I rely on [declare] inside them to load the path to 'else'. One example is [plate.rev~], which uses the [xfade~] object from ELSE, but it's not functioning properly as it loads the wrong xfade~ object. I can't change the abstractions and use 'else/xfade~' instead as it would break the compatibility to Camomile, because now I also offer ELSE as part of Camomile... Moreover, my Tutorial also relies on [declare] all over the place.

Anyway, I hope we can find a solution for this so this fork could also load my externals and tutorial, thanks!

porres commented 3 years ago

I actually have the same problem in Pd Vanilla if I have ceammc loaded via startup, so I guess it's all more complicated than I thought.

And the solution is that I use "./" along side with [declare -path else]. This works for Pd-Vanilla and Pd-ceammc. EDIT: not for Camomile though...