J'écris un synthétiseur logiciel et j'ai besoin de générer des formes d'onde sans alias, limitées en bande, en temps réel à 44,1 kHz. La forme d'onde en dent de scie ferait pour l'instant, puisque je peux générer une onde de pouls en mélangeant deux dents de scie ensemble, une inversée et déphasée.Génération de formes d'ondes avec limitation de fréquence
Jusqu'à présent, j'ai essayé les approches suivantes:
précalcul un cycle d'échantillons de forme d'onde parfaitement à différentes fréquences à bande limitée de bandlimit au démarrage, puis la lecture des deux plus proches mélangés. Ça marche, je suppose, mais ça ne me semble pas très élégant. Beaucoup d'échantillons sont nécessaires ou les «trous» entre eux seront entendus. L'interpolation et le mélange sont également très sollicités par le processeur.
Intégration d'un train d'impulsions sinc compensées en courant continu pour obtenir une onde en dents de scie. Cela sonne bien sauf que la vague dérive de zéro si vous n'obtenez pas exactement la compensation DC (ce que j'ai trouvé très difficile). Le problème de CC peut être réduit en ajoutant un peu de fuite à l'intégrateur, mais alors vous perdez les basses fréquences.
Alors, ma question est: Quelle est la façon habituelle de faire cela? Toute solution proposée doit être efficace en termes de CPU, car elle doit être faite en temps réel, pour plusieurs voix à la fois.
Je me rends compte que cela a été demandé il y a un an, mais pour quelqu'un d'autre qui trébuche sur ce point, je vais recommander la recherche amicale et hautement compétente [DSP et Plug-in Development] (http://www.kvraudio.com/ forum/viewforum.php? f = 33) forum à [KVR] (http://www.kvraudio.com/) –