Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab

17 mai 2019 : accident de la base de données : plus d'infos

#16 2014-12-02 22:20:30 Re : Newbie Synthese additive

dwan
membre
Date d'inscription: 2011-01-24
Messages: 307

Re: Newbie Synthese additive



et sinon, j'y pense, plutôt que de changer la phase via l'inlet, pourquoi ne pas changer légèrement et momentanément de fréquence ? Ça aurait le même effet, et c'est faisable en audio.

Hors ligne

 

#17 2014-12-02 22:46:54 Re : Newbie Synthese additive

Nicolas Lhommet
membre
Date d'inscription: 2014-01-18
Messages: 194

Re: Newbie Synthese additive



dwan a écrit:

et sinon, j'y pense, plutôt que de changer la phase via l'inlet, pourquoi ne pas changer légèrement et momentanément de fréquence ? Ça aurait le même effet, et c'est faisable en audio.

ah, c'est déjà mieux ! smile et ça sera l'occasion d'entendre un peu d'effet doppler. Par contre, pas forcément évident pour contrôler précisément le déphasage occasionné...

une précision : quand on envoie une valeur dans le second inlet d'un phasor ou d'un osc, la phase est instantanément réinitialisée à la valeur donnée, d'où une "rupture" qui génère un clic (et donc faire varier un objet "nombre" branché dessus ne donnera pas un "déphasage" progressif)
de plus, pour obtenir un décalage de phase de 180 dégrés (par exemple) entre deux osc~ (ou phasor~) il faut envoyer respectivement les valeurs 0 et 0.5 simultanément (si on envoie une valeur à l'un des deux n'importe quand, on n'aura aucun contrôle sur le "rapport de phase")

EDIT : sinon y'a un truc tout bête (et sans utiliser le second inlet smile ) je vous invite à regarder deux secondes E08.phase.mod.pd dans le manuel intégré... on y revient toujours !

Dernière modification par Nicolas Lhommet (2014-12-02 22:58:38)

Hors ligne

 

#18 2014-12-02 23:13:38 Re : Newbie Synthese additive

dwan
membre
Date d'inscription: 2011-01-24
Messages: 307

Re: Newbie Synthese additive



Arf, encore une fois la solution était dans l'aide !

Hors ligne

 

#19 2014-12-02 23:17:34 Re : Newbie Synthese additive

sakramh
membre
Lieu: clichy-sous-bois
Date d'inscription: 2008-12-02
Messages: 829
Site web

Re: Newbie Synthese additive



oui j'y suis revenu en effet . (en fait j'avais déjà essayé çà mais trop vite, sans l'astuce de vérification) http://codelab.fr/up/fazOK.png
le [cos~] de gauche et le [+~] qui suit c'est justement pour vérifier que ... çà marche !! , entre -180° et 180° impeccable et sans bruits cool .

Dernière modification par sakramh (2014-12-03 09:04:34)


le code est l'alchimie de l'âge du silicium

Hors ligne

 

#20 2014-12-04 01:44:01 Re : Newbie Synthese additive

AcousticQuantum
membre
Date d'inscription: 2014-11-25
Messages: 33

Re: Newbie Synthese additive



@ dwan: j'avais regardé sur internet et étais tombé sur une page fort similaire à ce patch d'exemple (http://www.pd-tutorial.com/english/ch03s08.html). roll


Je continue à me creuser la tête et à faire des tests afin de comprendre le fonctionnement de cet fft...
Mais j'ai toujours quelques petites interrogations auxquelles je ne parviens pas à trouver de réponses:

- Quel lien y a-t-il entre le nombre d'échantillons par block (ce qui s'affiche lorsque je fais un print~ sur un osc par exemple) (64 de base) et le nombre de bins obtenus après un rfft? Pourquoi si j'ai + de samples, j'ai une résolution + fine? Pourquoi 64 samples par block de mon signal me donne 64 données dans mon block de rfft, 128 m'en donne 128, etc... ?

- Si je fais un print~ après une rfft (comme sur l'exemple 3-8-1-2 du lien au-dessus), est-ce que le 1er nombre du pack affiché correspond à la valeur de mon 1er bin (le 2e nbre, au 2eme bin, etc...)? ( => j'imagine que oui, mais c'est juste pour être sûr! big_smile)


J'ai d'autres questions, mais qui s'éclaireront sans doute si j'ai la réponse de celles-ci... tongue

En vous remerciant! smile

AQ

Dernière modification par AcousticQuantum (2014-12-04 10:53:50)

Hors ligne

 

#21 2014-12-04 22:53:21 Re : Newbie Synthese additive

dwan
membre
Date d'inscription: 2011-01-24
Messages: 307

Re: Newbie Synthese additive



Sur la fft en général, un article presque compréhensible (du moins le début, en ce qui me concerne) smile  : http://fr.wikipedia.org/wiki/Transforma … cr%C3%A8te

Et pour le reste, la page dont tu donnes l'adresse explique très bien comment récupérer la magnitude de chaque bande !

Hors ligne

 

#22 2014-12-05 00:37:43 Re : Newbie Synthese additive

AcousticQuantum
membre
Date d'inscription: 2014-11-25
Messages: 33

Re: Newbie Synthese additive



Mouais... j'ai déjà lu et relu tous les articles wikis sur Fourier mais bon, j'ai pas compris grand chose à toutes ces formules mathématiques sad

Ce que je voudrais savoir, c'est si je me trompe ou pas lorsque je dis ceci:

- le nombre de bins obtenus après une rfft est égal au nombre d'échantillons par block de mon signal.

=> Si oui, puis-je imaginer utiliser un block~ de 44100 (voir +) afin d'avoir une résolution super fine? J'imagine que oui, mais alors les valeurs de mes bins ne se réactualiseraient que 1 X toutes les secondes (voir +).
=> peut-on yremédier avec l'overlap?

- si block~ == 64    alors    valeur 1er bin == intensité (volume) de ma fréquence 44100/(64*2) Hz
                                           ""     2e bin ==      " "           " "         ""         ""       44100/(64*2) + 1 * 44100/64 Hz
                                           ""      3e bin ==      " "           " "         ""         ""       44100/(64*2) + 2 * 44100/64 Hz
                                           ""      4e bin ==      " "           " "         ""         ""       44100/(64*2) + 3 * 44100/64 Hz
                                          etc...


En tout cas, merci de l'intérêt porté à mes posts et merci pour vos réponses! Je me sens moins seul smile

AQ

Hors ligne

 

#23 2014-12-05 01:33:58 Re : Newbie Synthese additive

Nicolas Lhommet
membre
Date d'inscription: 2014-01-18
Messages: 194

Re: Newbie Synthese additive



MAIS QU'EST-CE QUE C'EST QUE CE BINS ??!!!

Dernière modification par Nicolas Lhommet (2015-02-05 18:10:07)

Hors ligne

 

#24 2014-12-05 03:07:59 Re : Newbie Synthese additive

AcousticQuantum
membre
Date d'inscription: 2014-11-25
Messages: 33

Re: Newbie Synthese additive



Je ne suis point malade, ni fol dingo... je viens juste de très très loin!

Dernière modification par AcousticQuantum (2014-12-05 03:10:50)

Hors ligne

 

#25 2014-12-27 17:24:48 Re : Newbie Synthese additive

AcousticQuantum
membre
Date d'inscription: 2014-11-25
Messages: 33

Re: Newbie Synthese additive



Bonjour à tous!

Je viens de franchir un premier cap dans mon projet de synthèse-resynthèse! cool

Voici donc un premier patch. J'ai créé un petit synthé additif. On peut choisir sa fondamentale et un bouton permet de varier ses harmoniques (et donc le timbre) de manière aléatoire. Enfin, un tableau affiche l'onde obtenue. Le signal est ensuite analysé (par fft) et un second tableau affiche son contenu spectral. Ces valeurs sont ensuite réutilisée dans un nouveau synthé additif qui recrée le son original. Un interrupteur permet de basculer du son original à sa resynthèse.

Le premier patch utilise un système de patch dynamique afin de créer le second synthé additif.
Le deuxième utilise l'outil "sinesum" à la place.

Et ça fonctionne relativement bien!

Mais j'ai néanmoins quelques petits soucis:

- Pour certaines fréquences pures (comme 440 Hz et ses multiples dans mon patch), l'analyse spectral d'un signal sinusoïdale me donne un résultat se rapprochant d'un signal en dent de scie.

- Il faut laisser plusieurs secondes au programme afin qu'il puisse recalculer correctement les harmoniques du son. Il ne fonctionne donc pas en temps réel.

- Il est limité aux "sons musicaux", c-à-d aux signaux dont les partiales ne sont QUE des multiples de la fondamentale. On oublie donc les sons percussifs, ambiants ou la voix.


J'ai regardé plusieurs vidéos de conférence de Miller Puckette sur le net, et j'ai plusieurs fois remarqué qu'il présentait un même patch se rapprochant de ce que j'essaye de faire ( http://vimeo.com/39432325 à partir de 13'15).
Sauf que j'ai l'impression que le sien fonctionne en temps réel et qu'il parvient à analyser TOUT type de son!
Quelqu'un a-t-il une idée de la méthode utilisée par Dieu?


Sinon, au cas ou quelqu'un se poserait un jour les mêmes questions que moi précédemment et tomberait durant sa quête de réponses sur ce forum, voici ce que j'ai finalement découvert...

Lorsqu'un signal est analysé par fft dans pure data, le nombre de bandes de fréquence (les bins) est défini par le nombre de block. Plus sa valeur sera grande, plus la "résolution" sera fine, mais plus le temps de "réactualisation" des données sera grande.

J'ai cru pendant longtemps que la valeur précise de la fréquence d'une bande était la valeur du milieu de la bande, par exemple:

si block~ == 64    alors    valeur 1er bin == intensité (volume) de ma fréquence 44100/(64*2) Hz
et SR == 44100                   ""     2e bin ==      " "           " "         ""         ""       44100/(64*2) + 1 * 44100/64
                                          ""     3e bin ==      " "           " "         ""         ""       44100/(64*2) + 2 * 44100/64
                                          ""     4e bin ==      " "           " "         ""         ""       44100/(64*2) + 3 * 44100/64
                                       etc...

JE ME TROMPAIS!

En réalité, c'est beaucoup plus simple: le 1er bin correspond à la fréquence 0 Hz (je pense).
                                                        le 2e bin correspond à la fréquence 1*44100/64
                                                        le 3e bin correspond à la fréquence 2*44100/64 
                                                        le 4e bin correspond à la fréquence 3*44100/64
                                                        etc...

A noté que seul la moitié du nombre de bins sont nécessaires à recouvrir le spectre audible par l'oreille humaine.
pour block~==64 on obtiendra un spectre avec 32 bandes de fréquence.



Ceci signifie donc que:

- Seul un signal de type "son sonore" dont la fondamentale == 44100/64 Hz pourra être resynthétisé de manière correcte.

- Ce même signal ne nécessite que 32 harmoniques pour atteindre un résultat dont la perception sera identique (au delà, les harmoniques sont inutiles car supérieur à 20000 Hz).



C'est de ces observations que découle le principe fonctionnement de mon patch:

- En premier lieu je cherche à retrouver la fondamentale du signal (F0).
- Ensuite, à partir de ma fondamentale, je calcule le nombre d'harmoniques nécessaires.
- Ensuite, je définis que le nombre de bloc nécessaire pour mon analyse == le nombre d'harmoniques nécessaires * 2.
- Ensuite, je définis le SampleRate == le nombre de blocks * F0.
- Enfin, je récupère les valeurs de chaque block et resynthétise mon signal.



Voilà! J'aimerais avoir vos avis, commentaires, suggestions, critiques concernant mes patchs. Je cherche à être plus efficace, à faire mieux de manière plus simple. N'hésité pas! Et si vous avez une idée concernant le patch de Miller Puckette, faites tourner svp big_smile

J'aimerais continuer à améliorer ce patch. Je vais tenter d'importer plusieurs signaux (de type "sons sonores" au début - style note de divers instruments) et de permettre de passer de l'un à l'autre en morphing.


Bon patching et bonnes fêtes de fin d'année a tous!

AQ

Dernière modification par AcousticQuantum (2014-12-27 17:29:45)

Hors ligne

 

#26 2014-12-27 22:18:02 Re : Newbie Synthese additive

Nicolas Lhommet
membre
Date d'inscription: 2014-01-18
Messages: 194

Re: Newbie Synthese additive



AQ, à un moment quand je changeais de fréquences, ça m'a fait des sortes de glissandi exactement comme la sirène du générique de l'Homme de Fer ( http://youtu.be/zGfnoORaC2c ) smile Je sais pas ce qui cloche mais j'aime bien ce côté instable de ton patch, qui s'auto-analyse régulièrement...

Par contre, il semblerait que tu n'as toujours pas lu le manuel (intégré) de Pd, de la première à la dernière page ?!  sad c'est très mal!! et surtout tu as raté le patch "14.partialtracer.pd" du chapitre 4, et aussi quelques autres du même acabit.... tant pis pour toi !
Après, histoire d'éviter de tomber dans des pièges de base, tu pourrais essayer de parfaire tes connaissances théoriques sur la question, déjà avec "The Theory and Technique of Electronic Music" de Miller Puckette http://msp.ucsd.edu/techniques.htm qui approfondit et reprend les exemples du manuel, et son chapitre 9 : "Fourier analysis and resynthesis".

Pour ton Noël, je t'offre une sélection de liens et d'ouvrages de qualité, tout à fait susceptibles de t'intéresser smile :
http://matthieu-brucher.developpez.com/ … /algo/fft/
http://www.pd-tutorial.com/english/ch03s08.html
http://en.wikipedia.org/wiki/Additive_synthesis
http://tinyurl.com/Analysis-Synthesis-Book-pdf
http://www.klingbeil.com/data/Klingbeil … on_web.pdf

(edit: j'ai complété et mis à jour les liens)

Dernière modification par Nicolas Lhommet (2015-02-05 15:36:31)

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2020