ikh a écrit : ↑lundi 15 juillet 2024 à 20:38
Je m'y suis remis récemment après avoir abandonné, coinçant sur une énigme. Aller voir les soluces en ligne ? Que nenni ! Le jeu vidéo est le seul art qui se refuse si l'on n'est pas assez balaise. C'est là toute la beauté de la chose.
En détails: l'énigme en question est musicale. Des notes sont jouées et on doit reproduire
mélodie, et sans doute également
tempo. Problème: si l'anti
oreille absolue existe, je n'en suis un émérite représentant. J'ai essayé avec mes
étagères à mégots; j'ai tombé mon
fumble critique en sortant 1 sur un jet de deux dés. Solution: la béquille technologique à la rescousse.
Tout d'abord, enregistrer les sons à reproduire et découper note par note (
audacity). Ensuite, identifier les fréquences (
sox -n stat) pour visualiser les écarts possibles de l'une à l'autre. Ouais, ben ... c'est pas tant beaucoup plus meilleur. Les valeurs sorties par l'outil ne sont pas cohérentes et leur application pratique n'aboutit à rien. Ça je le savais déjà de mes précédentes tentatives plus de deux ans auparavant (oui, j'ai conservé les fichiers de l'époque et vérifié leurs
horodatages).
Autre moyen: la
force brute en testant toutes les combinaisons possibles (117649, ça commence à faire). Évidemment pas guère à la
paluche; des logiciels existent pour simuler une manette depuis un ordinateur (
joycontrol,
nxbt ...). C'est ancien et les
API ont changé depuis le temps. Faut payer son
débugage de
python (moi qui n'y
pip goutte). pour que rien ne marche à la fin. Un conteneur
docker ne donne pas de meilleur résultat. Pourtant des gens disent que
ça fonctionne bien pour eux™. Quand bien même, comment tester que la bonne combinaison a été trouvée ? Sauf à vérifier ce qui se passe à l'écran (
ça existe pour
farmer du
pokemon légendaire).
Retour à l'identification de notes alors ? Je comprends (lentement) que ce ne sont peut-être pas tant les
fréquences moyennes qui sont à déterminer que le
pitch.
Des outils peuvent s'en charger, dont
une super
bibliothèque mettant à disposition plusieurs
algorithmes, mais je n'ai pas tellement envie de
coder plus que des
snippets (qui puent qui pètent, je sais). En cherchant, je découvre les sites en ligne équivalents. Je passe la
conversion qui sort un résultat abobifreux (chacun voit
MIDI à sa porte). Mon choix se porte sur
tunebat: pas trop de
bloatweb avec force
javascript lourdingue, pas de création de compte obligatoire, possibilité d'envoyer des fichiers au lieu de s'enregistrer (toujours ça de plus en moins).
Chaque note jouée y passe, ainsi que celles mises à disposition pour la reproduction (des fois que
le studio à l'origine du jeu soit assez
vicelard pour les mélanger; ce n'est pas le cas). Comme plus de résultats offre une meilleure certitude statistique, les fichiers audio sont
saucissonnés en tranches de 25 et 33
centisecondes et chaque morceau sera analysé indépendamment. On note (jeu de mots !) des deltas, entre les valeurs trouvées pour les différentes parties d'un même son, mais on arrive tout de même à obtenir une
majorité absolue dans les possibilitudes remontées.
Reste à tester et — ô miracle — ça marche.
Certes, je me suis fait aidé, mais j'ai (presque)
payé le fer-prix.