TIPE synthese sonore: analyse/resynthese additive par temps fréquence
- 181 réponses
- 10 participants
- 21 051 vues
- 12 followers

abel_b

Voilà, je dois présenter un TIPE sur la synthèse sonore analogique en vue de passer des concours des grandes écoles.
Je voudrais savoir si certains pouvaient m'indiquer des livres (ou site si ça existe) qui approfondissent ce thème (au moins des auteurs).
Ma difficulté est de comprendre le principe de la synthese FM (pas du pt de vue mathematique mais du pt de vue réalisation). En fait j'aimerais savoir si on pouvait me donner de quoi elaborer une simulation de montage qui utiliserait le principe de la FM.
De même je cherche une idée ou quelques conseils pour realiser un montage qui simule une synthèse AM (multiplieur etc...) car je connais bien le principe mais je vois pas quel algorithme appliquer pr avoir des sons semblables à ceux d'instruments de musique par exemple.
Le but final est de faire une experience au labo de physique et de faire une analyse spectrale du signal emis (par exemple le son d'une guitare) et de le comparer au signal qu'on a voulu imiter.
Aussi, je voudrais savoir si qqun pouvait m'indiquer un site où l'on peut trouver l'analyse spectrale de différents instruments de musique (peu importe lesquels)
Merci à vous.

Tututetue

tu coup je cherche une solution du type yn ( x,t)= f(t)sin ( n Pi x /L )
j'introduit cette fonction dans mon équation de propagation , je trouve f(t) , c'est la fonction vu plus haut , que je consideré comme mes "harmoniques"

Les conditions initiales sur la corde (position a l'instant 0 et vitesse a l'instant 0 à me permette alors de déterminer An et Bn ( cn est un coefficient que j'ai posé pour faciliter l'écriture)
Maintenant j'aurais voulu faire le spectrogramme de la vibration de la corde, pour pouvoir la comparer quantitativement avec le spectrogramme de la vibration d'une corde de Mi aigue , pour voir si ma modélisation est correcte ....

Choc

pour chaque partiel passe a une expression de type:
A(t)exp(2*pi*fondamentale*n+phase(n*fondamentale))
le truc au niveau des termes, ne parle pas de spectrogramme, tu as la solution analytique pour le temps frequence, tu n'as pas besoin de faire un spectrogramme...
le spectrogramme tu vas l'utiliser pour commparer la representation temp frequence analitique avec le spectrogramme d'un son enregistré
Citation : pense que c'est important de preciser que ce n'est pas une transformee de Fourier
Oui tout a fait, le terme est pas bon, je parlerai de representation temps frequence. La perso, c'est la representation temps frequence parfaite, (pas d'artefact, reoslution infinie en temps, et en frequence aussi car on a les partiel parfaitement localisés).
tue tue >Le spectrogramme ou wigner ville sont des outils qui permettent d'obtenir une approximation du temps frequence. Le spectrogramme ne te permet pas d'avoir une resolution a la fois infiniement precise en temps et en frequence. Wigner Ville d el'autre coté presente des artefact causé par les cross term.
Citation : Maintenant j'aurais voulu faire le spectrogramme de la vibration de la corde,
tu prend un fichier audio de son de piano a la meme fondamentale, puis tu utilises des outils comme octave ou matlab pour t'afficher le spectrogramme
Site personnel: https://www.enib.fr/~choqueuse/

Tututetue



Choc

mais il y a aura les problemes cités au dessus: Spectrogramme =precision mauvaise, WIgner ville= artefact causé par les cross term
Site personnel: https://www.enib.fr/~choqueuse/

abel_b

Bon j'ai été complètement deçu, le jury n'a pas pris la peine de lire le programme qui était pourtant annoté et il ne m'a posé aucune question là dessus, faisait comme si je n'avais fait aucune application et m'ont cassé les couilles avc des demonstrations du thm de shannon (ce que je ne savais pas faire) et des questions de cours de merde sur les filtres analogiques qui n'avaient aucun rapport avec mon sujet...bref, j'ai pris 6,75 et je suis vraiment dégouté !!! ils avaient l'air de croire que j'avais rien foutu, que j'avais téléchargé ça la veille....
En tous cas je remercie ceux qui m'ont aidé car j'ai appris bcp de choses interessantes.

Pov Gabou

Les questions sur les filtres analogiques, typiquement, ca me parait assez logique dans le cadre du TIPE. J'espere que ca t'a pas degoute, et que tu feras encore un peu de signal plus tard !

Choc

Je sais pas ce que tu en penses Gabou, mais, je sais pas devant qui il a defendu son TIPE, mais l'analyse resynthese, c'est un sujet relativement pointu (y a pas mal de gens qui continue a faire d ela recherche dessus). Deja, peut etre que les gars devant qui tu as presenté n'etait pas signaleux, apres peut etre que si il etait signaleux, ils ne bossaient pas en audio, et meme si ils bossaient en audio, peut etre qu'ils ne bossaient pas sur de l'analyse resynthese
J'en ai discuter avec des gars, y a certain prof qui deteste que les etudiant leur apprenne des trucs, histoire de fierté personnel, peut etre en a tu fais les frais.
En tout cas, perd pas confiance (je te repete que perso j'ai trouvé ca impressionnant), et comme le dis gabou, j'espere que ca t'a donné envoe d'aller plus loin en signal !
Citation : des questions de cours de merde sur les filtres analogiques qui n'avaient aucun rapport avec mon sujet
Voila typique, peut etre que les competence du gars en signal etait surtout orienté vers le filtrage analogique. Ils ont voulus d'envoyer sur leur terrain. Franchement en sortant de prepas, maitriser fourier, le filtrage analogique, le filtrage numerique, le theoreme de shannon, le temps frequence c'est se fouttre royallement le doigts dans l'oeil
dans un contexte de synthese, le filtrage c'ets essentiellement pour la synthese soustractive (c'est pas de l'additive). Shannon, c'ets le theoreme de l'echantillonnage (convertisseur analogique/numerique , numerique analogique, ce qui n'a rien a voir avec le sujet).
Site personnel: https://www.enib.fr/~choqueuse/

abel_b

Non je ne suis pas dégouté dans le sens où j'ai appris beaucoup de choses ici même si je suis encore tres loin de tout maîtriser, mais je le suis dans le sens où j'ai pas mal bossé sur ce sujet et que j'ai pris un beau carton à l'oral. Je m'attendais à ce qu'on me pose des questions sur mon progrmme de simulation : comment j'avais fait, expliquer les algorithmes (car maple est un langage qu'on nous enseigne peu en prépa donc j'ai dû aussi apprendre à mieux programmer) etc...mais non, juste des filtres, écrire des fonctions de transfert de systemes à croire qu'ils en avaient rien à foutre de l'audio : aucune question sur les résultats obtenus (comparaison son original/son synthétisé) n'a été posée...Bref tant pis, je ferai mieux l'an prochain en espérant que le thème des TIPE soit assez sympa car je n'ai pas le droit de faire le meme que cette année...

Anonyme


j'ai eu 14, les meilleures notes étant 20 avec des sujets pourris en plus
bref le TIPE c'est vraiment trop scolaire, ils se rendaient vraiment pas compte du travail fourni, mon son de flûte était super bien modélisé, enfin bon...

batman14

J'avais fait un prog avec des réseaux de neurones pour reconnaitre des caractères manuscrits.
Rien de bien innovant. Mais les profs étaient super cools, et ils avaient adorés l'aspect science cognitive, apprentissage automatique...
Ils m'avaient demandé une démonstration sur la rétropropagation du gradient.
C'était de l'analyse multi dimensionelle, et j'avais trouvé ça dur alors j'avais appris ça par coeur, comme un con.
Mais ça a fait son effet le jour J, et je pense qu'aussi dans ma prépa, on nous avait super bien préparé à l'épreuve.
Je crois que j'avais eu 17, une de mes meilleures notes aux concours !
http://soundcloud.com/bat-manson

pet.delascar

Je lis sur ce forum qu'il existe à parrament des programmes permettant d'analyser les paramètres fréquenciels et d'amplitudes constituant un son pour permettre à un synthé du type additif de restituer une approximation de celui-ci. Hors je n'en connait aucun et avait envie d'en réaliser un plugin vst. Pouriez vous m'informer du nom de ces logiciels, merci.
Régis

batman14

enfin je vois pas pourquoi tu as besoin d'un logiciel dédiée pour faire une analyse temps fréquence, d'autant plus si tu comptes faire un vst...ce qu'il te fau tc'est une bonne librairie.
Regardes le fridays freeware de la semaine dernière, et demande le code source au gars qui l'a fait. Tu sauras dans quoi tu t'aventures un peu plus...
http://soundcloud.com/bat-manson

Anonyme

Tu peux faire tes vst avec..

pet.delascar


Choc

Citation : Aussi je pensais réutiliser des résultats de recherche sur les méthodes hautes résolution
tu penses a MUSIC ? Faut que ton signal soient stationnaire pour ca ?!!
Citation : et l'encodage du type sinusoïdal par modèle EDS (exponential demped sinusoids)
Voir synthèse modale, il utilise comme modele de synthèse la somme de sinusoides avec pour chaque sinusoide une enveloppe exponentielle decroissante
Citation : avec un algorithme de détection des pics par méthodes itératives d'analyse du résidu (signal d'origine - signal de synthèse pour k sinusoïdes)
OK, je te parle pas de methode iterative, mais plutot des modeles de synthèse: additif + modelisation du residu par synthèse soustractive. Voir Serra.X. Musical sound modeling with sinusoids plus noise
(http ://www.iua.upf.es/ xserra/articles/msm/). Musical Signal Processing,
1997.
Site personnel: https://www.enib.fr/~choqueuse/

batman14

Citation :
Aussi je pensais réutiliser des résultats de recherche sur les méthodes hautes résolution
Connais pas.
Pourrais tu préciser un peu ton idée ? je vois pas trop pour le moment.
http://soundcloud.com/bat-manson

pet.delascar

Citation : Y'a deja certains plugs en insert qui analyse ton signal et synthétise avec un certains nombres de sinus ta sortie...mais t'attends pas à un résultat fameux...si tu utilises peu de courbes.
Tu peux me donner le nom du plug stp.
Je vois que choc est un connaisseur, ça fait plaisir...

batman14

Je perds vingt minutes sur kvr pour voir si un nom me flashe en tete.
Puis je me rappelle l'avoir utilisé dans un vieux morceau, y'a un moment.
Comme je sauve tout (un peu parano), je consulte mes sauvegardes de l'année dernière, et en fouillant dans VST plugins je trouve plogue rebuilder.
Description mac music :
Citation :
Ce plugin fait une analyse du spectre sonore qui lui est fourni et le reconstruit en additionnant une large matrice d'oscillateurs de types conventionnels.
Alors c'est un peu ton idée non ?
C que je te présente est vraiment proche de ton idée, mais est mal fait je trouve.
Ensuite faut pas juste faire de l'analyse synthèse, on en fait déjà partout et d'une façon plus "pro". Encore une fois, regarde le code source du plug de la semaine dernière dans fridays freeware. Dedans, ya une analyse synthèse.
Enfin, tu fourmilles ptet d'idées !
Si tu décides de coder ton plug an C++ ou de le faire à partir de Pure data, ou de juce, tu peux m'envoyer un pm, je pourrais ptet te dépanner ou te trouver la bonne personne...
Bonne chance !
http://soundcloud.com/bat-manson

pet.delascar

Citation : Alors c'est un peu ton idée non ?
C que je te présente est vraiment proche de ton idée, mais est mal fait je trouve.
Oui c'est un peu mon idée sauf que là ça sert pas à grand chose à part dénaturer le son, l'intéret de mon plug serait tout simplement d'avoir un synthé du type additif à manipuler pratiquement comme on est habitué à le faire (avec gestion des amplitudes, fréquences, filtres, modulation lfo, etc...) à la différence qu'ici, on pourait d'une part obtenir rapidement un son ressemblant à un son réaliste naturel, et d'autre part manipuler pour faire évoluer la texture sonore, des paramètres comme les fréquences et amplitudes des partiels qui le constituent. J'ai déja la partie analyse (méthode haute résolution + algo itératif d'analyse du résidu) me resterait à réaliser la partie synthèse, en C++ avec le sdk de steinberg. Je ne pourais par contre pas réutiliser un synthé additif basique car je compte opérer sur au plus une soixantaine de partiels. J'ai tout d'abord pensé représenter sur un graphe temps fréquence les trajectoires de ces partiels pour ajuster manuellement leurs paramètres amplitudes et fréquentiels, mais je me rend compte que ça va être dur d'en représenter 60, si quelqu'un a des idées...

