< Back to IRCAM Forum

Analyse des partiels

Bonjour à tous,

Essayant de faire une analyse de partiels comme décrite dans le bouquin de Dominic Garant qui analyse l’oeuvre L’esprit des dunes de Murail, mon mac n’en fini pas de calculer et je suis obligé de tuer tous les processus…Est-on obligé de se limiter à de très petits fichiers sons pour faire ce genre d’analyse ?

Antoine Escudier

Bonjour Antoine,

Oui, je vous conseille d’utiliser des fichiers plus court.
La lecture et la création des partiels à partir du fichier SDIF généré par Pm2 dans AudioSculpt peut prendre beaucoup de temps. Ce temps variera en fonction des paramètres d’analyse, mais a fortiori sur une oeuvre de 16 minutes environ, cela prendra tout de même du temps.
Nous devons améliorer ce processus, c’est certain.
Vous pouvez, en attendant, essayer de réduire le nombre de partiels ou alors procéder à une analyse sur des régions plus courtes de l’oeuvre.

Cordialement,
Charles

Bonjour,

il faudrait peut-etre d’abord preciser un peu plus precisement ce qui ne va pas. Est-ce la lecture par AS du fichier des partiels
ou est-ce la phase d’analyse partiel (donc Pm2 meme).

J’ai fai tqq tests avec un fichier stereo de 4 min 30 et une analyse inharmonic.
La phase d’analyse me semble toujours plus longue que la phase de la lecture.
Avec différent parametrages (nombre des partiels max et seuil d’amplitude) j’ai fait des analyses produisant
différent nombre des partiels et je vous donne ici le temps en sec pour la phase d’analyse:

65000 partiels -> 82s
126000 partiels -> 150s
200000 partiels -> 750s

Dans tous les cas le chargement des partiels dans AS ne prends que qq seconds.
On voit donc clairement que le problème c’est l’analyse. Malheureusement on ne peut pas
améliorer cela et il faut (comme Charles la déjà dit) tout simplement limiter le nombre de partiel
(utiliser le seuil d’amplitude et le nombre max des partiels) pour limiter le temps de calcule.

Je ne crois pas par contre qu’on peut dire que cela soit très lente et un fichier de 16min
c’est quand même pas ‘très petit’.

De toute façon il sera toujours comme ca que le temps d’analyse dépend du nombre des partiels et
on pourra toujours augmenter le nombre des partiels tel que la procédure prendra énormément de temps.
Il y a la un effet quadratique, car dans deux trames successive avec N partiels il faut comparer N*N pairs de partiels
pour trouver les connexions. On voit cet effet commencer en comparant les dernier deux ligne dans ma liste de comparaison.

Cordialement
Axel

Bonjour à tous,

Merci à Charles et Axel pour leur réponse. Les chiffres donnés par Axel me laissent songeur car j’avais demandé 4 partiels pour mon analyse. Je dois faire une autre erreur quelque part…

Cordialement,

Antoine Escudier

Est-ce que tu pourrais nous communiquer les paramètres choisi? Par ex un screen shot du dialogue de l’analyse des partiels?

A+
Axel

Bonjour,

Je pense avoir trouvé mon erreur : je n’avais pas fait d’analyse de la fondamentale avant de lancer mon analyse des partiels. Après avoir fait l’analyse de fondamentale, ma demande de 4 partiels pour mon fichier de 5 secondes est analysé pratiquement instantanément. J’ignore si mes questions simples sont acceptables sur ce forum. Si oui j’en aurai sans doute d’autres. Merci aux deux personnes qui m’ont aidé.

Cordialement,

Antoine Escudier

Salut Antoine,

