On 8/5/06, Mathieu Bouchard matju@artengine.ca wrote:
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
Thank you guys, I now have the picture of the problem.
However, I am not a programmer which means that it is impossible for me to create an external... So if any one has free time next weekend...
Or if anyone can figure out another solution, i would be grateful.
Thank you anyway!!!