Bonjour à tous,
j'ai pour projet de programmer un petit accordeur pour guitare.
Le principe est simple : l'utilisateur joue une corde, le logiciel lui renvoie le nom de la note la plus proche, en lui indiquant l'écart avec celle-ci.
Je pensais naïvement calculer la densité spectrale de puissance du signal, rechercher la fréquence pour laquelle le signal est max, en déduire la note, etc ...
J'ai fait quelques tests (je précise que la guitare est branchée directement à l'entrée micro, donc très peu de bruit parasite).
L'idée a l'air de tenir la route pour les 3 cordes les plus aiguës. Cependant, pour les cordes graves, il y a quelques soucis. Par exemple pour la corde Mi grave (la plus grave), le signal est maximum pour l'octave (Mi3 au lieu de Mi2).
Pour la corde de La c'est encore plus bizarre. Le signal est maximum pour la quinte (donc Mi4 au lieu de La2 !).
J'utilise la bibliothèque scipy.signal pour le calcule de la densité spectrale de puissance.
Vous pensez que le problème peut venir du traitement su signal, ou que les fréquences harmoniques sont réellement plus "fortes" que celles fondamentales ?
Désolé pour la question peut être un peu trop musicale.
Partager