[PD] [tabwrite4~], is it possible at all?
Mathieu Bouchard
matju at artengine.ca
Sat Jan 7 14:23:22 CET 2012
Le 2012-01-07 à 11:01:00, katja a écrit :
> It seems to me that 4-point-interpolated writing would mean: write
> values to 4 indexes at a time, just like [tabread4~] reads from 4
> indexes at a time.
I don't think that [tabread4~] can be reversed so easily. I think that the
most appropriate antialiased [tabwrite4~] would not be a mirror image of
what [tabread4~] is. It wouldn't necessarily write four values : making it
write two values would be quite normal ; you'll want to tune its amount of
«opaqueness» perhaps, and this will be a setting for which you will have
no ideal default value ; and whatever it'll be, you probably won't like
that it's not a mirror image of [tabread4~] or even of [tabread~].
This makes me think of [#remap_image] and [#store]. If I want to warp the
coordinates of a picture in a nontrivial way, I can't loop over the source
pixels and write them in the destination image, because this creates lots
of holes. It doesn't tell what to fill the holes with. What [#remap_image]
does (using the [#store] external) is to loop over destination pixels and
choose where their data come from. This means that the warping function
has to be inversed.
nontrivial examples :
http://gridflow.ca/gallery/un_sur_z%C3%A8de.jpg
http://gridflow.ca/gallery/patch_dans_patch_5.png
http://gridflow.ca/gallery/patch_dans_patch_9.png
help :
http://gridflow.ca/help/%23remap_image-help.html
But when the source data is a continuous flow, you can't index it as if it
were a picture of pixels, because the flow of sound is unlimited and
realtime.
IMHO, it's a hard problem. It looks like the kind of thing for which many
situation-specific solutions are designed because there is no general way
to make something that generally makes sense.
> While writing 4 values, recently written values must be taken into
> account, not bluntly overwritten. So two existing values, x[n-2] and
> x[n-1], should be somehow integrated with new values, if the writing
> direction is positive.
Just think about constant speeds for now : if the index is a phasor
moving at the same speed as [tabsend~] would, then it better act very
similar to [tabsend~]. This is the first thing you ought to verify for any
possible solution. Then you should look at what happens when using any
other different constant speeds. Then if you are satisfied with what
happens with all constant speeds, chances are that you will be satisfied
with variable speeds.
______________________________________________________________________
| Mathieu BOUCHARD ----- téléphone : +1.514.383.3801 ----- Montréal, QC
More information about the Pd-list
mailing list