Catégorie parente : 'Techniques du Son'   Forum Synthèse Sonore
Demande info sur l'implementation des oscillateurs numeriques (perf catastrophique)
[ Synthèse Sonore ]
Page : 1
Retour à l'index du forum
 Configurer le forum Lire la charte des forums Répondre à ce post
Auteurs
Messages
Choc Compos!

Modérateur ThématiqueModérateur Thématique

6986 messages
1 Posté le 20/01/2005 à 12:19

Salut, 
 
Bon j'explique mon probleme....Je bose sur analyseur resynthetiseur additif... 
La partie analyse fonctionne bien et dans des temps correcte... 
 
Par contre la resynthese c'est une horreur (en perf)...  
 
 
Voila je possede une liste de partiels avec leur date de naissance et de mort, chaque partiel bouge en frequence est en amplitude....Les informations concernant la mise a jour des frequence et de l' amplitude sont donné a une frequence F1....largement superieure a la frequence d'echantillonnage Fe... 
 
Pour generer un partiel, a present je fesais ca... 
 
J'interpolle la liste des frequence echantillonnés à F1 vers la frequence Fe...(type reechantillonnage classique )....je fais la meme chose pour les amplitudes.....et puis je generer le partiel....x=A_interpolle*cos(2pi*f_interpolle*n/Fe+phase_init) 
 
Et bien en terme de performances sonore ca va, mais les calculs sont horriblement long  
 
-J'ai entendu parler de certaines techniques comme la mise a jour des informations frequnetielle et de l'amplitude de l'oscillateur tous les 100 echantillons (borne max)  
-J'ai egalement entendu parler de reechantillonnage par spline  
 
 
Je remercie d'avance toute personne qui pourra me filer un coup de main ou des idée (et les autres aussi ) ...

Sound synthesis, My Space
guitoo Détail de la configuration informatique

Chef Sioux du SonChef Sioux du Son

513 messages
2 Posté le 20/01/2005 à 12:26

Il faut faut utiliser un algo iteratif. 
 
s[0]= a cos(phi_0) 
s[1] = a cos(phi_0+delta_phi) 
C = 2cos(delta_phi) 
s[n+1] = C.s[n]-s[n-1] 
 
delta_phi = 2 pi f / Fe 
 
de cette maniere tu ne caclule que 2 cosinus par partiel 
et tu fait une addition et une multiplication par echantillon et par partiel
Choc Compos!

Modérateur ThématiqueModérateur Thématique

6986 messages
3 Posté le 20/01/2005 à 12:32

Merci  
Ca donne quoi lorsque f varie dans le temps La formule est elle encore applicable (ou bien customisable)

Sound synthesis, My Space
guitoo Détail de la configuration informatique

Chef Sioux du SonChef Sioux du Son

513 messages
4 Posté le 20/01/2005 à 12:40

Si tu veut faire varier f dans le temps. ça ne pose pas de probleme. il suffit de recalculer delta_phi. 
 
pour avoir les meilleures performances possible il faut toujours essayer de limter les cos et /. 
 
tu calcule une fois pour toute 2 pi/F et a chaque fois que tu change la frequence de ton partiel tu rajoute une multiplication mais aussi un cosinus. Il ya peut etre un moyen de s'en passer.(si ta frequence est piloté par une autre oscillateur par exemple) 
 
Si la variation de frequence est modifié par l'utilisateur ce n'es pas la peine a mon avis de mettre a jour delta phi pour chaque echantillon. Si elle evolue selon une fonction bien precise regarde si tu ne peux pas mathematiquement la simplfier ou l'aprocher avec de la synthese AM ou FM.
Choc Compos!

Modérateur ThématiqueModérateur Thématique

6986 messages
5 Posté le 20/01/2005 à 12:50

Merci  
 
Citation :
tu calcule une fois pour toute 2 pi/F et a chaque fois que tu change la frequence de ton partiel
 
 
Le truc c'est que la frequence de reception des amplitudes et des frequences est tres tres rapide (periode 100 echantillons) 
 
Citation :
si ta frequence est piloté par une autre oscillateur par exemple
 
 
Les frequences n'evolues pas de facon periodique, donc c'est un peu mort. 
 
 
Je vais essayer d'implementer ce que tu m'as dit

Sound synthesis, My Space
guitoo Détail de la configuration informatique

Chef Sioux du SonChef Sioux du Son

513 messages
6 Posté le 20/01/2005 à 16:49

Je crois que j'ai ecris une betise. si on fai varier la frequence en fonction du temps il faut recaluler le terme s[n-1].
Retour à l'index du forum
 Configurer le forum Lire la charte des forums Répondre à ce post
Page : 1