[PD] Good programming practice
Peter Todd
peter_todd82 at yahoo.co.uk
Sat Oct 23 17:39:56 CEST 2004
This is more in response to Frank than any new contribution to the
discussion - feel free to ignore it, I doubt there is much new to learn.
> Hallo,
>
> This is not too different from the way, rradical does it, except this:
> rradical does keep all things local, while still allowing access
> through $1-named addresses. I intentionally did not use send/receive
> pairs for this. Although clashes are unlikely with consistently named
> sends, they still are possible and require a user to take care of
> this. Also sends require a user to remember all these names and write
> a lot of [s something] objects. This is fine, if you're the only user,
> but as soon as others try to use an abstraction library, things get
> too complicated IMO.
That sounds reasonable. Nonetheless, the only time a user is required to
write the [s something]s, is when they explicitly want to control things in
a different way (and they can 'send' with messages, rather than [s]) -
again, not so different from rradical? I still prefer your method, though,
I think (and it's better that there is a consensus / standard, so people
don't keep reinventing the wheel).
>
> Instead all this is solved in rradical through the OSC x-let, which
> actually currently doesn't need to use OSC, plain [route] would work
> as well, but OSC made it much easier and has several other advantages
> (foremost that's pattern matching)
I've been anticipating taking advantage of some OSC features.
>
> In rradical, no send names have to be remembered at all, because there
> are none! This is important. Everything is done through the OSC
> inlets, which basically are connected to [OSCroute $1]. This could be
> [route $1] as well. Then every parameter, that should be controlled,
> has another [OSCroute /paramname] which could be [route paramname] as
> well, if you want to avoid OSC.
By this, I presume you mean that there is an OSCroute created outside each
actual rradical abstraction subsequently connected to the OSC inlet? That
seems to make most sense.
>
> Now if every OSC inlet is fed by [r OSC] receivers, a user of rradical
> has remote control of all parameters through one single global sender,
> if (s)he likes to do so, just by sending correctly formatted messages
> to it: "; OSC /synth/paramname 20" (OSC) or "; OSC synth paramname 20"
> (route, not implemented in rradical). No global sends at all, except
> one not named by me, but by the user.
>
> I called this the "strict borders, single crossing" principle in
> RRADical.
>
Of course being greeted with lots of 'couldn't create' errors had
discouraged me up until this point from actually studying how rradical is
working (I don't know why I didn't ask for help in finding OSC sooner, for
that and other reasons). You've laid out many things very clearly and I
find nothing to disagree with. I still need to read the documentation and
experiment with this, but it seems that most things are under control.
Regards,
Peter
> Ciao
> --
> Frank Barknecht _ ______footils.org__
>
More information about the Pd-list
mailing list