IMA4 2018/2019 P73
Sommaire
Présentation générale
- Projet : Ecriture automatique de partition musicale
- Le but de ce projet est de mettre en place un procédé de traitement de signal permettant de récupérer informatiquement les notes et rythmes jouées depuis une guitare électrique. Les données seront alors automatiquement traduites en une partition de musique.
Etudiants: Hugo LEURENT Fabien RONCKIER
Encadrants: Alexandre Boé Xavier Redon Thomas Vantroys
Description
Description générale
Ce projet nous trottait dans la tête depuis quelque mois déjà, avant même notre rentrée en IMA 4. Sachant que nous aurions à réaliser un projet tout au long du S8 mettant en avant nos connaissances acquises jusqu'ici, nous avions déjà commencé à réfléchir à la direction que nous voudrions prendre. Passionnés de musique, nous avons alors eu l'idée d'associer cette passion à ce projet pour tenter d'apporter quelque chose qui pourrait s'avérer utile et faciliter la vie d'un musicien.
En tant que musicien, il est parfois bien long de réécrire une idée ou même tout un morceau sur une partition, surtout informatiquement. Des logiciels existent pour cela, mais la plupart sont payants. De plus, il faut bien souvent tout taper à la main, ce qui peut prendre plusieurs heures. Nous voulions avec cette idée que chacun puisse, en seulement quelques minutes, retranscrire une idée ou un morceau sur une partition rien qu'en se branchant et en jouant. Cela permettrait même à quelqu'un qui s'y connaît peu en solfège d'écrire sa partition, tout aussi rapidement que n'importe quel musicologue aguerri.
C'est alors que nous avons eu l'idée de cette partition qui s'écrirait automatiquement. Le principe serait le suivant : il suffirait de brancher sa guitare électrique à son ordinateur, de lancer le logiciel puis l'acquisition, et la partition de ce que nous jouons s'écrirait devant nos yeux. Le logiciel aurait un métronome intégré qui permettrait au musicien de jouer dans le temps pour que les rythmes soient correctement retransmis. Pour une meilleure fiabilité, nous pensions faire jouer le morceau plusieurs fois pour s'assurer de la véracité des notes et rythmes captés par l'ordinateur.
Description technique
Techniquement, ce projet pourrait être divisé en trois parties distinctes. L'intérêt est que chacune de ces parties mettent en oeuvre des connaissances apprises dans les différents modules d'IMA.
* Conception électronique :
Pour relier notre instrument (ici une guitare électrique) à l'ordinateur, nous souhaitons concevoir une carte électronique dotée d'un microcontrôleur. La carte électronique comportera une entré Jack 6.35mm, un préamplificateur (les signaux d'une guitare n'étant que de l'ordre de la dizaine de mV), la partie microcontrôleur qui réalisera la conversion analogique-numérique et le traitement du signal, et enfin une sortie USB vers le PC.
* Traitement de signal :
Cette partie s'avérera fondamentale, puisque la fiabilité de notre projet reposera sur le traitement des signaux reçus depuis notre guitare pour en extraire les bonnes notes. Il faudra alors trouver un moyen d'effacer au maximum le bruit dans nos mesures, d'effectuer des mesures de fréquences précises, mais aussi des mesures rapides pour que la partition s'écrive en temps réel. Nous devrons alors procéder à plusieurs études et tests pour trouver un compromis entre rapidité, précision des mesures et utilisation de la mémoire. Nous programmerons le microcontrôleur (certainement de la catégorie des STM32F4) de façon à réaliser le traitement voulu pour l'envoyer ensuite vers le PC.
* Conception logicielle :
Enfin, une partie de programmation et d’interfaçage graphique pour retranscrire les signaux reçus sur une partition. Le logiciel devra être clair et compréhensible pour un utilisateur lambda. L'utilisateur pourra régler plusieurs paramètres, comme la vitesse du métronome (donc le tempo de la musique), le nombre de temps par mesure, ou ben le nombre d'acquisitions voulues.
Objectifs
Pour obtenir quelque chose de fonctionnel à la fin du projet, nous pensons fonctionner par paliers d'objectifs à atteindre tout au long du semestre. Jusqu'à arriver, pourquoi pas, au rendu final espéré en premier lieu.
Nous commencerons par la réalisation de la carte électronique. Il nous faudra bien sûr mettre en œuvre nos connaissances théoriques pour placer au mieux les composants au service des fonctionnalités voulues. Le schematic , la réalisation du PCB et les soudures seront alors des étapes importantes à ne surtout pas négliger. Une fois cette carte réalisée, la première grosse étape aura été passée.
Nous arrivons ensuite aux parties traitement du signal et conception de l'interface graphique de la partition.
Côté traitement de signal :
Pour le traitement de signal, il faudra en premier lieu dimensionner le problème, choisir les bons paramètres d'échantillonnage et le moyen de réaliser le traitement. Nous pensons partir sur un STM32F4, microcontrôleur ayant largement les capacités de réaliser ce que nous souhaitons.
Pour tester le bon fonctionnement de notre traitement de signal, nous pensons également le faire par étapes :
- Dans un premier lieu, tester sur un enregistrement en .wav ou .mp3 déja existant, et sur une seule note. Cela permettra d'ignorer les bruit générés lors de l'acquisition.
- Prendre ensuite en compte le bruit généré par la carte électronique et les micros de la guitare et adapter le traitement en fonction.
- Vérifier que les fréquences sont correctement reconnues et qu'on se rapproche assez de la note voulue. Toujours en n'étudiant qu'une seule note et non tout un morceau.
- Enfin, étudier la partie temps réel de l'acquisition en traitant le morceau dans son ensemble, pour obtenir au final des fréquences en fonction du temps.
Côté conception logicielle :
Après avoir choisi le langage de programmation adéquat, il serait plus judicieux de créer un premier programme plus simple, pour se familiariser avec le langage et les outils d'interfaçage graphique.
Un accordeur de guitare pourrait être un bon début. Il suffirait la fréquence d'une note jouée (d'abord depuis un enregistrement puis ensuite de notre guitare lorsque nous aurons réalisé la partie TS). Le logiciel afficherait la note la plus proche et si la fréquence est trop haute ou trop basse.
Une fois plus à l'aise avec ces outils, il devrait être plus abordable de créer notre fameux outil d'écriture automatique de partition.
Reste à voir jusqu'où nous pourrons arriver dans ce projet, le but étant en fin de S8 d'avoir un outil fonctionnel et présentable, quitte à devoir repenser nos plans prévus à la base si nous faisons face à des imprévus.
Analyse du projet
Positionnement par rapport à l'existant
Il existe de nombreux logiciels d'écriture de partition (Guitar Pro, Musescore... ), mais très peu ont la capacité de l'écrire automatiquement directement depuis un instrument. Tous ces logiciels ne permettent que l'écriture à la main d'une partition, et notre projet pourrait alors s'avérer une fonctionnalité bonus pour ce genre de logiciels.
Un principe se rapprochant du projet que nous souhaitons accomplir serait celui de Rocksmith. Ce jeu video utilise un câble qui relie notre guitare au pc pour comprendre les notes et accords jouées par l'utilisateur. Nous pourrions nous inspirer de son système de fonctionnement pour notre projet.
Honnêtement, nous ne pensions pas qu'il existait déjà un système capable de reconnaître les notes et de les retranscrire comme nous souhaitons le faire. Cependant, nous sommes tombés sur AudioScore lors de nos recherches. Ce logiciel réalise exactement ce que nous souhaiterions accomplir : transcrire une partition depuis un enregistrement.
Analyse du premier concurrent
Rocksmith est un jeu vidéo développé par Ubisoft depuis 2011. A ce jour, deux opus sont sortis. La particularité de ce jeu est qu'il se joue via sa propre guitare électrique, branchée à son PC, et non une manette ou un clavier. Le PC reconnaît ensuite les notes et accords joués pour les retranscrire en temps réel sur l'écran.
Ce jeu a pour but d'apprendre la guitare aux guitaristes débutants, ou bien des morceaux plus compliqués à des guitaristes accomplis, grâce à un catalogue de morceaux pour tous les niveaux de musiciens.
Bien que le but final ne soit pas le même, le principe d'acquisition des signaux est sûrement très similaire à ce qu'on souhaite faire. Après tout, il s'agit dans les deux cas de capter, traiter et utiliser les informations d'un signal issu d'une guitare électrique pour les afficher ensuite à un utilisateur.
Nous ne considérerons pas Rocksmith comme un concurrent direct à proprement parler, mais plutôt comme une application pour les musiciens qui compléterait la nôtre : d'un côté l'apprentissage de la guitare, de l'autre côté la retranscription sur une partition. La concurrence a lieu dans la similarité d'acquisition du signal.
Pour y avoir joué personnellement, nous avons pu constater une légère latence dans ce jeu. Comme quoi même chez des professionnels, la partie temps réel du traitement de signal est un réel défi, qu'il nous faudra prendre absolument en compte.
Analyse du second concurrent
Guitar Pro est un logiciel d'écriture de partition. Bien qu'un bon nombre de logiciels de ce type existent, Guitar Pro est l'un des plus complets avec une banque de sons permettant d'écouter ses partitions, pour de multiples instruments. C'est d'ailleurs le leader du marché et un bon nombre de partitions sont aujourd'hui écrites sur GP. Il devient alors simple d'écrire et de composer dans morceaux, même sans toucher d'un instrument.
Notre projet se démarque de Guitar pro dans le sens ou nous souhaitons passer outre sa principale contrainte : devoir tout écrire à la main. Ecrire un morceau prend de longues heures sur ce logiciel.
Nous pourrions imaginer notre projet comme une fonctionnalité additionnelle de ce logiciel, qui permettrait de jouer le morceau pour écrire directement la partition sur GP. Les deux logiciels se complètent bien puisque nous pourrions imaginer écrire la grosse partie de la partition via notre projet, puis fignoler les détails sur Guitar Pro, toujours dans le but de gagner du temps sur l'écriture.
Scénario d'usage du produit ou du concept envisagé
ghjklmù
Réponse à la question difficile
Préparation du projet
Cahier des charges
Choix techniques : matériel et logiciel
Liste des tâches à effectuer
Calendrier prévisionnel
Réalisation du Projet
Feuille d'heures
Tâche | Prélude | Heures S1 | Heures S2 | Heures S3 | Heures S4 | Heures S5 | Heures S6 | Heures S7 | Heures S8 | Heures S9 | Heures S10 | Total |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Analyse du projet | 0 |