|
Post by scalion on Jan 3, 2019 8:54:13 GMT 1
Merci pour cette démo, un moyen simple d'enregistrer un wav. cool.
|
|
|
Post by scalion on Jan 7, 2019 21:33:37 GMT 1
Le .exe fonctionne à merveille (contrairement au .g32, dommage il manque le typage de L_SampleInfo8) De toute façon ce qui est intéressant est de pouvoir manipuler l'enroulage de l'onde (j'ai regarde toute la vidéo et d'autre d'ailleurs). J'imagine que tu parles anglais couremment, moi j'ai un peu de mal mais il y a le sous-titrage en français (ouf...) Quand même péchu surtout la partie avec les nombres complexes, j'ai toujours eu un peu de mal avec eux. La vidéo sur les réseaux neuronaux qui suit juste après tombe très bien pour ce que tu veux faire (moi aussi en fait . A la prochaine !
|
|
|
Post by scalion on Jan 24, 2019 22:16:14 GMT 1
Bonsoir Jean-Marie,
Ce qui est intéressant avec ton programme (outre les fonctions AA importées, mais j'y reviendrais plus tard) c'est d'observer les valeurs intermédiaires. On voit bien qu'il s'agit d'un mélange de 2 fréquences 10hz + 30hz en plaçant la souris sur les pics. Les formes de l'onde enroulée aux valeurs multiples de 10 et de 30 telles que 5 10 15 20 25 30 etc... Celles multiples de 3.33333333 (=10/30) sont une variation un peu à la manière d'une fractale de la forme à 10 et 30 hz. Ce qui n'est pas tout à fait surprenant puisque la fractale de Mandelbrot est le résultat de calculs avec des nombres complexes comme ici avec la forme de la fréquence angulaire. Il y a peut-être quelque chose à creuser de ce coté là.
Déjà on peut voir qu'il n'y a pas que les pics d'éloignement du centre de gravité qui permettent de distinguer les fréquences. Il y a la forme générale "Angular Frequency". On pourrait très bien dire que si la forme est "compacte" il s'agit d'une fréquence significative.
La forme est compacte quand les points de la forme dont les angles sont proches ont des distances au centre égales entre elles. Ou que l'entropie eest proche de zéro.
Pour une forme compacte déterminée (si on arrive déjà à le déterminer) on a donc une valeur qui est très probablement un fraction (par exemple 10/30). J'ai déjà vu un programme il y a longtemps, sur Atari, qui te donnais en un rien de temps le dénominateur et le diviseur d'un réel quelconque. La démo utilisait pi évidemment. Si on parvenait à déterminer de manière rapide l'entropie d'une forme de fréquence angulaire on pourrait gagner un temps non négligeable. Cependant je pense que dans le cade d'une reconnaissance vocale il n'est pas forcément obligatoire de dégager une valeur exacte de fréquence. A creuser aussi.
Voilà le genre de chose qu'il serait bien d'implémenter dans ton programme :
- Ce serait bien que l'on puisse choisir les ondes qui composent le sample à analyser. Histoire de voir ce qui se passe avec des valeurs multiples entre elles, des nombres premier, ou des suites de fibonaci par exemple.
- La possibilité de zoomer/dézoomer et se déplacer aussi loin que possible dans la zone frequency cursor Ce qui m'aurait permis par exemple de voir ce qui se passe pour 10*30=300hz -> 150 75 etc..
- Pouvoir saisir une valeur précise du curseur
- Je vois que tu as prévu de pouvoir sélectionner une partie du sample (tu as donc déjà prévu une suite ?) Pouvoir utiliser uniquement une partie du sample afin d'observer des particularités de l'onde.
|
|
|
Post by scalion on Jan 25, 2019 14:51:16 GMT 1
Merci je vais regarder cela dès que possible. Je suis en train de développer une fonction de calcul d'entropie, je pense qu'il sera intéressant de mettre une courbe correspondante en surimpression dans la zone Frequency Cursor.
Avec ce programme je mets en parallèle la courbe de l'entropie (en bleu clair) et celle du centre de masse (en vert). L'onde que j'utilise est la même que ton programme (10hz+30hz)
Le calcul que j'utilise pour l'entropie est baucoup trop lent. Je vais essayer de trouver quelque chose de plus simple. Actuellement je compte le nombre de zones occupées par des points de l'onde enroulée, divisée ensuite par le nombre de points afin d'avoir une valeur normalise (0 à 1).
Attachment:
2019/01/12 : Etant donné que le son numérique est composé de valeurs finies (en 8bits on a 256 valeurs possibles, en 16 bits 65536). On pourrait arbitrer qu'un écart entre 2 valeurs identiques correspond à une longueur d'onde. Dans ce cas en établissant un spectre pour un échantillon donné on aurait probablement des longueurs d'ondes plus présentes que d'autres. Ce serait même certain, à priori, pour des ondes simples telle que celle que nous utilisons pour nos tests jusqu'ici (10hz+30hz). Je vais faire des essais avec des samples d'instruments de musique.
2019/01/28 : J'ai fait des test sur les écarts entre valeurs identiques et ce n'est pas concluant du tout. On obtient bien une représentation des fréquences mais pour tous les multiples de ces fréquence de manière décroissante, ce n'est pas exploitable. Je vais repartir sur une approche différente, en mesurant les écart entre les signaux montants et descendants.
|
|