Pour pouvoir travailler sur les données 16 bits, par exemple pour modifier le volume du sample, ou le mixer avec un autre, etc... les données 16 bits signées doivent-être converties en données 16 bits non-signées avant le traitement, puis reconverties en données signées après le traitement afin d'être prêtes à la lecture. Voici donc la méthode que j'utilise pour transformer une donnée 16 bits signée en non-signée. La variable nommée "donnée" est du type Integer (avec Delphi) ou Longint (avec TP):
Voici l'opération de conversion (signée -> non-signée):
donnee:=donnee-$8000;
IF(donnee<0)THEN donnee:=donnee+$10000;
Voici l'opération inverse (non-signée -> signée):
donnee:=donnee+$8000;
IF(donnee>=$10000)THEN donnee:=donnee-$10000;
Partager