batman14

C'est un synthé additif, (bon les partiels sont choisis avec un trigger geiger, masi bon ça on s'en fout).
Pour la lecture :
Pour représenter les harmoniques, pas de problèmes on le lit parfaitement. C'est juste un tableau avec des bars qui sont positionnés en abscisse pour montrer la fréquence, et qui ont la hauteur == le volume de la partielle.
Pour l'édition :
Je connais peu de synth qui fait de l'additif partiel par partiel from scratch. Généralement, on a un algo paramétrique de génération de partielle (toi ce serait les résultats de l'analyse).
Ensuite dans absynth ou dans sytrus, on a la possibilité d'éditer le contenu harmonique de la forme d'ondes qui sera utilisée dans le reste du synthé.
Ce qui te tente toi, c'est de faire un synthé qui charge une forme d'ondes qui analyse le contenu fréquentiel et qui essaye de le représenter ensuite additivement, right ?
Mais tu veux en plus donner des fonctions de contrôles sur le contenu fréquentiel, genre comme un "vibreur" des frequences présentes, en stipulant un écart type...ok.
Ben c'est surtout ça qu'il faut que tu précises, je pense. Quitte à faire un proto en puredata, reaktor ou max/msp.
PS : si tu veux le source d'un additif fait avec le sdk steinberg et JUCE, j'ai ça dans mon chapeau.
http://soundcloud.com/bat-manson

