< Back to IRCAM Forum

[Command Line Tools] Extraire les accords d'un extrait musical

Bonjour à tous,
voilà mon problème, comme je suis sur Linux, je ne peux utiliser que Pm2 et SuperVP + les commandes SDIF que j’ai compilé venant des source du projet Ircam (sdifToText, etc)
vu que pour l’instant je tâtonne avec le menu d’aide des commande (qui me déroute un peu ^^), j’aimerai savoir comment extraire le maximum de données d’un extrait musical, dont les accords reconnu, le bpm ( mais j’ai cru comprendre que c’était la bibliothèque IrcamBeat qui faisait cela mais qu’ellle n’était pas dispo en ligne de commande);
Quelle serai la commande à exécuter pour avoir les accords (ou l’harmonique le plus fort) tout les X temps d’un ficxhier audio, en sauvegardant dans un fichier SDIF que je pourrai convertir par la suite avec “sdiftotext” ?

PS: Y a-t-il une possibilité de se procurer l’exécutable “IrcamBeat”, et sinon, y a-t-il une façon d’extraire l’analyse d’IrcamBeat d’un fichier audio de façon détourné ?

Très cordialement

Bonjour Vik-THOR,

Il n’y a pas d’executable IrcamBeat disponible pour Linux.

Quelle serait la commande à exécuter pour avoir les accords (ou l’harmonique le plus fort) tout les X temps d’un ficxhier audio, en sauvegardant dans un fichier SDIF que je pourrai convertir par la suite avec “sdiftotext” ?

Vous pouvez calculer la “chord sequence” de la même manière qu’AudioSculpt ainsi :

  1. Il faut creer tout d’abord un fichier texte contenant les temps X exprimés sous la forme de régions audio à analyser.
    exemple de fichier texte qui spécifie 4 régions audio représentant un accord (départ, longueur). Attention: il semblerait que les vides entre les régions ne soient pas acceptés…
0.0 10.0  
10.0 15.0  
15.0 25.0  
25.0 215.0
  1. Sauver ce fichier texte (accords.txt)

  2. Lancer Pm2 avec pour modèle cette commande en ligne (il serait préférable que vous changiez certains paramètres en fonction de votre fichier en entrée, je vous invite pour cela à regarder la documentation des paramètres de Pm2):
    pm2 -t -S"MonFichierAudio.wav" -Aseqs -N2048 -M2048 --oversamp=8 -Wblackman -OS -p1 --mode=0 -q15 -m40 --chords=“accords.txt” “ChordSeq.cs.sdif”

  3. Un fichier de résultat “ChordSeq.cs.sdif” sera normalement produit par Pm2, dans le format SDIF, et contenant pour chaque trame 1MRK des matrices 1TRC.
    Les matrices 1TRC contiennent les sinusoïdes trouvées décrites de cette manière : Index, Frequence, Amplitude, Phase.
    La documentation SDIF: chercher 1RTC ici http://sdif.sourceforge.net/standard/types-doc.html

Un exemple de ce que produira le fichier SDIF résultant (via SDIFToText):

1MRK	2	0	1.09123  
  1BEG	0x0104	3	1  
	11  
	12  
	13  
  1TRC	0x0004	3	4  
	11	500.087	0.0215367	-2.8961  
	12	580.036	0.011051	2.57533  
	13	659.015	0.0122543	-0.282363  

1MRK	2	1	1.09123  
  1BEG	0x0104	3	1  
	14  
	15  
	16  
  1TRC	0x0004	3	4  
	14	499.298	0.0236506	-2.96374  
	15	579.473	0.0110097	2.57477  
	16	658.849	0.0135953	-0.277471

Sinon, si par “harmonique la plus forte”, vous supposez plutôt la fondamentale, vous pouvez toujours faire une analyse F0 à l’aide de supervp ?

HTH

Bien Cordialement,
Charles