I have a series of arrays whose physical dimensions are very small, so it is too fiddly to draw them with the mouse. I'm looking for a way to draw data into them using a larger array, which I can control. In other words, I'm looking for a way to do this:
except with arrays instead of number boxes.
This is very easy to achieve using [arraycopy]:
However, this method is inefficient for two reasons:
- [arraycopy] copies all of the data every time it is banged, not just the data that has been changed.
- [arraycopy] needs to be triggered by [metro], so that the data is copied whether or not there is any new data.
Because of this, I would expect this construction to cost a significant amount of CPU with larger arrays, which is something I want to avoid. I'm sure it would be possible to use [tabdump] instead of [arraycopy] and filter out all extraneous data, but this process itself would still cost something.
What I want to know is: is there a way to receive only the array data that has been changed, and only when it has been changed?
Here is what I mean:
In this example, data received from a specific [vsl] will be sent to a specific point on array1 only when it has changed. This method is fine, except it is a bit less elegant, and won't work well when the array is resized. I will resort to this if I have to, but I would prefer to find a way of achieving the same with arrays!
NB. I have even looked into data structure arrays, but from what I can tell, even these need to be banged every time to get the data out. At least this is what's suggested by Frank Barknecht's tutorial (file 19-tut.pd)
Can anyone think of a way of doing this?