pet.delascar

Citation : PS : si tu veux le source d'un additif fait avec le sdk steinberg et JUCE, j'ai ça dans mon chapeau.
ça me dit bien ça, merci.
Ce à quoi je pensais ressemble beaucoup à ce que dit batman, en plus je pensais, mais ça risque d'être chiant, faire évoluer les harmoniques puisqu'elles évoluent au cours du temps, de la même façon que le son d'origine, ça c'est déja fait pour la partie analyse puisque j'analyse les partiels présents dans le son par trame de 1024 échantillons. Ce qui me reste à définir, c'est comment manipuler ces partiels, je pense à faire par multiplicité, et comment les représenter, je pensais à une analyse en 2D de la trame avec le temps en abscicces. Merci pour vos réponses.

batman14

http://manson.iiens.net/report/audio-report2.html
Tu trouveras un joli rapport en anglais du travail dessus.
Tu cliques dans la colonne de droite pour choper la dll, y'a les sources juste en dessous.
Voili voilou.
Te casse pas trop la tête pour l'instant sur l'aspect visuel, je pense qu'il faut que tu te concentres plus sur les qualités soniques de ta bête. Fais des essais à la main.
Par contre juste une remarque sur le code : il est sur crade pour le moment, on ne multithread pas les calculs...donc pose moi tes questions en pm si t'en as, j'y répondrais au plus vite !
Je ferais ça sur mon temps libre au cours de l'année à venir, mais je pourrais pas débloquer autant de temps qu'avant dessus.
http://soundcloud.com/bat-manson

pet.delascar


batman14

http://soundcloud.com/bat-manson

pet.delascar

J'ai découpé mon son d'entrée par trames de 1024 échantillons, puis multiplié par une fenêtre de hamming pour limiter les effets de bord à l'analyse. Ensuite, analysé pour chaque trame les parametres (frequences, amplitudes et phases) constituant mon son (pour x partiels) avec du Fourier (en récursif). Donc je parviens à resynthétiser normalement mon son en sommant pour chaque trame les partiels à l'aide de la formule:
somme_sur_les_partiels(p) de: Amplitude(p) * cos(frequence(p) n + phase(p))
n étant l'indice d'échantillon.
Le problème se pose si je veux modifier la fréquence du son (par exemple si je la multiplie par 2), j'ai alors un problème à la restitution à cause surement de la phase qui génère pour chaque trame des effets de grain. Je demande donc quelques conseils d'un expert du pitch shifting s'il y en a un dans le coin, j'ai vu qu'il y avait des gens malins ici. Merci (ça m'évitera de lire de la doc)...
- < Liste des sujets
- Charte