Myriad Blog 1.3.0 Tuesday, Dec 12th, 2017 at 00:08am 

Monday, Sep 15th, 2014 at 05:01pm
Harmony 9.6 étape 717

 
Nous avançons dans la reprise des sorties audio pour les rendre compatibles avec les échantillons 24 et 32 bits.
 
Pour des raisons de rapidité (n'oublions pas que les premiers sons numériques dans Harmony Assistant datent du millénaire précédent), tous les calculs se faisaient sur des valeurs entières, en 32 bits.
 
Il n'est plus possible d'effectuer les calculs internes en 32 bits si le résultat final est lui aussi en 32 bits. En effet, dans l'arithmétique entière, il faut que les résultats intermédiaires des calculs puissent dépasser l'étendue des opérandes.  
 
Pour les moins matheux, prenons un exemple. Imaginons que vous ne puissiez compter que jusqu'à 100, et que vous ne puissiez gérer que des valeurs entières. Si vous voulez, à un moment, prendre les 3/4 de la valeur 83 (qui devrait donner 62), qu'allez-vous faire?
 
Si vous multipliez par 3 puis divisez par 4, vous allez faire 80 x 3 = 240, ce qui dépasse 100 et n'est donc pas possible.
Si vous divisez d'abord par 4, vous obtenez la valeur entière 20. Si vous la multipliez ensuite par 3, vous obtenez 60. C'est un peu mieux, mais vous perdez de la précision.
 
Devant cette impasse, et considérant que les ordinateurs ont suffisamment évolué depuis les années 2000 pour pouvoir effectuer rapidement les calculs arithmétiques à virgule, nous réécrivons la totalité des opérations internes (génération des sons, effets, mixage, filtrage, etc) en arithmétique à virgule, pour ne revenir en valeurs entières de 32 bits qu'à la fin de chacune de ces opérations.
 
Ceci nous permet de momentanément dépasser les 32 bits pendant les calculs.
 
Mais cela nécessite de réécrire la quasi-totalité des fonctions de calcul, puis de les vérifier en comparant avec le son produit par la version publique du programme. C'est long, et cela s'ajoutera à la liste des choses à vérifier en détail dans la prochaine beta.
by Olivier Guillion


Most recent first
Oldest first

Top of page
Legal information Last update:  (c) Myriad