[PD-dev] pow~ in Cyclone [was: Re: stripping down Pd-extended's default libs]

Mathieu Bouchard matju at artengine.ca
Thu Feb 19 19:29:19 CET 2009

On Thu, 19 Feb 2009, Matt Barber wrote:

> Perhaps there is a conceptual difference between overriding internal 
> classes for a class with the same behavior but with added methods (e.g. 
> the [print] and [soundfiler] examples from before), and overriding with 
> a different object, or one with a different interface (the [pow~] 
> situation).

Right. It has to do with the Liskov substitution principle, if you 
consider the new interface as a subtype of the old interface: whatever 
holds for the old interface, should hold for the new interface.

This principle defines what's a subtype, but doesn't say what it should be 
applied on. I mean, you can make statements about interfaces, and those 
statements talk about subtypes, but they don't necessarily talk about 
features, or they talk about one man's features which is another man's 
hole or bug. I mean, before worrying about subtypes, we have to figure out 
what's a feature and what's not.

I say that because there's something called pack_anything that is defined 
in pd, which looks pretty deliberate, and yet, it still seems to someone 
like a bug. So, what's a feature?

(Liskov's also has other exceptions such as "covariant types", but that's 
another thing)

> Meanwhile, it would not be well-motivated to override it with an object 
> which (to be silly) indexed tables in reverse, or (to be ridiculous 
> because it's 4:00 AM here) grabbed a random joke from the web every 64 
> samples and posted it to the console.

Actually, if the spec of the class does not say that nothing will be 
posted to the console, and that there is no rule that says that nothing 
gets posted to the console unless specified explicitly in the spec, then 
it is the right of every subclass to do whatever it wants with the 
console, really... in theory... though it would be quickly reported as an 
annoyance or a bug. I suppose that... if it's really at 64 samples, then 
it would just flood the pd console so bad that it would freeze the 

> "in the name of gbuzz stop what you're doing and fix the library!"

for a little while I hoped gbuzz would be the name of a Gtk port of 
Jeskola's BuzzTracker.

  _ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec

More information about the Pd-dev mailing list