plusieurs commentaires :

  1. je ne suis pas sur de comprendre ce que tu écrit la. normalement si i n’y a pas d’analyse F0 on ne peut pas démarrer l’analyse partiel en mode harmonique. A savoir qu’il y a aussi le mode inharmonique et celui la fonctionne aussi sans F0 et cela sans prendre beaucoup plus de temps. Je ne crois donc pas que tu as bien trouvé le problème. Cela dit, c’est bien possible que cela marche maintenant et cela ne marchait pas avant, mais l’explication est tres probablement une autre.
    Avec le comportement que tu as écrit je pense que peut-etre tu t’es trompé avec la taille de fenêtre. Si tu fait une taille longue (plusieurs sec par exemple) la mémoire nécessaire augmentera de façon significative, l’ordinateur commence a déplacer les données en mémoire vive sur disque (mémoire virtuelle) et cela peut par fois prendre énormément de temps, bloquer tout communication avec les autre processus, t du coup necessiter des reboot.

  2. L’analyse des partielles harmonique ne fait que du sens si tu traite des fichiers avec des notes monophoniques (solo), pour les musque plus compleexe il faudrait utiliser le mode inharmonique afin de pouvoir prendre en compte la polyphonie.

  3. tous les question sont le bienvenu dans ce Forum. Il y a des gens a tous les niveau. Il ne faut donc pas se limiter si on veut poser des questions concernant l’utilisation ou le fonctionnement d’AudioSculpt ou des kernels SuperVP/PM2/ircamBeat.

Cordialement
Axel

Bonjour Axel,
Merci pour ton aide.
Je ne sais plus exactement ce que j’ai fait quand j’ai eu le plantage…Je doute que ça soit une erreur de taille de fenêtre. Je débute sur audiosculpt donc j’essaye des trucs assez standards genre 4092, 1024 etc…Je suis par contre certain que j’ai demandé une analyse de partiels harmoniques et que AS ne m’a pas demandé d’analyse FO avant. Par contre maintenant il me la demande…Donc je suppose que la première fois il a du trouver un fichier d’analyse quelconque et l’utiliser comme fichier d’analyse FO si c’est possible. J’écris cela car je note que les dossiers dans lesquels AS travaille n’ont pas l’air de rester toujours les mêmes…Ainsi quand je demande à ouvrir un fichier analyse de fondamentale, il m’ouvre le dossier fft….En tout cas maintenant ça marche donc peu m’importe l’erreur.
Après avoir fait l’analyse de partiels harmoniques, j’exporte cette analyse au format texte. Je m’attends à trouver un fichier texte avec 4 colonnes : temps, fréquence, amplitude, phase (voir pièce jointe export as text.tiff) mais il n’y a que trois colonnes quand j’ouvre le fichier texte….?

Antoine Escudier

Archive.zip (348 KB)

Salut

Donc je suppose que la première fois il a du trouver un fichier d’analyse quelconque et l’utiliser comme fichier d’analyse FO si c’est possible.
Non, cela ne me semble pas possible. Meme s’il trouve n’importe quoi comme f0, ceal ne lui devrait pas poser un problem car cela ne contrainte que l’espce des frequence dans la quelle il cherche les partiels. Et il ne cherchera toujours que 4 partiels. Mais bon, laissons cela alors, si tu ne peux pas le reproduire.

Pour tes dialogues tou sme semble ok, sauf peut etre l’espace de recherche des F0 qui est assez limité 45Hz à 70Hz, mais peut-etre tu n’as ques des basse dans ton fichier son, et dans ce cas cela pourrais etre correcte. Il faut ici les hauteurs des notes minimal et maximale en Hz.

Finalement, pour l’exporte, je ne sais pas grande chose comment cela fonctionne. Je laisses Charles te repondre lundi.

Cordialement
Axel

Salut Antoine,

Donc en réponse :

  1. “Donc je suppose que la première fois il a du trouver un fichier d’analyse quelconque et l’utiliser comme fichier d’analyse FO si c’est possible.” Oui il a du trouver un fichier F0 pour lancer l’analyse sinon l’analyse ne peut pas se lancer.

  2. “Ainsi quand je demande à ouvrir un fichier analyse de fondamentale, il m’ouvre le dossier fft” > le dossier sur lequel le dialogue s’ouvre est le dernier utilisé, il n’est pas par défaut le dossier qui stocke les F0 ou FFT ou autre. C’est l’option par défaut d’ouverture de dossier du système.

  3. Concernant l’export en texte des fichiers de partiels et avoir le format Temps, Fréquence, Amplitude, Phase il faut donc faire :
    a) File > Export Analysis As Text > Export Partial Tracking As…
    b) une application nommée SDIFConverter va se lancer automatiquement sélectionner : Conversion Mode = Partial, et cocher l’option “Custom Format”
    c) choisir un endroit où sauver le fichier texte
    Le fichier résultant aura donc une status line (temps, nombre de points) puis la description des partiels associés (temps, freq, amplitude et phase)

