On Sat, 5 Aug 2006, Ypatios Grigoriadis wrote:
I have this little problem with [tabread4~ ]. When I use it to read from a relative short Array it works just fine. But now I need an array of 2.646e+007 elements(10 min with sample rate 44100). When I try it with such a long array I hear distortion from 1min 30 and it becomes worse as the time goes.
Distorsion would "start" at 1min35, the next distorsion level at 3min10 (double), and so on. But really it starts before, just softly, e.g. 0min47 is another threshold. The reason is that you are hitting the maximum precision of float numbers, which is 24 binary significant digits. Said thresholds are always at position 2*2*2*...*2 in the array. Starting with each threshold you have twice less timewise precision. This makes [tabread4~] go nuts after a while.
The easiest fix around this is to create a [tabread4~] external which uses another float for large-scale index, so that the small-scale index can stay precise. In the long term it would be better if Pd had an option for higher-precision floats (double-floats have much more precision than you need).
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju | Freelance Digital Arts Engineer, Montréal QC Canada