Code : Tout sélectionner
$v = &echantillon_audio();
$out = $v >= $err ? 127 : -127;
$err += ($out - $v)/$DAMP;
&sortir($out>0 ? 1 : 0);
Je ne sais pas si l'émulateur est le meilleur outil pour évaluer la qualité audio: J'entends fort un sifflement continue indépendant de la musique quand DAMP est petit.
Ca me semble logique car a la base pour faire un signal constant à 50% de volume, le code va produire une alternance de 0/1. D'où le sifflement. En principe ce sifflement a une fréquence voisine de 31.25khz (moitié de la période du player), donc largement au dessus de la fréquence de coupure à 22khz. Mais comme l’émulateur marche en échantillonné il y a repliement du spectre. Le sifflement à 31.25khz est envoyé sur 22khz - (31.25-22Khz) = 12khz. Ca s'entend bien! (sur émulateur). Je pense que sur machine réelle le sifflement est fortement atténué.
Quand DAMP est petit, le système réagit plus vite aux changements de fréquences et si on oublie le sifflement, la qualité du son doit être très bonne.
A l'inverse quand DAMP est grand, on entendre de moins en moins le sifflement, mais on perd en qualité. Des distorsions se feront entendre.
Le truc est de trouver un DAMP convenable. Comme je ne fais pas confiance à l'émulateur à cause du repliement, Il faut entendre sur machine réelle. Voici des fichiers de test: http://www.cjoint.com/doc/15_08/EHztWOZhucM_CCR.zip Lequel ressort le mieux selon toi Daniel ?
[EDIT] A priori sur l'émulateur DAMP=16 convient pour avoir un son très correct. Voici quelques morceaux: http://www.cjoint.com/doc/15_08/EHzuXIg1CCM_PWM.zip