Shazamiga
Un « Shazam » pour les musiques de C64 et d'Amiga : on lui fait écouter un morceau, il retrouve son titre, son auteur et le jeu ou la démo d'où il vient.
Pourquoi un Shazam à part ?
Shazam ne connaît rien des musiques de démos, de jeux 8 et 16 bits ou de modules : elles ne sont pas sur les plateformes de streaming. Ces musiques ne sont d'ailleurs pas enregistrées, elles sont jouées en direct par des puces sonores (SID du Commodore 64, Paula de l'Amiga). Shazamiga part donc des fichiers d'origine, pas d'enregistrements.
Comment ça marche
- On génère le son. Chaque fichier d'origine (SID, MOD, XM, S3M, formats Amiga natifs…) est rejoué par un émulateur, ce qui donne l'audio exact, sans aucun enregistrement.
- On en tire une empreinte. Le son devient un spectrogramme, dont on ne garde que les pics les plus forts. Chaque pic est associé à ses voisins : c'est cette signature, très compacte, qui est stockée dans une base. Aujourd'hui, l'index contient environ 108 000 morceaux : la High Voltage SID Collection pour le Commodore 64, et une première partie de l'Amiga. L'indexation de l'Amiga est en cours de mise à jour avec Modland : de nouveaux morceaux s’ajoutent au fil de l’indexation.
- On écoute, on compare. Le micro du téléphone envoie le son par petits morceaux d'environ une seconde au serveur Shazamiga, qui en calcule l'empreinte et la compare à celles de la base : c'est l'empreinte de la capture sonore qui est comparée, pas un fichier. Aucun son n'est conservé sur le serveur. Pour chaque morceau de la base, le serveur compte les signatures qui tombent au même endroit : le bon titre en réunit des dizaines, et on sait même à quel moment du morceau on se trouve.
- On répond. Dès que le score est assez net, le titre s'affiche, avec la durée mise à le trouver. Un « (?) » signale une réponse probable mais pas certaine.
Le principe est celui décrit par Avery Wang en 2003 pour Shazam, adapté à cette musique : même avec un bruit de fond ou la qualité d'un micro de téléphone, la signature survit.
L'application Shazamiga
Sur Android, l'application se résume à un gros bouton : on appuie, elle écoute en continu et affiche le titre dès qu'il est reconnu, avec le format du fichier (SID, SidMon, Custom pour les formats Amiga natifs…), le score et l'instant du morceau. Un historique daté garde les morceaux trouvés. La reconnaissance se fait sur un serveur, qui garde la base d'empreintes : le téléphone n'a rien à stocker.
Le programme d'indexation
La base est alimentée par un programme Windows à part : on lui donne un dossier (les archives .zip, même imbriquées, sont ouvertes toutes seules), il rejoue chaque morceau, calcule les empreintes et les range dans la base. Une barre indique l'avancement global, et on peut l'arrêter et le reprendre plus tard sans créer de doublons.
La bibliothèque
La base se construit à partir des grandes archives de la communauté : la High Voltage SID Collection (HVSC) pour le Commodore 64, Mods Anthology et d'autres collections pour l'Amiga. Chaque morceau ne pèse qu'environ 50 Ko d'empreintes, et toutes les sous-chansons d'un SID sont indexées. Sur PC, une petite interface sert à indexer un dossier, écouter au micro ou identifier un fichier.
Télécharger Shazamiga (beta)
Deux fichiers à télécharger : le programme pour PC (Windows) et l'application pour Android. Cliquez sur le bouton de celui qui vous intéresse.
Ce qui reste à faire
- Nous avons besoin de votre aide pour compléter notre bibliothèque.
- Le projet est jeune : il peut y avoir des bugs, merci de les reporter.
- Le rendu varie d'un lecteur à l'autre (filtre Amiga, puce SID 6581 ou 8580) : l'empreinte tolère les différences de timbre, mais pas un changement de tempo ou de hauteur (version PAL contre NTSC).
- Les musiques de consoles (NES, SNES, Game Boy, Mega Drive…) sont un projet pour plus tard : elles ne sont pas prises en charge pour l'instant.