14Fermer16
ZerosquareLe 06/08/2019 à 03:56
Ah mais c'est certain ^^

J'ai jeté un coup d'œil pour vérifier que je ne disais pas de bêtises à Godzil. Voilà ce que j'obtiens :


C'est une implémentation ultra-minimale : tous les oscillateurs sont de simples sinus, et seul le réglage de la fréquence est géré. Le générateur d'amplitude est un truc ultra-basique et fixe, qui fait une rampe linéaire de volume de 5 ms au début et à la fin de la note. Avec ça plus la méthode évoquée plus haut, il n'y a pas de craquements. Il n'y a même pas besoin de s'embêter à gérer la phase, on peut laisser les oscillateurs tourner en permanence.

Le code :
http://www.mirari.fr/a05y

C'est moche, ultra pas optimisé et il y a au moins deux astuces absolument honteuses. Donc à ne pas prendre en exemple grin

PS : les timings et fréquences donnés dans les pages citées par Godzil ne sont pas bons. J'ai recalculé en me basant sur le fait que la démo est à 114 BPM et que les fréquences des notes sont celles de la gamme habituelle (avec un la à 440 Hz). En vrai ce sont des sous-multiples de la fréquence de base du quartz, mais j'ai pas trouvé de valeur qui tombe vraiment juste ; c'est proche de 12 MHz / 65 et 12 MHz / 215, mais ce sont des diviseurs un peu étranges (bien que ça reste possible).