Souane (./16) :
Nil : Si tu m'expliques les détails, je veux bien *éventuellement* voir ce que je peux faire sous Android et mettre le code à disposition des gens pour qu'ils puissent l'adapter "facilement" sous Symbian (enfin, facilement, j'ai des doutes, quand même...)
Alors le principe est "simple" :
- L'utilisateur définit trois paramètres : Diapason (hauteur en Hetrz du "la" de référence), Tempérament (Mode de construction de la gamme), Base de construction du tempérament (une des 12 note de la gamme ; par défaut : Do)
- Il peut aussi définir d'autres paramètres, qui sont plus "ergonomiques" (la sensibilité de détection des sons - utile pour éviter que l'accordeur ne prenne en compte des parasites, par exemple, mais aussi plein d'autres, à voir a posteriori)
- On capte un signal sonore avec le micro du smartphone (on va dire qu'il s'agit d'un signal tenu ; je pense qu'il y a des traitements à effectuer pour que ça fonctionne avec des cordes pincées ou frappées)
- Un traitement est effectué sur le signal sonore capté pour en isoler la fondamentale ou, en tout cas, l'harmonique principale (il peut y avoir des problèmes de résultantes qui font que ce qui paraîtrait être la fondamentale n'est pas vraiment le son entendu, typiquement lorsqu'on octavie/"douzoie" avec les instruments à vent)
- On regarde quelle est la note "calculée" (définie dans l'échelle choisie au tout début) qui se rapproche le plus de la note "entendue" et on signale une différence à l'aide d'un vu-mètre pour aider le musicien à corriger la hauteur du son
Tout ceci doit se faire avec une latence minimale
Il y a pas mal de mathématiques et de physique qui entre en jeu, en particulier au niveau de la construction de la gamme et du traitement du signal sonore. Au niveau IHM, c'est aussi assez sympa d'essayer de penser quelque chose de pratique.
Voici probablement l'un des plus complet pour PC :
http://www.fmjsoft.com/chromatia.html (la version de démo est juste limitée dans le temps d'exécution) ; il n'y a pas besoin d'implémenter tout ça dans une version smartphone, je pense ^^