pattrstorage too greedy?

    May 15 2006 | 12:07 pm
    According to the reference manual, attribute greedy should behave like this: "When disabled, the pattrstorage object can see pattrstorage objects in a child patch, but no other objects at that level or below in the patcher hierarchy." I am experiencing a slightly different behavior, namely that greed limitation is contingent on the presence of a pattrstorage object in the child patch. If it's not there, even with greedy set to 0, all exposed objects in the child patch are seen by the parent pattrstorage object. Hopefully the patch below demonstrates this. Please let me know if this is expected behavior.
    Thanks, Eric

    • May 16 2006 | 11:00 am
      it is the behavoir I'd expect, if this was not so, making an abstraction tap into the pattrstorage system would be impossible !
      which would be very sad ;)
      you'll have to use the active message on the name of the subpatchers you wan't to exclude.
    • May 16 2006 | 11:21 am
      I'm not sure this is so. Recall that with the "greedy" attribute enabled pattrstorage does "see everything" as advertised, which as you point out is sometimes desirable. However, my example patch above addresses the fact that when "greedy" is turned off, pattrstorage still sees some things which, if I understood it correctly, the documentation suggests that it should not see.
      Of course it's possible to make anything inaccessible with the "active" message, and placing a pattrstorage in every subpatch apparently also solves the problem. But the documentation is not clear on this point, and the interaction of multiple pattrstorage objects at different levels might be worth learning more about.
      I should mention that I'm using 4.5.7 on OSX 10.4.6.
    • Jun 10 2006 | 8:21 am
      Eric -
      greedy is working as advertised. I'm not entirely sure what the problem is.
      greedy 0: pattrstorage looks downwards. if it encounters another pattrstorage object, it sees that object, but nothing else at the patcher level or below of that 2nd object. greedy 1: pattrstorage looks downwards. regardless of what objects it encounters, it sees everything, as far down the patcher hierarchy as it can. greedy 2: pattrstorage looks in its own patch, and nowhere else.
    • Jun 10 2006 | 5:21 pm
      Thanks, Jeremy.
      My documentation was out of date and the behavior of pattrstorage has since changed. It make a lot more sense with mode 2 added.