Sans l’option “Custom Format”, ne seront exportés que le Temps, la Fréquence et la Phase.

Voilà,

Cordialement,
Charles

Bonsoir à tous,
Merci pour les réponses. Je risque d’avoir une question chaque soir donc dites-moi si j’abuse.
D’abord un truc:
Axel a écrit:

Il faut ici la hauteur minimale et maximale des notes en Hertz
La hauteur des notes ou la hauteur approximative de la fondamentale si on est dans le cas d’une note précise ?
D’autre part, quand tu écris “la hauteur des notes” tu veux dire les fréquences mini et maxi qu’on voit dans le sonagramme ?
Ensuite concernant la réponse de Picasso :
Ce que tu dis fonctionne en effet. Mais plusieurs questions se posent :
A quoi sert la status line ?
Pourquoi il n’y a pas l’amplitude par défaut ? On en n’a en général pas besoin ?
Cette dernière question m’amène à vous dire ce que j’essaye de faire : je voudrais pouvoir analyser un son avec AS et le reproduire au moins approximativement par synthèse additive dans max msp. Dans le fichier AS que j’obtiens le pas d’avancement du temps est très petit (moins d’un dixième de seconde) ce qui va être difficile à gérer dans max msp…Dans ce même fichier, le temps est en seconde, les fréquences en hertz mais la phase et l’amplitude je ne sais pas. Pour finir ce même fichier me montre l’évolution de chaque partiel deux fois. J’explique, j’ai demandé par ex 6 partiels et mon son dure 5 secondes. J’obtiens l’évolution de chaque partiel sur 5 secondes puis à nouveau la même chose (apparemment identique)….or mon son est mono (ça explique peut-être)…
J’essaye d’être clair mais c’est pas très facile et assez long…
Cordialement,
Antoine Escudier

Salut Antoine,

D’autre part, quand tu écris “la hauteur des notes” tu veux dire les fréquences mini et maxi qu’on voit dans le sonagramme ?

Non je parlait de ta connaissance a priori. Si tu ne sais rien sur le son il faut d’abord écouter. Apres cela tu peux faire un spectrogramme et determiner a peu près ou est situé le pics spectrale de la fondamentale. Par contre, pour faire une spectrogramme correcte tu dois déjà avoir une idée de la fondamentale.
Si tu ne peux pas déterminer l’espace u est situé la F0 en écoutant tu pourras aussi faire plusieurs spectrogrammes et sélectionner celui ci qui fait le plus émerger la grille harmonique des partiels.

A quoi sert la status line ?
Les resultats sont organise en section, afin de pouvoir lire correctement il faut savoir combien de ligne sont dans chaque section.
La status line sert donc a decrire les differentes sections des donnes.

Pourquoi il n’y a pas l’amplitude par défaut ? On en n’a en général pas besoin ?
On peut en avoir besoin ou non.

Pour ton application souhaité, je te conseil fortement d’utiliser le format SDIF. Ce format est bien definit et peut etre lu
dans Max/MSP aussi. Les objets IRCAM servant a synthetiser les partiels le comprennent. Je n’utilise pas Max et ne pourra donc pas te dire exactement comment faire. Mais je suis sur que sur la liste des objets Max/MSP tu trouveras des gens qui peuvent l’expliquer.

Si tu veux faire toi même: la phase est en radian et l’amplitude et l’amplitude linéaire, cela correspond donc a la formule

s(n) = A(n) sin(int_0^n(2 pi w(m)/R dm) + p)

ou p est la phase de la premier trame de synthese, w(m) est la fréquence instantané, R est le taux d’échantillonnage A(n) l’amplitude instantané et int_0^n signifie integration de 0 a n.

Cordialement
Axel