Playlistissimo

La musique a toujours eu une place importante dans ma vie. Pendant très longtemps j'ai cultivé et organisé une grande librairie musicale sur mon réseau domestique (mp3 et flac). Avant l'avènement du streaming et des recommandations de playlists basées sur le social (en comparant des morceaux aux playlists d'autres utilisateurs par exemple), il y avait très peu de solutions pour créer des playlists intelligentes à partir d'une bibliothèque de musique numérisée.

J'ai donc voulu développer une application me permettant d'exploiter mes +7000 titres via des playlists intelligentes, en analysant ces morceaux.

Ne souhaitant pas réiventer la roue, j'ai utilisé le framework C++ Essentia développé à l'université Pompeu Fabra de Barcelone. Cette collection d'outils pour l'analyse audio permet notamment, à partir d'un son en entrée, de déterminer un bon nombre de paramètres "bas niveau" de la piste de musique. On obtient alors des données telles que la portée dynamique, la vitesse (BPM), la tonalité, etc.

A partir d'un modèle pré-entrainé, j'exploite ensuite ces données afin de déterminer des caractéristiques telles que l'humeur dégagée par la musique, s'il s'agit d'un morceau dansant ou non, électronique ou non, etc. Toutes ces propriétés, ainsi que les métadonnées du morceau (année de sortie par exemple) sont enregistrées dans une base SQLite.

Une interface web permet enfin d'exploiter cette base et de générer des playlists au format m3u. On peut par exemple demander au système une playlist de 5h de musique électronique calme constituée de morceaux récents uniquement.