Nicolas Brodu     
          
            A M U E N C H A
Nicolas
Brodu
A M U E N C H A

Visualisation instantanée des notes

Amuencha permet de visualiser les notes contenues dans un signal audio. L'idée est de rassembler les notes séparées d'une octave dans les mêmes direction d'une spirale, de telle sorte à faire clairement ressortir les accords, même renversés. On peut aussi s'enregistrer au micro (en rouge) en même temps que le morceau (en bleu), pour travailler sa justesse :-)

Amuencha showing a D# major chord

Classiquement, les logiciels d'analyse utilisent une transformée de Fourier rapide (FFT) pour trouver le contenu en fréquence. Le problème de cette approche est que l'espace des notes suit le logarithme des fréquences… contrairement à la FFT, linéaire en fréquence. Il s'en suit une perte de précision. Cette perte est amplifiée par l'usage d'une fonction de fenêtrage parfois non optimale afin de localiser le contenu fréquenciel en temps. Généralement, cette information est utilisée directement et les fréquences proches « bavent » donc sur celle à analyser.

Amuencha n'utilise pas de FFT. Je commence par créer une banque de filtres, centrés chacun sur une fréquence à analyser. Ces filtres sont des exponentielles complexes convoluées avec une fenêtre de Kaiser dont la largeur dépend de la fréquence à analyser. Une fois ces filtres appliqués au signal, j'utilise une technique de réassignement temps-fréquence pour exploiter la phase complexe du signal. Cette méthode combine l'information issue de filtres proches, mais avec une phase différente, pour restaurer un contenu fréquentiel instantané (avec le delai le plus court possible selon la fréquence) et vraiment très précis. Cette précision est fixée graphiquement en créant un filtre en moyenne tous les 3 pixels le long de la spirale. Enfin, un « fading » est appliqué sur le contenu précédent, afin de donner une information sur le mouvement des notes lorsques la musique est jouée.

Le résultat est une visualisation « propre » du contenu fréquentiel de la musique en train d'être jouée. La représentation en spirale permet de voir aisément les accords (ci-dessus un Ré# majeur), y compris avec renversements et répartition sur plusieurs octaves. Amuencha ne fait pour autant aucun traitement sur la reconnaisance d'accords. Ce serait la prochaine étape : si vous êtes intéressés par ce projet, merci de me contacter !

On perçoit facilement les harmoniques d'une note fondamentale. Par exemple, dans l'image ci-dessus, je fredonne un Ré# au micro (visualisé en rouge), par dessus un morceau (ici l'intro de Clocks par Coldplay). La fondamentale est sur la deuxième branche de la spirale - je chante dans cet exemple une octave en dessous du piano. La première harmonique (2 fois la fréquence) correspond au Ré# de l'octave du dessus, sur la branche supérieure de la spirale. On voit avec l'historique (fading) que ma voix n'est pas encore très assurée et fluctue un peu autour de la note cible. La troisième harmonique (3 fois la fréquence) correspond au La#.

Historiquement, on accordait les instruments sur des ratios de fondamentale, ce qui se fait simplement par les mêmes ratios sur les longueurs des cordes. Ainsi, on peut construire un accord majeur avec la troisième et la cinquième harmonique (la deuxième et quatrième étant juste des changements d'octave). Pour un Do par exemple, la troisième harmonique, ramenée à l'octave du dessous, donne le Sol, et la cinquième, ramenée 2 octaves en dessous, donne le Mi. Ce n'est bien sûr plus aussi simple depuis l'invention du Tempérament Égal, qui permet de transposer la musique facilement, mais avec lequel les ratios ne sont plus respectés. Amuencha vous permet facilement de voir, par exemple, que la 5ème harmonique ne correspond plus vraiment au Mi dans la musique moderne…

Téléchargement

Vous pouvez télécharger ce packet Debian (recommandé), ou décompresser puis tenter d'executer cette AppImage sur un système pas trop ancien (x86_64, glibc2.15 requise), ou compiler Amuencha vous-même avec le code source.

Amuencha utilise le système audio Jack pour des latences minimales (j'utilise une carte son externe UR22mkII avec un « vrai » micro), mais peut aussi utiliser le micro interne de votre PC portable si nécessaire. Je n'utilise que Debian/Linux et, si ce n'est pas votre cas et que vous arrivez à le compiler pour votre OS favori, merci de me faire du retour et on pourra inclure vos changements afin d'en faire bénéficier à tous :-)

Amuencha est un logiciel libre, license LGPL v2.1 ou plus récente.

Style:
      L O G I C I E L S 
A
M
U
E
N
C
H
A
A
M
U
E
N
C
H
A