Salut,
Ehma a écrit:
Pourquoi veux tu créer des tables d'ondes sur disque.
Surtout si 80% ne seront jamais utilisées.
Oui, cela est vrai dans les notes graves et surtout avec les notes aigues mais je modifierai ma procédure de choix des tables d'onde plus tard.
En fait je veux éviter un calcul de l'onde au lancement du plugin, en admettant que j'opte pour la qualité la plus haute, cela fait 120*4096*(1530 à 1) calcul de données sur 32 bit, je pourrais les intégrer
dans mon module (genre wave-tbl[0]=1.220 etc..) , cela est trop fastidieux.
Pour l'écriture et la lecture des données j'utilise en gros cela :
File*Wavdata(filename,"rb");
fread(&wav_tbl,sizeof(float), table_size*ntbl, Wavdata);
close(Wavdata);
Cela est rapide et consomme peu de ressources.
J'utilise la fonction CreateSharedLookupTable pour que la lookuptable soit commune à tous les modules utilisés par le plugin.
En fait je ne sais pas si avec la SDK de SE on peut sauvegarder des valeurs précalculées, je poserai la question à Jeff.
As tu des notions de Thread ?
Car c'est dans les "OnIdle" que tu dois inclure ta boucle de création et ce en fonction de la taille des buffers demandée par l'application.
euh... non, il y a peut être des limites avec la SDK de SE, j'essayerai de me débrouiller avec. L'idéal serait que l'onde se cacule en tâche de fond.
Mais je crois que cela dépasse mes compétences actuelles.
Je me renseignerai sur le forum de la SDK de SE.
Au niveau des sinusoïde il y a une méthode pour convertir des Sin en addition, ce qui fait gagner en CPU. Je ne m'en souviens plus, mais ça doit éxister sur le web.
Peut être mais dans la mesure où le calcul est nécessaire, je préfère utiliser les fonctions mathématiques cosf(),sinf(), powf().
Je vais créer un module de création de forme d'onde, l'utilisateur pourra créer ses formes en dehors de sa session et le module d'oscillos se contentera de lire les données enregistrées dans le répertoire de la session.
Le calcul consomme trop de ressource pour être fait pendant une session dans cubase (50% de CPU avec un p4 3g hz)
Je suis en train de tester cela en ce moment.
Au début de l'été je ferai un petit plugin de test,
et en fonction des retours je terminerai la version bêta en septembre.
Merci Ehma .
a+
Xavier