Yes! Perfect, thanks!
Yes, using [tabread4~$2-grain] in the abstraction and naming clone [clone grain 16 $0] works! However, this has to be associated with an array with "$0-" in its name, see the screenshot - where pd throws up an error of "0-array: no such table". If I change the read... message and the array to "grain" load a file and rename to $0-grain, it works. But I cannot load a file into the array when named $0-grain.
Question for you savvy patchers!
I'm building a small granular synth, using the [clone] object to make multiple copies of a grain-abstraction. In the grain-abstraction I'm using a [tabread4~] to read a soundfile from an array. If the grain-abstraction is saved with a "$0-grain" as its [tabread4~]-array reference, and called from [clone] with 16 instances, pd makes 16 unique identifiers for the "$0-grain" reference, making it impossible to reference an array outside the abstraction.
Does anyone have a solution to this? Is it even possible to work around?