[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