[PD] [Scope~] (was Re: can signal inlets that aren't the main inlet have float or message methods?)

Alexandre Torres Porres porres at gmail.com
Fri Apr 8 22:29:27 CEST 2016


2016-04-08 16:11 GMT-03:00 Jonathan Wilkes <jancsika at yahoo.com>:

> if the user isn't loading cyclone by default, and their patch does this:
> [declare -lib cyclone/Scope~]
>

Ok, but what would that do in the first place? I don't think I get
[declare] yet, can you find a specific individual binary or object inside a
library?

Then, cyclone does not come as a library for a long time, and "Scope~" is
not part of a "-lib"


> If by "traded" you mean you renamed the binary to scope~.pd_linux, this
> won't load anymore.
>

Nope, I changed stuff in the code as well

I might be wrong, but it seems possible to change it and maintain backwards
compatibility and get rid of this annoying Capital letter, but I'm
consulting you guys to be sure.



>  you still need  "Append" to differentiate from the internal "append"
> class, so you can't change that one.
>

Things, to my surprise, things work in a new and weird way to me in Pd
Vanilla. Any class you call that is not the internal one overwrites the
internal library. I discussed this on a previous thread these days (Name
conflicts "class overwritten; old one renamed 'x_aliased').

The way things are in cyclone nowadays, and I had given the example of
"line~" is that it has the "Line~" official and legacy name version but
also calls the objects as alias "line~" or "cyclone/line~"


> Also-- why is there a class_addcreator to add "cyclone/*" for each class?
> That _should_ be superfluous...
>

It's not for every class, but these one with name clashing issues.

So, anyway. How things are now, if I call "Line~", internally it will find
the alias "line~" and load it overwritting vanilla's line~. That sucks
cause they're not compatible. And basically you had this Capital letter in
the first place to avoid name clashing and it was clashing it anyway...
(yeah, quite ironic).

It seems that this system would allow you to load cyclone/line~ in Pd
Extended and Pd-L2ork, because in both of them, there is no internal
overwritting going on. So latest version of extended (0.43) introduced this
system with the alias. You can call [cyclone/uzi] and [cyclone/line~] for
example, but the latter won't overwritte the internal vanilla's line~

By the "Uzi" is another example like "Scope~", some Capital letter for some
reason that is not relevant anymore... and yeah, Uzi comes with the aliases
"uzi" e "cyclone/uzi".

But back to "Line~"

if I remove the alias "cyclone/line~" I can now call [Line~] or
[cyclone/line~] in Pd without overwritting the internal, and being able to
differentiate between [line~] (internal) and [cyclone/line~] external. This
is the same case as with Append. I think we should keep the weird animal
"Line~" as an alias and an option over [cyclone/line~].

But Uzi and Scope~ are in another category, they don't overwrite internals.
In Pd-L2ork you have an old version of Scope~ without the alias, so you
won't be able to load it as "scope~" or "cyclone/scope~", but [Uzi] is
updated, so you can call it as [uzi] or [cyclone/uzi]. I can only test this
in Mac Os, but with the version you provided today, I can do it. Can you do
it in linux and windows?

Anyway, I assume that if they did it in Pd Extended, it was for the reason
that the trick worked for every system, or they wouldn't introduce this
madness or massive inconsistency. And my thought is, if you can do it one
way to the other, you can also do it the other way around... if I can call
"uzi" as an alias, then I can call "Uzi" as an alias as well.

So, getting Uzi as an example, if I switch everything to the opposite like
this:


*void uzi_setup(void) { uzi_class = class_new(gensym("uzi")
(...) class_addcreator((t_newmethod)uzi_new, gensym("Uzi"), A_DEFFLOAT,
0);class_addcreator((t_newmethod)uzi_new, gensym("cyclone/Uzi"),
A_DEFFLOAT, 0) (...)*

*void Uzi_setup(void) {  uzi_setup(); }*
Plus the code to "uzi.c" and compiled the object as uzi.pd_darwin

Well, I can call it as [uzi], or as [Uzi] and [cyclone/Uzi]

If I don't have the "cyclone/Uzi" alias, then that doesn't work.

I'd actually be in favor of breaking that compatibility if there were a way
> to get rid of all those capital letters from cyclone.
>

And I'd actually second you on that, and we don't need those capital
letters for "uzi" or "scope~", so, at least in these two cases, there's a
pretty simple way to get rid of it.

But, as I'm saying, I think there is a way to change this and keep the
alias for backwards compatibility.

Cheers
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20160408/2e5d4fff/attachment.html>


More information about the Pd-list mailing list