Se connecter
Se connecter

ou
Créer un compte

ou

Sujet Le morphing, comment ça marche ? (essais peu concluants :( )

  • 16 réponses
  • 3 participants
  • 2 262 vues
  • 4 followers
Sujet de la discussion Le morphing, comment ça marche ? (essais peu concluants :( )
Bonjour à tous !

Du fait qu'il traine dans le coin quelques grands gourous de la synthése sonore et des traitement mathématiques complexes, je me permet de les importuner.

Je me suis un jour posé la question des algorithmes de morphing en audio. Et comme j'ai pas toute ma raison je me suis décidé à en programmer un :oo:
Je pensais que le morphing s'apparentait au passage entre deux ondes sonores connues, donc j'ai essayé faire une sorte d'interpolation lineaire et progressive entre deux courbes.

Le programme obtenu est ici
(click droit et enregistrer sous. il faut mettre des fichiers "depart.wav" et "arrivee.wav" dans le même dossier en format mono 11025 KHz 8bits et il crée "resultat.wav" le morphing en 10 passage entre les deux fichiers de départ)

Cependant cela ne me parait pas être la bonne solution car le resultat ressemble à un vulgaire fading entre les deux sources :
une onde sinusoïdale -> onde rectangulaire
une tenue d'un ensemble de cuivre -> une autre tenue
loop de batterie -> voix
bruit blanc -> phrase de sax

Donc en gros je viens de reinventer le sommateur numérique :(((

Ne me décourageant pas, j'ai cherché des doc sur internet et j'ai lu qu'en fait on cherchait à faire une sorte de fading spectral pour un certain nombre de fréquence (un peu comme un vocoder). Est-ce bien cela ? Si c'est le cas, comment détermine-t-on les fréquences de morphage ? et en quelle quantité les reinjecter dans les sons originaux ? Y-a-t'il d'autres solution pour obtenir l'effet de morphing (comme dans les impressionnantes demos du PROSONIQ morph)?

Merci d'avance pour vos réponses.
2
Bon, apparemment je ne déchaine pas les foules en voulant comprendre les principes du morphing audio ... Tant pis :(( Je survivrai ... :clin:
Peut-être que le post est dans une mauvaise catégorie ?
3
Je ne sais pas trop à quoi correspond l'effet de morphing que tu cherches... En tout cas ce que je sais, c'est que la technique de morphing que tu as testée peut facilement être appliquée dans le domaine fréquentiel plutôt que dans le domaine temporel comme tu l'as fait... Il suffit d'utiliser un outil qui s'appelle la FFT (Fast Fourier Transform).

Le principe est le suivant : tu as un signal décrit par N échantillons (par exemple 1024 avec une fréquence d'échantillonnage de 44.1 kHz, ce qui fait un signal de 23 ms). En lui appliquant une FFT, tu obtiens un signal de N échantillons complexes qui décrit cette fois la réponse fréquentielle complète du signal, son amplitude pour chaque fréquence et sa phase. Ensuite tu lui appliques un traitement quelconque, tu fais ce qu'on appelle une FFT inverse pour revenir sur du temporel et voilà :mrg:

Ton algo je pense que tu peux l'utiliser tel quel dans le domaine fréquentiel, ça devrait produire un effet intéressant, il faut juste ne pas oublier qu'on a des nombres complexes...

Tu utilises quoi d'ailleurs pour programmer ? Sur Matlab ou Max/MSP il y a des routines de FFT. Sinon, en C++ par exemple, il faut utiliser des librairies comme la FFTW ou FFTReal de Laurent de Soras :clin:

Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape

4
Le plus simple c'ets le fade in /fade out, mais c'ets aussi le moins interessant. On pourrait appeler ca, morphing temporel

En regle general, la technique de morphing va dependre de tes sources

Par exemple si tu as deux sons qui sont un peu pres harmoniques. Tu peux faire de l'interpolation via analyse resynthese additive (c'est le principe du cube 2 ou du cameleon)

On recherche les partiels des deux sons, et ensuite chaque partiel d'un son peut suivre le partiel de l'autre son...c'est assez complexe. On pourrait appeler ca morphing timbral

Pour le coup bruit blanc vers cuivre, le plus sympa c'ets la synthese soutractive, tu essayes de modeliser ton cuivre par une source bruit + filtre (voir filtrage autoregressif pour avoir les coef du filtre)...Ensuite il doit avoir moyen de faire apparaitre le son de cuivre en jouant sur les coef du filtre. IOn pourrait appeler ca morphing soustractif

Ya aussi d'autres techniques qui existent, j'aime beaucoup la granulaire couplé a des algorithmes statistiques. Le principe c'est de chopper des micro grains des deux sons. Ensuite tu affectes une lois de probabilité pour calibrer quel grain va etre choisi. Avec une probabilité de 0 seul les grains du premiers sons vont etre choisis, avec une proba de 1, seul les grains du second sons vont etre choisis...avec une proba de 0.5, ca va te donner un melange de grains du premiere son et du second son. On pourrait appeler ca, morphing granulaire Esthetiquement, j'aime beaucoup cette technique :coucou:
5
Merci pour vos réponses ! :bravo:

Je ne connaissait pas la FFT, seulement la transformée de fourier classique. J'ai récupéré FFTW et je suis en train d'essayer de réutiliser l'algorithme que j'ai fait pour l'appliquer au domaine fréquentiel. Je vous tiens au courant.

Citation : Tu utilises quoi d'ailleurs pour programmer ?


C/C++ car j'aime bien maitriser un maximum de chose. Le gros désavantage c'est qu'on se crée des problémes en plus au niveau programmation (surtout pour les nombres complexes et autres structures hybrides) mais c'est le prix à payer :clin:

Je ne savais pas qu'il existait autant de différentes façon de faire un morphing entre deux sons ! Pour l'instant je vais me concentrer sur la méthode par analyse et synthése, mais le morphing granulaire m'interesse beaucoup aussi. Par contre pour programmer une analyse de grains, suffit-il de découper le son en mini-échantillons de durée fixe ou il faut rechercher des signaux périodiques ? (genre quand l'onde repasse par 0)

En tout cas merci encore ! De nombreuses questions viennent de trouver leurs réponses ...
6

Citation : Par contre pour programmer une analyse de grains, suffit-il de découper le son en mini-échantillons de durée fixe ou il faut rechercher des signaux périodiques ?



T'as juste a chopper des grains sonores d'une certaines tailles. Pour eviter les click, il faut leur appliquer des enveloppes d'amplitude (genre qui commence a 0 qui monte a 1 et qui retermine a 0).
7

Hors sujet : Au fait Choc, tu viens au salon de la musique du 9 au 12 Septembre à Paname :mrg:

Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape

8

Hors sujet : :coucou:

Ouaih, je file un petit cours en synthese au SMS :boire:

9

Hors sujet :

Citation : Ouaih, je file un petit cours en synthese au SMS


C'est-à-dire ?

Bon ben on se verra, et cette fois tu as intérêt à ne pas râter la présentation de Torpedo :mrg: (surtout que ça sera sur du hardware !)

Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape

10

Hors sujet : yes :boire:

sur le stand AF, je vais faire une petite intro a la synthese, powerpoint, patch maxmsp, etc