Améliorer un peu la consommation CPU d'un plug.
- 73 réponses
- 6 participants
- 3 171 vues
- 5 followers
Nyl auster
je suis toujours sur mon plug d'orgue virtuels. s'il contient des sons d'orgues parfaitement classique, dont certains fortement inspirés des doors, j'ai aussi voulu incorporé la possibilité de bien triturer le son, notamment il y a pas mal de filtre (et de LFO pour les controler), ceci afin d'obtenir des nuances et variations dans le son (en sus du vibrato ou tremolo), pour briser le côté linéraire des oscillos..
tout ça commence à prendre un peu trop de CPU (je dois être à 20% si j'ajoute la disto au plug), alors si quelqu'un est expérimenté dans ce genre de VST et connait un ou deux tuyaux pour alléger la consommation du CPU...
fractalogism
Les plugins conçus avec SynthEdit ont tendance à consommer du CPU.
Je pense que c'est une affaire de compromis :
La polyphonie est un des paramètres qui influent le plus sur la charge CPU. Le mieux est de la limiter à 8 voies, par exemple.
Après, plus l'architecture est complexe, plus il y a de modulations, et plus la consommation en ressources processeur est importante. On ne peut pas grand chose à ce niveau-là.
Sinon, il vaut mieux limiter la longueur du "release time" dans les enveloppes, car cela sollicite beaucoup la polyphonie.
En même temps, 20% du CPU, ça me semble encore raisonnable, enfin ça dépend de la puissance du processeur. Sur le plugin que je suis entrain de développer, la consommation peut grimper jusqu'à 45% de mon Pentium 4 2.6 GHz .
Le mieux est de concevoir plusieurs versions de plugin : une version "light", avec une polyphonie limitée, pour ceux qui ont un PC lent, et une version plus débridée pour ceux qui disposent d'un PC puissant.
Et aussi, il faut faire attention aux modules externes, toujours placer le module "denormal cleaner" en sortie, pour éviter les pics de consommation CPU.
Nyl auster
Citation : Sur le plugin que je suis entrain de développer, la consommation peut grimper jusqu'à 45% de mon Pentium 4 2.6 GHz .
j'y viens, j'y viens, je suis passé à 30% et j'ai encore besoin de rajouter des éléments.
la polyphonie je la limite à 6 (7 si je compte que j'ai splitté le clavier pour réservé les touches graves à une "basse" mono).
Citation : Le mieux est de concevoir plusieurs versions de plugin : une version "light", avec une polyphonie limitée, pour ceux qui ont un PC lent, et une version plus débridée pour ceux qui disposent d'un PC puissant.
Et aussi, il faut faire attention aux modules externes, toujours placer le module "denormal cleaner" en sortie, pour éviter les pics de consommation CPU.
merci beaucoup pour ces conseils. le denormal cleaner, je l'avais peut être lu dans le fichier d'aide, mais j'avoue que j'avais complètement oublié dans ce cas.
modules externes: tu entends quoi excatement par là? les modules qu'on peut télécharger sur internet?
fractalogism
Citation : modules externes: tu entends quoi excatement par là? les modules qu'on peut télécharger sur internet?
Oui, les modules .sem/.sep que l'on peut trouver un peu partout.
Certains modules (les filtres de Dave Haupt par ex) sont déjà traités contre la dénormalisation.
Mais par précaution, je préfère utiliser le "denormal cleaner" à chaque fois que j'utilise un module téléchargé.
Nyl auster
Nyl auster
la première c'est tout con mais ça m'éneeeeeeeeeerve!
en fait avec le module "midi filter", j'ai splitté mon clavier; je dispose ainsi de deux sons sur mon clavier: l'un étant dédié aux basses. bref j'ai deux synthé au lieu d'un sur mon écran.
il me faudrait donc un "patch select" pour chacun d'eux, pour pouvoir choisir dans le panel le son de chacun des synthés.
or, si je mes deux "patch select", il change en même temps/ par exemple, si je mets le premier sur "son d'orgue", le deuxième se met également sur son d'orgue. j'ai cru que la solution passait par le choix des canaux midi pour chaque synthé, mais ça n'a rien changé...
je peux changer le son indépendamment en cliquant directement sur l'écran du container, mais une fois exporté en VST, cette solution ne sera bien sur plus viable...
bref si quelqu'un peut m'aider...
BellesOndes
Exemple de patch:
VCO->ADSR(VCA)->LFO(VCA)
Si tu utilises le lfo comme modulation d'ampltude, en montage classique lorsque tu joues un accord le patch est dupliqué:
do: VCO->ADSR(VCA)->LFO(VCA)|
mi: VCO->ADSR(VCA)->LFO(VCA)+->OUT
sol: VCO->ADSR(VCA)->LFO(VCA)|
C'est nul car tu as un LFO qui est triplé alors qu'il suffirati d'avoir:
do: VCO->ADSR(VCA)|
mi: VCO->ADSR(VCA)+->LFO(VCA)->OUT
sol: VCO->ADSR(VCA)|
Il faut donc bien définir quelles parties de tes patchs est dupliquable ou non en polyphonie. Souvent, plein de parties sont dupliquées alors qu'elles ne le doivent pas. Bon Son
http://www.bellesondes.fr
Nyl auster
merci!
BellesOndes
Sinon, pour faire un orgue, essaie des génés moins gourmands que le VCO standard de SE genre un quicksine ou autres, beaucoup plus légers (a condition de ne pas vouloir de fm ou autre, bien sur...)
Sinon apres c'est de l'optimisation et c'est ca qui bouffe le plus. Penser à regrouper les VCA quand on en cascade plusieurs en chaine avec des controles différents, etc...
Souvent avec SE, programmer une bonne idée prends 2 minutes, l'optimisation 2 à 3 semaines
http://www.bellesondes.fr
Nyl auster
en plus de ça mon orgue fait maintenant 50% du CPU, j'ai voulu rajouter trop de trucs inutiles, il faut que je recible sur un plug exclusivement réserver au son des doors qui m'intéresse...
m
mais heu comme je suis un peu idiot en plus d'être neophyte en MAO et pitoyable avec synhtEdit...
comment je fais pour pas dupliquer le LFO
il suffit que je le mette en dehors du container, juste avant le "sound out" ou bien il faut utiliser un autre moyen?
BellesOndes
OU
Tu mets le midi to CV dans un sous-container et seulement ce container sera dupliqué.
La seconde option est mieux
C'est précisé dans l'aide de SE (RTFM!!!
http://www.bellesondes.fr
Nyl auster
à ma décharge, je suis tout nouveau dans le domaine de la synthese sonore, y'a pas 2 semaines, je savais pas ce qu'était un LFO
j'essaierais la seconde option pour voir la différence de CPU.
BellesOndes
Moi le LFO j'essaie d'en faire un sur un synthé analogique fait maison en ce moment... ca marche presque!
https://fr.audiofanzine.com/apprendre/mailing_forums/index%2Cidtopic%2C106123%2Cpage%2C10000.html
http://www.bellesondes.fr
Nyl auster
'tain ça me ferait bien poiler de faire un petit synthé hardawre pour déconner.je serais curieux de voir comment sonne le tien...
BellesOndes
Citation : Tu mets le midi to CV dans un sous-container et seulement ce container sera dupliqué.
Je me gourre royal! faut surtout pas faire ca
http://www.bellesondes.fr
Nyl auster
fractalogism
(j'ai pris l'exemple d'un poly de base)

C'est comme ça que je procède et ça consomme peu de ressources. Si je me gourre, n'hésitez pas à corriger !
Nyl auster
merci pour le schéma très clair fractalogism
BellesOndes
Le schéma donnerai cela:

Voila!
http://www.bellesondes.fr
Anonyme
Vous devriez aller faire un tour sur la page SDK du site de Synthedit, vous y trouverez pas mal d'infos sur la gestion de la polyphonie de SE.
Il faut savoir que si vous ne reliez pas directement ou indirectement un module au Midi-Cv , celui-ci reste monophonique.
par exemple :
1- lfo mono
Lfo>Level adj>osc
------ | -------
Gate>ADSR
2 Lfo poly
Level adj>Lfo>Level adj>osc
----- | ---------- |-------
Gate>ADSR Gate>ADSR
L'exemple 2 corespond au cas de figure où vous voulez contrôler le pitch du Lfo par un générateur d'enveloppe.
Dans ce cas il faut effectivement mettre le lfo dans un container à part en récupérant le gate du container polyphonique.
La deuxième chose importante à connaître est que si vous désactivez l'entrée midi d'un container, celui-ci sera "off", donc à 0% de CPU.
Xavier
Anonyme
tel élément peut accueillir tel autre dans telle entrée etc....vos schémas sont des complémentaires essentiels a cette réflexion la.
merci encore, le forum a besoin de gens comme vous.
pendant que j´y suis : j´ai pas mal galéré pour obtenir la syncro entre deux VCO, pourrriez vous intégrer cet aspect dans un schéma ? je me sens pas trop de le faire moi-même!
BellesOndes
Citation : La deuxième chose importante à connaître est que si vous désactivez l'entrée midi d'un container, celui-ci sera "off", donc à 0% de CPU.
La je te suis pas trop... les containers n'ont pas tous par défaut une entrée midi, non? si tu pouvais préciser un poil ca le ferait merci.
Sobo: la sync c'est facile tu prends la sortie de l'osc maitre et tu le cable sur l'entrée sync de l'osc esclave et hop gagné!
http://www.bellesondes.fr
Anonyme
Hors sujet : site actualisé (du nouveau encore a venir...). ton site figure en bonne place parmi les liens!
fractalogism
Citation : La deuxième chose importante à connaître est que si vous désactivez l'entrée midi d'un container, celui-ci sera "off", donc à 0% de CPU.
Tu veux dire en utilisant un module qui désactive le signal MIDI vers un container ?
ça m'intéresse car je souhaiterais mettre un bouton "panic" qui coupe tout en cas de saturation CPU* dans mon futur synthé
Hors sujet : * Saturation CPU, car dans certains cas de figure, uniquement lorsque je module la coupure d'un filtre (avec beaucoup de résonnance) par un oscillateur (à fréquence très élevée, un VCO voire un LFO dans les hautes freq), il arrive que la consommation CPU explose au point de geler le déplacement de la souris et de faire planter synthedit... A croire que les filtres ne sont pas conçus pour être modulés par des signaux à haute fréquences, ce qui est dommage, car cette modulation peut donner un effet sympa qui ressemble un peu à un bit-crusher...
BellesOndes
En fait, quand tu changes soit la fréquence soit la résonance de ton filtre, le module doit recalculer le nouveau filtre numérique (et oui on est en numérique) avant de pouvoir filtrer ton son.
Et si tu utilises une modulation haute fréquence alors le filtre change tout le temps et le plug s'emballe. Je viens de faire des essais c'est axxez curieux en effet!
Donc il vaut mieux éviter l'hyper modulation et rester sur de petits lfos... ;) du moins pour garder du cpu.
Et si tu veux vraiment faire de la mod hyper rapide de résonance: ben faut optimiser donc programmation C++ et fait toi ton VST à la main!!
http://www.bellesondes.fr
- < Liste des sujets
- Charte