[Pdmtl] Louis B - programmeur Pd - question sur Pd mtl

Mathieu Bouchard matju at artengine.ca
Thu Jan 29 14:37:00 EST 2009


On Thu, 29 Jan 2009, patrick wrote:

> je ne sais pas à quoi correspond 8e+06 et si c'est possible de mettre 
> une valeur plus élévée, mais ici c'est assez pour loader un wav 44100 de 
> 3m41s. bien entendu, ça consomme beaucoup de mémoire.

1e+00 = 1
1e+01 = 10
1e+02 = 100
1e+03 = 1000
1e+06 = 1000000
8e+06 = 8000000

donc ça veut dire combien de fois on multiplie par 10.

le nombre le plus gros possible est aux alentours de 1e+37, mais je ne le 
recommande pas, ça va déborder (overflow) une fois rendu dans [tabread]. 
Le nombre 32-bit le plus gros est 2147483647 mais pour raison 
d'arrondissement je ne le conseille pas non plus. 2e+09 est assez proche 
de la limite possible de ta RAM mais de toute façon pd est pas vraiment 
capable de gérer un tableau de plus de 16777216 éléments avec [tabread] et 
encore moins avec [tabread4]. Pour changer cette limite il faut soit 
hacker pd pour qu'il utilise float64, ou encore se faire un nouvel externe 
tabread à deux inputs pour augmenter la précision parce que le format 
float32 (utilisé dans tous les messages et signaux de pd) a ses limites.

Ce qui se passe c'est qu'après 16777216 il n'y a plus de nombres impairs 
dans le format float32. à chaque fois qu'on double de valeur, il y a deux 
fois plus d'espace entre des nombres consécutifs. Ça veut aussi dire qu'à 
partir de 8388608 il n'y a plus de différence entre [tabread] et 
[tabread4] à part de bouffer plus de CPU, et que la qualité du contrôle 
sur [tabread4] diminue graduellement et donc paraît bien avant d'arriver à 
ce nombre.

  _ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec


More information about the Pdmtl mailing list