On Wed, 11 Jun 2008, cyrille henry wrote:
ok, if you don't wish to compile in order to test, here are 2 samples : http://www.chdh.free.fr/tab/tabosc4.wav http://www.chdh.free.fr/tab/tabosc4c.wav note that this is the worst case for tabread4~ : a very small table play at low frequency.
I believe that the difference will be more perceivable in non-sound contexts or at least non-waveform contexts, e.g. video/OpenGL, or sequencing.
for bigger table, the difference can be very small.
For a normal 4-point interpolator, the size of the table does not matter, because you always only use the previous two points and the next two points. It's just the scale at which you are looking at the thing, that gives the impression of large details.
I tried [tabread4] between two arrays of different sizes, to visualise interpolation, and just clicking around in one array for a few minutes got me to produce quite wild discontinuities of first derivative. This has little to do with the twice-continuously-differentiable (C2) nice things that I learned in school and such.
In very large tables, the interpolation will get lousy because the resolution of floats gets too close to the resolution of the table indices themselves (that is, there are not enough fractions between two consecutive integers). But this does not happen at the beginning of the table. On average, though, or on worst-case (which often matters), bigger tables make things worse in pd.
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec