#1 Le 24/06/2008, à 13:01
- DrDam
idée débile ... extraire des notes d'un son
Bonjour à tous ...
suite à ce forum
et etant moi même musicien (enfin il parait) je me suis dit : "il existerai pas un logiciel qui prendrai en entrée un son et sortirai la note qui y correspnd ?"
apres avoir rechercher un peu sur wikipedia ... j'extrait 2 articles
Acoustique musicale
transphormé de Fourier normale ou rapide
je me suis dit :
sachant que pour une note, on à une frequence :
Fréquence des notes note fréquence
si# / do 261,6 Hz
do# / réb 277,2 Hz
ré 293,7 Hz
ré# / mib 311,1 Hz
mi / fab 329,7 Hz
mi# / fa 349,2 Hz
fa# / solb 370,0 Hz
sol 392,0 Hz
sol# / lab 415,3 Hz
la 440 Hz
la# / sib 466,2 Hz
si / dob 493,9 Hz
on pourrais, en gros à partir d'une transphormer de fourrier definit pour chaque instant t d'un son, les notes qui le compose ....
non ?
enfin c'est juste des idée qui me passe dans la tête .... je veux etre sur que je ne vais pas trop vite en besogne ...
Dernière modification par DrDam (Le 24/06/2008, à 13:03)
Tout ce qui a été crée par l'Homme devrait être patrimoine de l'humanité
Vous etes perdu ?, là ce sera trop loin
Hors ligne
#2 Le 24/06/2008, à 13:15
- angel2005
Re : idée débile ... extraire des notes d'un son
salut, ton idée est bonne et existe deja mais sous windows et s'appel melodyne.
si je me rappel bien avec le programe il y a une explication que je ne pourais te donner sans dire de betises, qui explique comment le soft marche pour reconnaitre les note a partir d'une source audio et de transformer ca en note midi.
je te laisse le lien au cas ou.
http://www.celemony.com/cms/
j'espere pas avoir repondu a cote.
cdt
Dernière modification par angel2005 (Le 24/06/2008, à 13:15)
Ubuntu Intrepid 8.10, sur Dell Latitude 120L 2 Gigas de Ram
Ubuntu Intrepid 8.10, sur Desktop CM asus P4B533
Carte video nvidia NX7600GT/ carte son M-audio Delta 44 2 gigas de Ram
http://www.imprimerie-creative.com
Hors ligne
#3 Le 24/06/2008, à 13:20
- DZ
Re : idée débile ... extraire des notes d'un son
En cours je me rappelle qu'on avait démontré qu'il est impossible d'écrire un programme permettant d'obtenir la partition de n'importe quel fichier wave. En revanche on peut s'en rapprocher, et afiner petit à petit mais c'est du travail de longue haleine, rien d'automatique... Il y a déjà pas mal d'études, je crois qu'à lyon des chercheurs ont publié quelques articles à ce sujet.
Hors ligne
#4 Le 24/06/2008, à 13:45
- DrDam
Re : idée débile ... extraire des notes d'un son
si je peu avoir une base, et apres c'est le travail du musicien...
dans mon cas, je suis incapable rien qu'en ecoutant un morceau de decelé les notes ... mais si j'ai une partoche et le même morceau à l'oreille, je suis capable de faire des améliorations ...
ce que j'ai besoin, c'est juste une trame de base
Tout ce qui a été crée par l'Homme devrait être patrimoine de l'humanité
Vous etes perdu ?, là ce sera trop loin
Hors ligne
#5 Le 24/06/2008, à 13:57
- angel2005
Re : idée débile ... extraire des notes d'un son
si tu as un peu de temps, essai la version demo de melodyne, je l'utilise depuis le debut, ca marche vraiment bien, ca te sort la partition, les notes midi, tu corrige et/ou ajoute arrangements et autres en temps reel. je l'ai meme pousser avec un morceau ca prend un peu de temsp, il y a quelques erreurs mais rien de catastrophique mais ca marche. il y a une doc avec explications.
je ne sais pas si les travaux de l'universite de lyon sont accessible par le net. mais pas mal d'etude sont en ligne (en anglais), fait par beaucoup de labo de recherches.
Dernière modification par angel2005 (Le 24/06/2008, à 13:57)
Ubuntu Intrepid 8.10, sur Dell Latitude 120L 2 Gigas de Ram
Ubuntu Intrepid 8.10, sur Desktop CM asus P4B533
Carte video nvidia NX7600GT/ carte son M-audio Delta 44 2 gigas de Ram
http://www.imprimerie-creative.com
Hors ligne
#6 Le 24/06/2008, à 14:04
- DrDam
Re : idée débile ... extraire des notes d'un son
il tourne sous ubuntu ?
Tout ce qui a été crée par l'Homme devrait être patrimoine de l'humanité
Vous etes perdu ?, là ce sera trop loin
Hors ligne
#7 Le 24/06/2008, à 14:13
- angel2005
Re : idée débile ... extraire des notes d'un son
avec wine, il tourne assez bien.
Ubuntu Intrepid 8.10, sur Dell Latitude 120L 2 Gigas de Ram
Ubuntu Intrepid 8.10, sur Desktop CM asus P4B533
Carte video nvidia NX7600GT/ carte son M-audio Delta 44 2 gigas de Ram
http://www.imprimerie-creative.com
Hors ligne
#8 Le 24/06/2008, à 16:45
- _YokoUno
Re : idée débile ... extraire des notes d'un son
En cours je me rappelle qu'on avait démontré qu'il est impossible d'écrire un programme permettant d'obtenir la partition de n'importe quel fichier wave.
Faut pas croire certains vieux croutons qui en sont restés à la fft
Présentation qui remonte à mars dernier ... ok la prise de vue est pourrie, mais:
La décomposition en partiels, réputée impossible, est faite en un temps raisonnable et cela sans avoir besoin d'un cluster!
A méditer par ceux qui ont déjà travaillé dans le traitement du signal et/ou dans l'intelligence artificielle...
#9 Le 25/06/2008, à 10:10
- DrDam
Re : idée débile ... extraire des notes d'un son
si ils utilise pas la fft, il font comment pour retrouver les frequeces ?
Tout ce qui a été crée par l'Homme devrait être patrimoine de l'humanité
Vous etes perdu ?, là ce sera trop loin
Hors ligne
#10 Le 25/06/2008, à 10:35
- Nasman
Re : idée débile ... extraire des notes d'un son
Je ne sais pas si je peux aider mais j'ai fait des programmes (pour windows - pardon - mais fonctionnant avec wine) qui font les choses suivantes:
- transformation de Fourier rapide (une dll en assembleur)
- affichage d'un spectre temporel ou fréquentiel (utilisant la dll)
- un programme permettant à partir d'un fichier contenant une partition (codage des notes et des durées) de créer un fichier sonore wave.
Pour reconnaitre un son il faudrait (en théorie):
- détecter les moments ou un son est joué (seuil ?) pour déterminer la zone du spectre temporel à analyser (pour la reconnaissance d'une note)
- rogner (ou padding avec 0) pour avoir un nombre de valeurs qui est une puissance de 2 (préalable à une fft)
- analyse de fréquences
- recherche de la fondamentale (maximum ?) et comparer avec un tableau (note la plus proche)
- la durée de la note devrait être liée au temps pendant lequel une note est jouée (en cas de notes simultanées ou se chevauchant celà risque d'être plus délicat).
Edit: Les programmes ont été écrits en assembleur Nasm (disponible pour ubuntu) et la dll devrait aisément pouvoir être transposée pour Linux - aucun appel à une fonction de Windows)
Dernière modification par Nasman (Le 25/06/2008, à 10:38)
PC fixe sous Bionic 64 bits et portable avec Focal 64 bits
Hors ligne
#11 Le 25/06/2008, à 10:43
- DrDam
Re : idée débile ... extraire des notes d'un son
Pour reconnaitre un son il faudrait (en théorie):
- détecter les moments ou un son est joué (seuil ?) pour déterminer la zone du spectre temporel à analyser (pour la reconnaissance d'une note)
- rogner (ou padding avec 0) pour avoir un nombre de valeurs qui est une puissance de 2 (préalable à une fft)
- analyse de fréquences
- recherche de la fondamentale (maximum ?) et comparer avec un tableau (note la plus proche)
- la durée de la note devrait être liée au temps pendant lequel une note est jouée (en cas de notes simultanées ou se chevauchant celà risque d'être plus délicat).
assez d'accord ... moi je voyais ça legerement différent (c'est peut etre la même chose vue différement)
pour toute durée t (1/2 sec => 1/20 sec) :
- extrait via fft les frequences contenues dans la durée t
- pour chaque fréquences ( groupe de fréquence => armoniques / bruit ) les associer une note
- trouver la note principal ( Intensité la plus importante )
ça c'est l'analyse du signal contenu dans la durée t
ensuite on peu intégré ça dans la durée :
- une note joue durant une durée t et t1 est en réalité la même jouée
je pense que toute la précision de la méthode vien du découpage précis des durées t
Tout ce qui a été crée par l'Homme devrait être patrimoine de l'humanité
Vous etes perdu ?, là ce sera trop loin
Hors ligne
#12 Le 25/06/2008, à 11:28
- rniamo
Re : idée débile ... extraire des notes d'un son
ça m'intéresse énormément, un projet sera -t- il monté ?
< Quelques un des mes programmes | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
\ ^__^
\ (o o)\_______
(___)\ )\
Hors ligne
#13 Le 25/06/2008, à 11:55
- _YokoUno
Re : idée débile ... extraire des notes d'un son
si ils utilise pas la fft, il font comment pour retrouver les frequeces ?
Avec une méthode adaptative, celle-ci par exemple.
je pense que toute la précision de la méthode vien du découpage précis des durées t
Oui mais en même temps, si tu te limites à une fenêtre fixe tu vas avoir des misères à cause du principe d'incertitude de Heisenberg. D'où le besoin d'une méthode adaptative.
Penser que la fondamentale d'une note est le partiel de plus haute énergie est une erreur. Bien sûr à l'école c'est systématiquement le cas quand on décompose en séries de Fourier, mais avec des signaux réels c'est pas pareil
D'autant plus que d'autres choses entrent en jeu, l'équalisation par exemple.
De plus, vous aller faire comment dans le cas d'un accord? Même sans aller si loin, le cas de deux notes simultanées est déjà difficile: superposition des partiels => difficulté d'inférence.
Enfin, plein de trucs vont vous casser les pieds:
- bruit,
- convolution (reverb),
- effets: flanger par exemple,
- instruments de percussion invasifs,
- ambiguité de timbres: même une oreille entraînée peu avoir du mal à différencier un kick de batterie et une note de basse slappée
- besoin d'une séparation de sources, et qui soit robuste
Ce que vous décrivez pourra marcher pour l'enregistrement d'un flutiste dans une chambre anéchoïque, mais pour une musique de la vraie vie vous aurez des résultats médiocres.
Rem: avec les libs de fft modernes comme FFTW la fenêtre d'analyse n'a pas besoin d'avoir un nombre de points égal à une puissance de 2.
#14 Le 25/06/2008, à 12:09
- _YokoUno
Re : idée débile ... extraire des notes d'un son
Euh... le post précedent peut laisser penser que je décourage de tenter quoi que ce soit...
Pas du tout du tout. Bien au contraire
#15 Le 25/06/2008, à 12:17
- DrDam
Re : idée débile ... extraire des notes d'un son
30 sec ... pour le moment, je ne cherche pas un truc idéal ...
Oui mais en même temps, si tu te limites à une fenêtre fixe tu vas avoir des misères à cause du principe d'incertitude de Heisenberg
.. euh ... je vois ou est le problème sachant que l'enregistrement d'un son est déjà une deformation du dit son ...
de plus si ma fenetre fixe est dans la 1/10 - 1/20 de sec ... je pense pas perdre trop d'information car je suis violoniste et je suis bien au dela de frequence de 10 ou 20 Hz ... et sur des notes d'une durée bien supérieur à la durée t ....
Penser que la fondamentale d'une note est le partiel de plus haute énergie est une erreur. Bien sûr à l'école c'est systématiquement le cas quand on décompose en séries de Fourier, mais avec des signaux réels c'est pas pareil tongue
D'autant plus que d'autres choses entrent en jeu, l'équalisation par exemple.
c'est en partie pour cela que je compte chercher une equivalence de chaque note avant de chercher celle qui est la note fondamentale ...
Pour le moment, je veux voir sur des truc assez simple (genre recupérer une partition chanté acompagné d'une guitare ...) je ne sais pas encore comment je vais faire le tri entre la guitare et la voi mais c'est pas encore mon problème
je sais que mon idée aura de tres forte limite si je l'applique à un groupe de plusieur instrument (dans le cas d'un orchestre philarmonique je suis dans la merde mais bon ce n'est pas dans ces cas là que je compte travailler)
Avec une méthode adaptative, celle-ci par exemple.
en gros ça consiste en quoi ?
Tout ce qui a été crée par l'Homme devrait être patrimoine de l'humanité
Vous etes perdu ?, là ce sera trop loin
Hors ligne
#16 Le 26/06/2008, à 20:34
- DZ
Re : idée débile ... extraire des notes d'un son
En cours je me rappelle qu'on avait démontré qu'il est impossible d'écrire un programme permettant d'obtenir la partition de n'importe quel fichier wave.
Faut pas croire certains vieux croutons qui en sont restés à la fft
Présentation qui remonte à mars dernier ... ok la prise de vue est pourrie, mais:
La décomposition en partiels, réputée impossible, est faite en un temps raisonnable et cela sans avoir besoin d'un cluster!
A méditer par ceux qui ont déjà travaillé dans le traitement du signal et/ou dans l'intelligence artificielle...
Hum la démonstration avait été validé, et il me semble que beaucoup de travaux partait de cette démonstration pour dire "puisque qu'en théorie c'est impossible, on va s'en approcher". Le logiciel en question(dans l'exemple que tu proposes) a énormément de restrictions, ils l'admettent eux-même.
Hors ligne
#17 Le 27/06/2008, à 00:50
- _YokoUno
Re : idée débile ... extraire des notes d'un son
en gros ça consiste en quoi ?
Hum... difficile de te répondre sans connaître ta culture en maths
Il s'agit d'une analyse granulaire.
Le papier original fait peur au premier abord, mais c'est plus simple qu'on pourrait croire. Lis-le et poste si tu piges pas.
Il existe une implémentation en gtk, Guimauve, qui n'est plus maintenue hélas.
Cette capture illustre ce qu'on peut obtenir. Le signal est juste un mot de deux syllabes prononcé dans un micro. La zône où une fondamentale et des harmoniques sont visibles est une voyelle, l'espèce de paquet immonde en haut correspond à la consonne S, assimilable à du bruit.
Ce qui n'est pas clairement visible, c'est que chaque grain a une énergie. La méthode effectue une hiérarchie des énergies implicitement. Donc appliquer des seuils, si on le souhaite, c'est du gâteau.
Le toolkit mptk est sans doute plus approprié que Guimauve pour explorer tout ça.
si ma fenetre fixe est dans la 1/10 - 1/20 de sec ... je pense pas perdre trop d'information car je suis violoniste et je suis bien au dela de frequence de 10 ou 20 Hz ... et sur des notes d'une durée bien supérieur à la durée t ....
Ah bon, tu joues jamais en pizzicato?
Plus sérieusement, tu envisages de faire glisser la fenêtre avec quelle valeur d'overlap?
je compte chercher une equivalence de chaque note avant de chercher celle qui est la note fondamentale...
Là je vois pas trop ce que tu veux dire
je ne sais pas encore comment je vais faire le tri entre la guitare et la voi mais c'est pas encore mon problème
Ceci est un domaine de recherche à part entière, très actif, désigné par BSS : Blind Source Separation.
Ce que tu veux garder pour la fin devrait être fait au début, dans le principe. Mais c'est un TRÈS gros morceau. Tu devrais te contenter de la prise de son d'un seul instrument, tu as largement de quoi t'amuser. Si en plus tu dois te cogner le nez sur des problèmes de séparation de sources, tu vas criser.
Hum la démonstration avait été validé, et il me semble que beaucoup de travaux partait de cette démonstration pour dire "puisque qu'en théorie c'est impossible, on va s'en approcher". Le logiciel en question(dans l'exemple que tu proposes) a énormément de restrictions, ils l'admettent eux-même.
C'était plus par plaisanterie que par dénigrement. C'est juste que souvent, y compris chez des profs, on accorde à la fft une réputation de "super oreille infaillible", et que cette réputation est usurpée.
Je suis pas experte en traitement du signal, mais s'il y a un truc dont je suis sûre à 100%, c'est que le problème soumis par DrDam n'a pas de solution basée sur un algorithme qui ne travaillerait que dans le sensoriel, il faut des morceaux de cognitif dedans
Surtout, des outils plus modernes que la fft existent, et ils permettent d'arriver aux mêmes conclusions (bien sûr!) mais avec davantage d'élégance. Pour obtenir avec la fft le même résultat que ce qu'on voit dans la capture plus haut, il faudrait mettre en place une vraie usine à gaz: de multiples balayages avec des tailles de fenêtres différentes, un tracking des pics, une correction d'amplitude de ces pics en fonction de la fenêtre de pondération, etc...
Quant aux limitations du soft, c'est sûr que la démo a été faite sur un enregistrement "lisse". Ça aurait moins bien marché avec la prise de son d'une guitare avec wahwah dans une cathédrale, par exemple, et le concepteur ne le cache pas. Malgré tout c'est quand même un exploit, et c'est déjà utilisable pour certains styles de musique. Mais on est pas là pour faire de la pub à des softs propriétaires, hein? J'avais juste mis ça pour illustrer ce qui existe et existera.
#18 Le 27/06/2008, à 12:48
- DrDam
Re : idée débile ... extraire des notes d'un son
Plus sérieusement, tu envisages de faire glisser la fenêtre avec quelle valeur d'overlap?
et bah, si le morceau fait 1 secondes, par ça fait 10 secteurs de 1/10 sec ...
mon niveau de math s'arrete au programme du concours A (prepa bio BCPST)
et par rapport à la video de presentation de melodyne ... à mon avis, ce serai l'aboutissement de mon projet .... mais bon, pour le moment, j'ai pas envi d'aller aussi loin
Tout ce qui a été crée par l'Homme devrait être patrimoine de l'humanité
Vous etes perdu ?, là ce sera trop loin
Hors ligne
#19 Le 28/06/2008, à 10:48
- _YokoUno
Re : idée débile ... extraire des notes d'un son
Sans overlap, tu pourras pas espérer détecter les début et fin de "notes" de manière robuste.
Remarque que par ailleurs il te faudra nécessairement choisir une fenêtre de pondération, car FFTW implémente strictement la fft, où la fenêtre est implicitement rectangulaire. Et comme tu le sais probablement, c'est une "mauvaise" fenêtre.
Bien sûr, ton intérêt est de précalculer les coeffs de la fenêtre de ton choix, une bonne fois pour toutes.
Pour la question des maths, tu en sais assez pour lire le papier de Mallat.
Si tu as bien compris ce que sont un espace vectoriel et un produit scalaire, ça devrait aller.
Avec un échantillonnage à 44.1kHz, ton signal de 1 seconde comporte 44100 échantillons, et il faut le considérer comme un vecteur dans un espace de dimension 44100. Une base triviale de cette espace est l'ensemble des 44100 impulsions de Dirac.
Quand on a affaire à des dimensions aussi élevées et qu'on veut pas faire une overdose de paracétamol, on a intérêt à raisonner sur des projections dans des sous-espaces, et c'est justement de ça qu'il s'agit.
La méthode consiste à d'abord construire un très grand nombre (dictionnaire) d'atomes, qui sont des sinusoïdes modulées en amplitude par une gaussienne.
Puis à chaque itération:
- on calcule la corrélation entre le signal et chacun des atomes du dictionnaire
- parmi toutes ces corrélations, il y en a une qui est maximale. Le couple constitué de la corrélation et de l'atome associé constitue un "grain", une contribution particulière
- on retire du signal cette contribution
En fait la méthode procède par analyse soustractive: on grignote le signal, et au fur et à mesure on obtient des grains d'énergies décroissantes.
Voila en gros comment ça marche.
Il y a quelques subtilités:
- justification du choix de ce type d'atomes
- besoin de travailler dans un espace à valeurs dans le corps des complexes
- astuces qui permettent de booster le calcul (de la même manière que la fft est une dft boostée)
- besoin que le dictionnaire couvre tout le plan T/F
- besoin que le nombre d'atomes soit très supérieur à 44100
... mais je te laisse découvrir pourquoi, si tu choisis de t'intéresser à cette méthode
#20 Le 02/07/2008, à 09:02
- DrDam
Re : idée débile ... extraire des notes d'un son
Sans overlap, tu pourras pas espérer détecter les début et fin de "notes" de manière robuste.
bah pourquoi ? si à une fenetre t, une note est jouée (frequence presente et reconnu) que à une fenetre t+x cette note n'est plus joué (fréquence non présente) et que à une fenetre t+y (y>x) la note est re-joué .. on est bien capable de dire qu'elle était joué en t et t+x, qu'elle s'est arrété dans une autre fenetres que t+x . de même, elle a recommencé entre t+x et t+y , donc il y a une fenetre t+z (x<z<y) ou la note à recommencé ... et en prenant des fenetres suffisament petite (1/20 de sec => un pizzicato dure plus de 1/20 de sec) on est capable de dire dans qu'elle fenetre un note commence et dans quelle fenetre elle s'arrete ...
Et comme tu le sais probablement, c'est une "mauvaise" fenêtre.
et pourquoi ça ?
Quand on a affaire à des dimensions aussi élevées et qu'on veut pas faire une overdose de paracétamol, on a intérêt à raisonner sur des projections dans des sous-espaces, et c'est justement de ça qu'il s'agit.
ou bien faire un calcul par espace ....(c'est plus long ... mais bon)
ce que tu appel atome, ça pourrais correspondre à un certain nombre de note (voir comma ou demi-ton chromatique)
sinon pour le reste je suis assez d'accord avec ta technique de grignotage ... je me serai juste moins pris la tête sur les fondamentaux :
- j'ai un signal, j'extrait toutes les composantes une à une ... et je trouve la principale
astuces qui permettent de booster le calcul (de la même manière que la fft est une dft boostée)
là c'est de l'optimisation de code !! (de toute facon je risque de coder ça en C ou en C++)
besoin que le nombre d'atomes soit très supérieur à 44100
par contre là je comprend pas pourquoi ... les 44100 c'est le nombre de données élémentaires dans une seconde ... ou alors j'ai raté un truc ...
Je suis pas experte en traitement du signal, mais s'il y a un truc dont je suis sûre à 100%, c'est que le problème soumis par DrDam n'a pas de solution basée sur un algorithme qui ne travaillerait que dans le sensoriel, il faut des morceaux de cognitif dedans smile
pour le moment, le cognitif je le laisse à l'Homme, ... tout ce que je veux, c'est corrigé mon manque "d'oreille" (un violoniste qui joue avec un acordeur, car il n'a pas l'oreille musical c'est legerement andicapant)
Dernière modification par DrDam (Le 02/07/2008, à 09:06)
Tout ce qui a été crée par l'Homme devrait être patrimoine de l'humanité
Vous etes perdu ?, là ce sera trop loin
Hors ligne
#21 Le 02/07/2008, à 09:11
- DrDam
Re : idée débile ... extraire des notes d'un son
donc pour essayer de faire un post un peu clair ...
ce que je ferais : pour chaque fenetre t du son
1- j'extrait toutes les frequences
2- je classes les signaux pas importance (intensité)
3- je leur fait correspondre une note (pour quelques uns 75-85% histoire de virer le bruit de fond sans abier les signaux)
4- je stocke tout ça je ne sais pas où
@_YokoUno : ce que tu me dit c'est interessant, et tu me montre un certain nombre de limite de ma méthode. mais nos méthodes sont assez voisines ... c'est juste cette histoire de fenetre ... que je ne saisie pas bien ...
Tout ce qui a été crée par l'Homme devrait être patrimoine de l'humanité
Vous etes perdu ?, là ce sera trop loin
Hors ligne
#22 Le 02/07/2008, à 09:28
- Nasman
Re : idée débile ... extraire des notes d'un son
Avec une fréquence d'échantillonnage de 44100 Hz (si j'ai bien compris) tu pourra analyser le spectre dans la plage 0-22050 Hz (ce qui est bien suffisant compte tenu de l'oreille humaine). Par compte la largeur de bande spectrale dépend du nombre de points d'aquisition de ta fenêtre.
0,05 secondes pour une fréquence d'échantillonnage te donne 0,05x44100=2205 points qui seront sans doute ramenés à 2048 (puissance de 2 pour la fft). Soit en définitive une largeur de fenêtre de :
2048/44100=0,046 s
et une précision de 21,5 Hz sur le spectre fréquentiel.
Ceci est à mon avis trop large car tu as par exemple
La3 = 440 Hz
La#3 = 466 Hz (différence=26 Hz)
Sol#3 = 415 Hz (différence=25 Hz)
(écarts d'un demi ton)
Pour les notes plus graves (fréquence plus basse) ton incertitude en fréquence sera supérieure aux différences entre les notes les plus proches.
Je pense que pour une bonne détermination de la note il te faut des fenêtres temporelles plus longues
PC fixe sous Bionic 64 bits et portable avec Focal 64 bits
Hors ligne
#23 Le 02/07/2008, à 09:40
- DrDam
Re : idée débile ... extraire des notes d'un son
j'ai pour ainsi dire quasi aucune notion de traitement de signal ... donc désolé pour des questions simplistes :
Avec une fréquence d'échantillonnage de 44100 Hz (si j'ai bien compris) tu pourra analyser le spectre dans la plage 0-22050 Hz (ce qui est bien suffisant compte tenu de l'oreille humaine).
pourquoi tu à divisé par 2 ?
Par compte la largeur de bande spectrale dépend du nombre de points d'aquisition de ta fenêtre.
0,05 secondes pour une fréquence d'échantillonnage te donne 0,05x44100=2205 points qui seront sans doute ramenés à 2048 (puissance de 2 pour la fft). Soit en définitive une largeur de fenêtre de :
2048/44100=0,046 sec
???
Je pense que pour une bonne détermination de la note il te faut des fenêtres temporelles plus longues
je comprend pas pourquoi une fenetre plus grande me permettrai d'améliorer ma précision ?
Tout ce qui a été crée par l'Homme devrait être patrimoine de l'humanité
Vous etes perdu ?, là ce sera trop loin
Hors ligne
#24 Le 02/07/2008, à 09:52
- Nasman
Re : idée débile ... extraire des notes d'un son
C'est je crois le théorème de Shannon qui dit que la fréquence maxi est la moitié de la fréquence d'échantillonnage. C'est un problème de repliement de spectre.
Pour une fréquence d'échantillonnage de 44100 Hz, la durée de mesure de chaque point est 1/44100 s, soit pour les 2048 points de mesure, une durée totale de 2048/44100 s.
Pour un signal périodique, il faut au minimum une période complète pour définir la fréquence de façon fiable. Plus tu auras de cycles dans la fenêtre, plus tu auras une bonne précision.
Si tu écoute des sons trop brefs, tu ne pourras pas savoir s'il est grave ou aigu.
PC fixe sous Bionic 64 bits et portable avec Focal 64 bits
Hors ligne
#25 Le 02/07/2008, à 10:05
- DrDam
Re : idée débile ... extraire des notes d'un son
Pour un signal périodique, il faut au minimum une période complète pour définir la fréquence de façon fiable. Plus tu auras de cycles dans la fenêtre, plus tu auras une bonne précision.
oui mais on prend ainsi le risque d'avoir dans la fenetre, une note qui se repete et donc on passe à coté du fait que ce soit 2 notes séparés ...
Tout ce qui a été crée par l'Homme devrait être patrimoine de l'humanité
Vous etes perdu ?, là ce sera trop loin
Hors ligne