Petit truc que je viens de découvrir, anodin mais tout de même troublant.
Pour les calculs on travaille en général pour de l'audio entre les valeurs de +1 à -1.
Selon la précision désirée, on travaillera en Float ou double, mais ça c'est un détail.
Un DAC lui sera non pas des nombres en virgules flottantes mais des entiers : 16bits , 24 bits ...
Si l'on prend 16 bits pour rester dans des nombres petits, un DAC va aller de 32768 à -32767. C'est ce que l'on appelle le complément par 2 pour les 2^16 soit 65536 valeurs possibles.
La méthode usuelle pour convertir un nombre à virgule en entier est de multiplier le nombre en virgule par le max en entier.
+1 fera alors +1*32768 -> 32768 ok. Par contre -1*32768=-32768 valeur qui n'existe pas et donc au mieux saturation sinon on se retrouve avec une valeur positive.
Petite recherche sur le sujet et différentes méthodes : (voir tableau en bas de page)
http://blog.bjornroche.com/2009_12_01_archive.htmlPas si simple les calculs en audio.