Derniers journaux de ericdavid :
- [16/08@10:36] Et vous, connaissez-vous la signature de code java ?
- [10/08@06:42] Le random chat, ou comment perdre son temps autrement
Journal : Voice2MIDI : Publication en libre d'un module de reconnaissance de notes de musique chantées
Posté par eric () le 22 octobre 2008Je viens de publier les sources (et binaires) d'un petit programme que j'ai codé l'an dernier sur la reconnaissance de notes de musiques chantées au micro.
Mon besoin était le suivant : j'avais un air en tête, et je voulais retrouver les notes de musique associées (do ré mi ...). J'étais incapable de le faire avec un piano ; les notes s'embrouillaient dans ma tête.
Avec ce petit programme, il suffit de pouvoir chanter la musique au micro.
J'ai publié ce programme ici (et l'ai baptisé voice2midi) :
http://davidferaoun.free.fr/eric/zik/voice2midi.php
Les sources sont aussi disponibles en GPL3 et LGPL.
C'est fait en java avec une applet signée (sinon, impossible de pouvoir écouter le micro...) ; les sources permettent aussi d'en faire une application stand-alone, mais je trouve cela moins pratique.
> Lire le journal (24 commentaires, moyenne: 2,3).
Enfin !
un soft pour apprendre à chanter correctement :)
tu l'envoies à la star'ac ?
en fait !
J'ai pas de micro, je chante pas, j'aurais sûrement jamais besoin de ton soft mais …
tu as eu une putain de vraie bonne idée !!! je trouve vraiment ça super.
Chapeau l'artiste :) c'est avec ce genre de petite histoire que j'ai envie d'apprendre à programmer, juste pour le plaisir de dire, j'en ai rêver, je l'ai fait !
La chanson est une industrie parce qu’une poignée d’imbéciles a réussi à être moins con que le reste.
(Coluche)
-
[^]Re: en fait !
pika plop !
Très très sympa le programme.
Par contre ça fait planter mon Firefox donc je passe par l'appletviewer.
Par contre, peux-tu nous "rappeler" comment on importe ton certificat pour autoriser ton applet à accéder au micro ?
J'a réussi à la faire marcher en éditant le fichier ~/.java.policy et en y mettant :
grant codeBase "http://davidferaoun.free.fr/-" {
permission javax.sound.sampled.AudioPermission "record";
};
Mais là je n'utilise pas le mécanisme de signature mais juste l'url de l'applet.
Ensuite je lance avec :
appletviewer http://davidferaoun.free.fr/eric/zik/voice2midi.php
Merci
-
[^]Re: pika plop !
Posté par eric () le 23/10/2008 à 01:07. (lien). Évalué à 2.Il me semble que je n'ai pas de certificat, mais juste une signature.
Quand je le teste chez moi (juste testé sous XP pour l'instant), firefox me demande si je veux bien exécuter l'applet, et ça tourne... Peut-être que ça dépend de la config ?
Merci en tous cas de l'astuce pour le faire fonctionner sans browser.-
[^]Re: pika plop !
Posté par uᴉpɹɐʌɹɐɟ (page perso, ) le 24/10/2008 à 19:08. (lien). Évalué à 2.cela me semble pas mal du tout, malheureusement je n'ai pu tester chez moi parce que je n'arrive pas (plus) à utiliser mon micro pour enregistrer :)
Est-ce que c'est une limitation technique ou conceptuelle qui fait que l'on ne peut enregistrer une suite de notes ? Cela serait pratique de pouvoir avoir toutes les notes en une seule prise, avec éventuellement les longueurs des notes d'exprimées à la fin pour avoir les rythmes.
Il existe également le format abc qui permet d'afficher des notes et convertir en midi, cela pourrait faire un bon format d'exportation en mode texte :
http://abcnotation.org.uk/--
"C’est un grave danger et seuls les imbéciles l’ignoreront, jusqu’au jour où il sera trop tard"
---------
Les dalles brillantes c'est moche et nul-
[^]Re: pika plop !
Posté par eric () le 24/10/2008 à 21:03. (lien). Évalué à 1.C'est une limitation dans la mesure où ça ne faisait pas partie du périmètre que je m'étais fixé (je n'en ai pas vraiment besoin...)
En pratique, j'utilise ensuite un autre logiciel pour rentrer les notes manuellement.
Utiliser ce format ABC pourrait être effectivement une évolution intéressante. Je ne vois pas de raison que cela soit impossible techniquement ou conceptuellement...-
[^]Re: pika plop !
Posté par uᴉpɹɐʌɹɐɟ (page perso, ) le 24/10/2008 à 21:29. (lien). Évalué à 2.je viens de voir qu'il existait une api pour java : http://code.google.com/p/abc4j/
Cela pourrait permettre d'afficher les notes :)--
"C’est un grave danger et seuls les imbéciles l’ignoreront, jusqu’au jour où il sera trop tard"
---------
Les dalles brillantes c'est moche et nul
-
-
-
Petite faute...
... sur le site : Cette application vous permet de déterminer la note de musique au moment où vous la chantez.
Sinon je peux pas essayer ça ici au boulot, mais vivement ce soir que je fasse mumuse avec !
T'as essayé avec des instruments monophoniques (flute, sax, guitare sur une seule note...)
Un moteur de recherche musical?
J'avais pensé à un moteur de recherche qui permettrait de retrouver un titre en chantant le thème dans un micro.
Je me demande si tu n'as pas codé la partie client d'un tel moteur.
Chapeau
Vincent
-
[^]Re: Un moteur de recherche musical?
Posté par Jehan (page perso, ) le 23/10/2008 à 13:17. (lien). Évalué à 2.Salut,
lorsque j'étais à l'université d'Aalborg, un groupe d'étudiants en Master travaillaient sur un projet similaire, qui consistait à savoir retrouver des morceaux lorsqu'on n'en connaissait que quelques notes.
Evidemment c'était plus complexe qu'une simple base de données "parfaite" car on ne trouverait rien à moins de se rappeler le morceau parfaitement et de savoir bien chanter! Or justement quand on veut utiliser ce genre de système de recherche, c'est souvent qu'on ne se rappelle pas bien le morceau d'une part, et même en s'en rappelant, on ne chante pas toujours parfaitement juste.
En effet il faut prendre en compte uniquement les intervalles d'une part (on peut changer le même morceau à diverses tonalités, ce qui compte est les intervalles), et aussi on peut chanter mal (donc être aux mauvaises notes, même en ne considérant que les intervalles). En fait, si je me souviens, le système créait des sortes de "partitions simplifiées" pour les mélodies qui notaient surtout les montées/descentes en fréquences. De sorte même qu'on pouvait faire des recherches sans chanter, ni micro. On est devant l'ordi et on se rappelle une mélodie. On n'y connaît pas forcément grand chose en musique, donc trouver des notes semble impossible. Par contre, tout le monde arrive plus ou moins à "sentir" que là, ça "monte", là ça "descend"... Et donc, on pourrait créer une sorte de pseudo-partition du genre "v^^--v" etc. pour dire "au début ça descend, puis on monte deux fois, ça reste à la même note, puis ça descend", etc.
Je sais pas trop jusqu'où ils sont arrivés avec ce projet, mais c'est assez intéressant. En appliquant à cela des stats (comme presque toujours en IA) pour gérer les erreurs, trouver les résultats les plus probants, etc. je pense qu'on peut obtenir quelque chose de sympa. :-)
A plouche.-
[^]Re: Un moteur de recherche musical?
Posté par Gusufyr () le 23/10/2008 à 19:19. (lien). Évalué à 2.Cela me fait penser à http://fr.musipedia.org/ , cela ne m'a jamais donné de bon résultat mais le concept est vraiment intéressant. Et apparemment le code en question (qui ne prend en compte que les intervalles) est le code de Parsons.
-
[^]Re: Un moteur de recherche musical?
-
[^]Re: Un moteur de recherche musical?
Posté par scls19fr (page perso, ) le 25/10/2008 à 11:04. (lien). Évalué à 2.Peut-être qu'une notion comme la distance de Levenshtein http://fr.wikipedia.org/wiki/Distance_de_Levenshtein (utilisée par la commande diff) et qui calcule la distance entre deux chaines de caractères pourrait être utilisée
Sinon des notions aussi autour de la corrélation http://fr.wikipedia.org/wiki/Coefficient_de_corr%C3%A9lation seraient également utiles pour mettre en oeuvre ce que tu évoques...
-
LAD / LAU
Bonjour
Mille fois merci, d' abord.
Eric, as tu pensé à poster la nouvelle sur les listes de diffusion ayant trait à la MAO avec gnu/linux ? Par exemple celle centrale de Linux Audio Developers et Linux Audio Users :
http://lad.linuxaudio.org/subscribe/lau.html
Celle devrait donner une belle visibilité à ton développement, auprès des utilisateurs chevronnés de linux pour l' audio, ainsi qu' auprès des developpeurs rendant notre chère plateforme si efficace dans ce contexte là aussi.
Cordialement.
-
[^]Re: LAD / LAU
Cool
Ça fait aussi accordeur de guitars ? :p
Milite pour un about:black sur les navigateurs ! ( シ Sauvons la planète ツ )
Plantage :-(
L'idée est intéressante mais ça plante quand je clique sur le bouton start, avant même que j'ai le temps de chanter :-(
Je vais jeter un oeil au source ; ce genre de fonction pourrait être sympa à ajouter dans un logiciel d'écriture de partition comme Songwrite 2 :-) (http://home.gna.org/oomadness/fr/songwrite/index.html)
-
[^]Re: Plantage :-(
Posté par eric () le 23/10/2008 à 22:04. (lien). Évalué à 2.Je viens de mettre à disposition la version standalone du programme.
Est-ce que cela fonctionne mieux ?-
[^]Re: Plantage :-(
Posté par Jiba (page perso, ) le 24/10/2008 à 21:26. (lien). Évalué à 1.Ça plante encore ; cette fois-ci j'ai les traces suivantes :
jiba dans tmp : java -version
java version "1.6.0_06"
Java(TM) SE Runtime Environment (build 1.6.0_06-b02)
Java HotSpot(TM) Client VM (build 10.0-b22, mixed mode)
jiba dans tmp : java -cp ./Voice2Midi-0.1-standalone.jar Voice2MidiJFrame
javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 44100.0 Hz, 16 bit, mono, 2 bytes/frame, little-endian not supported.
J'ai l'impression que le format de son de mon micro n'est pas supporté... pour info, il s'agit d'un micro sur port USB (qui fonctionne normalement bien sous Linux).
-
Les journaux sont destinés à des informations qui ne sont pas suffisamment intéressantes
pour être validées en dépêche (sinon n'hésitez pas à proposer votre information en
dépêche), qui sont sans rapport avec Linux ou le libre, ou simplement pour donner votre
avis. Si vous désirez poser une question, merci d'utiliser 

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.