Post WIMP 2022 - Apprentissage du piano avec assistance visuelle

De Ensiwiki
Aller à : navigation, rechercher

Expert.png  Troisième Année 


Apprentissage du piano avec assistance visuelle
Projet Projet d'interactions post-wimp
Année 2021-2022
Étudiants Aloïs SIMON (MMIS)

Arthur MATHAIS (MMIS)
Guillaume RAFFIN (MMIS)
Johan PARDON (MMIS)

Encadrant François Bérard

Contexte et objectifs

Jouer d’un instrument est une activité plaisante qui n’est malheureusement pas à la portée de tous. Dans de nombreux lieux, on peut retrouver des pianos qui sont laissés à la disposition du public et où chacun peut s’exprimer comme il le souhaite. Mais apprendre à jouer d’un instrument est une activité compliquée et chronophage où il faut dans un premier temps apprendre à lire une partition avant de pouvoir réellement apprendre à jouer dudit instrument.


Nous avons donc eu l’idée d’une interface qui permettrait à un novice, ne connaissant rien à la musique, d’apprendre à jouer du piano. L’objectif de notre projet est donc d’implémenter un système permettant à un débutant de commencer à jouer des morceaux simples (à une main et avec peu de notes simultanées). Nous entendons par “novice” quelqu’un qui n’a jamais pris de cours de piano. Nous souhaitons qu’il joue le morceau de sorte à ce qu’il soit reconnaissable à l’oreille, même si le tempo n’est pas parfaitement respecté et qu’il y a des fausses notes. Nous souhaitions aussi voir jusqu’où un novice pouvait aller avec notre système, s’il était possible de lui faire jouer des morceaux plus difficiles.

Solution envisagée

Pour palier aux différents problèmes d'apprentissage du piano, nous avons pensé à un système qui permet à l'utilisateur d'apprendre à jouer un morceau grâce à des notes qui défilent devant lui au-dessus des touches du piano. Puisqu’un novice ne peut pas lire une partition, nous lui fournissons une indication visuelle des notes à jouer.

L’utilisateur se positionne sur une chaise, face au clavier du piano. Il active le dispositif et les notes du morceau choisi défilent depuis une surface située au-dessus du clavier. Il faut donc une surface plane et blanche de préférence pour un bon affichage de la partition. Les notes défilent à la vitesse du morceau. Nous souhaitions que le système attende que l’utilisateur joue les bonnes notes, c’est-à-dire que l’affichage se fige tant que l’utilisateur n’a pas joué correctement les accords qu’il doit jouer sur le moment. Nous envisagions également d'indiquer visuellement les erreurs, directement sur les touches du clavier, dans le but que l’utilisateur se corrige lui-même.

Nous avons envisagé de mettre en place une indication visuelle qui permet de préciser à l'utilisateur la pression à appliquer sur la touche. Nous avons aussi envisagé d'indiquer le doigt à utiliser pour appuyer sur chaque touche.

Problèmes rencontrés

Nous avons rapidement développé un premier prototype avec les fonctionnalités suivantes :

  • défilement automatique des notes (sans attendre l’utilisateur) ;
  • production du son correspondant à la touche de clavier enfoncée ;
  • calibration du système d’affichage.

Nous avons été étonnement surpris de voir que, malgré le système très intuitif, il était quasiment impossible de jouer une partition correctement. Lors de la conception de notre système, nous avons fait face à divers problèmes techniques. De plus, nous avons adapté notre prototype à la suite des premiers retours utilisateurs.

Calibration des touches

Le premier problème est la calibration de notre système par rapport au piano. En effet, nous avons dû prendre en compte le fait que les pianos pouvaient être de taille différentes, de position différente , d'espacement de touches différentes et que pour un même piano, si l'on déplace celui-ci d'un essai à l'autre, il faut pouvoir calibrer rapidement le système visuel à la position du piano sans devoir modifier le code. De plus, la projection vidéo déforme l’image produite par l’ordinateur.

Pour remédier à ce problème, nous avons implémenté un système de calibrage utilisable par le futur pianiste. Il suffit, lors de l'affichage visuel du système, de régler grâce aux flèches directionnelles, la position des touches, leur espacement et la limite d'affichage des touches. Un morceau “calibration” (ci-dessous) peut être sélectionné pour afficher toutes les touches blanches suivies de toutes les touches noires. Ainsi il est facile de régler le système pour qu'il puisse s'adapter à plein de configuration différentes.

Calibration des touches

Pression à appliquer

Lors de l'utilisation du clavier midi, mis à notre disposition, nous avons vu que celui-ci gère très mal la pression des touches. Si on appuie doucement la note ne s’active pas, si on appuie fort la pression transmise à l’ordinateur est maximale, sans entre-deux. Nous n'avons donc pas implémenté l’indication de la pression à appliquer sur les touches. De plus, lors de nos essais, nous nous sommes rendus compte que la concentration nécessaire à l'apprentissage d'un morceau était déjà importante, en se concentrant uniquement sur le positionnement des doigts dans les temps. Nous n'avons donc pas voulu surcharger l'utilisateur novice d'informations qui ne sont pas forcément pertinentes.

Arrêt du défilement des notes

Lors du premier test de notre système, les novices n'avaient pas le temps de réfléchir sur quelles touches appuyer avec leurs doigts, ce qui entraînait une perte de la synchronisation du pianiste avec la partition qui défilait. Une fois désynchronisé, il était difficile de s'y retrouver dans la partition et donc l'utilisateur ne jouait que quelques notes et donc fait défaut lors de l'apprentissage. Nous avons donc décidé d'implémenter une pause du défilement tant que l'utilisateur ne joue pas les notes correspondantes à ce qui est attendu. Une fois l'accord ou la note jouée, le défilement de la partition reprend normalement. On a observé qu'avec ce système, l'utilisateur prend son temps et se concentre plus sur le positionnement de ses doigts, au lieu de “courir après les notes à jouer”. La performance de l’utilisateur s’améliore systématiquement, à la fois qualitativement (rendu musical : on reconaît mieux le morceau) et quantitativement (moins de fausses notes, moins de notes oubliées). Affichage des touches noires. L'affichage des touches était initialement de la même couleur peut importe la touche ce qui entrainait donc une confusion entre deux touches proches telles qu'une noir et une blanche. Nous avons donc décidé de changer la couleur des notes défilantes pour les noirs afin de les différencier des blanches.

Etat des lieux

Nous avons donc amélioré notre premier prototype afin d’y incorporer différentes solutions aux problèmes évoqués ci-dessus. Nous avons réussi à implémenter la plupart des options de notre système, mis à part la pression des touches et l’indication du doigté, comme indiqué précédemment.

  • Les notes jouées sur le clavier MIDI sont analysée par le programme en temps réel et produisent un son immédiatement ;
  • Les notes visuelles correspondantes aux touches noires sont d'une autre couleur que celles correspondantes aux blanches ;
  • Les couleurs sont différentes pour la main droite et la main gauche ;
  • Une couleur gris pâle indique les silences durant lesquels il ne faut pas jouer de note.


  • Les notes défilent à une vitesse calculée pour reproduire le tempo du morceau ;
  • Lorsque la “note visuelle” arrive à une zone limite préalablement définie par l'utilisateur (généralement juste en haut des touches du clavier, cf. partie évaluation), celui-ci doit appuyer sur la touche correspondante, c'est-à-dire celle se trouvant face à l’indication visuelle. Si l’utilisateur n’appuie pas avant que l’indication visuelle dépasse la zone limite, l’affichage ajoute une indication colorée sur toute la touche du clavier, et se fige ;
  • Quand l’utilisateur appuie enfin sur toutes les touches nécessaires, le défilement reprend ;
  • Si l’utilisateur appuie sur une touche erronée (“fausse note”), une croix rouge est projetée sur la touche enfoncée, pour lui signaler son erreur ;
  • Point un peu plus délicat : dans un morceau, la même note peut être jouée plusieurs fois d’affilée, en relâchant le doigt entre chaque répétition. Ce relâchement est important pour jouer correctement le morceau. Si l’utilisateur ne respecte pas ce relâchement, le défilement se fige et attend qu’il relâche le doigt. Il devra ensuite jouer la note suivante, en reposant le doigt.


Voici une capture d’écran montrant un morceau (Save Your Tears arrangé pour piano) nécessitant un relâchement. On voit d’ailleurs des petits rectangles gris indiquant les pauses. La bande grise est la zone limite, dans laquelle l’utilisateur doit jouer les notes. Ici, le système attend que l’utilisateur joue la note sol. Il prolonge l’indication visuelle par une bande bleue qui, grâce à la projection vidéo, s’affiche sur la touche physique. Le but est de faciliter le repérage de la note sur le clavier.

Défilement des touches

Evaluation de l'interaction

Exemple d'utilisation 1

Exemple d'utilisation 2

Après plusieurs tests des différentes versions de notre système par différents utilisateurs, voici ce que nous pouvons dire sur les retours des utilisateurs.

Pour l'affichage :

  • Avec des guides visuels pour les notes (prolongement de celles-ci pour voir à quelles touches elles correspondent), les utilisateurs novices réussissent à mieux suivre la partition, avec le premier prototype. Ces guides sont devenus moins utiles avec la version finale qui attend l’utilisateur et prolonge les notes à jouer. Il semblerait que le besoin d’anticipation pour tenter de suivre des notes défilant à toute vitesse rend nécessaire la présence des guides. Lorsque ce besoin d’anticipation disparaît, l’utilisateur peut se concentrer sur les notes imminentes, qui sont donc plus proches du clavier physique et donc plus faciles à identifier.
  • Les guides ne sont, dans tous les cas, pas très utiles pour les utilisateurs confirmés ;
  • Les rectangles sont proches, on se trompe parfois de touche (ce serait plus facile sur un plus grand clavier). Également, la différence entre l’indication visuelle des touches blanches et celle des touches noires n’est pas évidente pour tout le monde. Une couleur plus différente pourrait aider.


Pour la difficulté des morceaux :

  • Les débutants ont beaucoup plus de mal avec les touches noires qu’avec les touches blanches, plus difficiles à atteindre par les doigts. En ajoutant un score d’erreur, nous avons vu quantitativement que le taux d’erreur était plus élevé pour les noires. Il faut donc avoir des morceaux spécifiques aux débutants ;
  • Les morceaux à deux mains sont plus durs à suivre pour les novices. Lorsque le système n’attend pas l’utilisateur, ils deviennent injouables ! Avec la version finale du système, plusieurs novices ont réussi à jouer “pas trop mal” des morceaux à deux mains relativement simples ;
  • Lorsque l’écart physique entre deux notes successives est trop grand (par exemple lorsque l’on saute d’un octave), ou que l’on passe d’un type de touche à l’autre (d’une blanche à une noire ou vice-versa), le morceau est jugé comme étant plus difficile.

Pour la vitesse de défilement :

  • Lorsque le système n’attend jamais l’utilisateur mais que l’on choisit une vitesse plus lente pour les morceaux, les utilisateurs adoptent d'autres stratégies pour les morceaux à deux mains : ils attendent que les notes arrivent en bas du clavier pour appuyer dessus ;
  • Le placement des doigts est beaucoup plus facile avec l'attente de l'utilisateur. On a le temps de chercher où sont les notes, et on peut mieux réfléchir au placement des doigts ;
  • Le système final est intransigeant sur le relâché des notes. Si on ne relâche pas les notes au bon moment, ce qui arrive souvent, c’est considéré comme une erreur.

Conclusion

Notre prototype nous a permis de tester correctement l’interaction et de soulever plusieurs problèmes auxquels nous avons pu par la suite répondre avec les solutions que nous pensions idéales. Bien entendu il ne suffira pas pour permettre à un novice de jouer comme s’il avait pris des leçons de piano pendant des années. Mais il leur permet néanmoins de jouer des mélodie reconnaissable et de commencer à apprendre à placer ses doigts et à enchaîner les notes.

L’asservissement du système aux entrées de l’utilisateur est crucial pour améliorer son expérience. Les morceaux à deux mains étaient très difficiles à jouer avec le prototype, même pour des étudiants qui jouaient du piano régulièrement. Au contraire, avec la version finale, des novices ont pu jouer des morceaux simples à deux mains, certes avec des erreurs, mais suffisamment bien pour que l’on puisse reconnaître le morceau à l’oreille. De plus, les utilisateurs semblaient essayer d’optimiser le placement de leurs doigts sur le clavier, malgré l’absence d’indication à ce sujet.


L’aspect ludique de notre prototype nous a par ailleurs montré l’intérêt de ce type d’intéractions, notamment au vu de l'engouement des des divers participants voulant l’essayer.


Nous avons pu voir en direct l’amélioration des compétences des participants, notamment au niveau du placement des mains et du rythme du jeu. Cette amélioration est visible quantitativement grâce au score d'erreur. Sur le morceau "joyeux anniversaire" à une main, les scores totaux des utilisateurs novices vont de 441 à 605 lors de la première répétition, et de 157 à 331 lors de la troisième répétition. Plus le score est faible, plus l'utilisateur joue fidèlement le morceau.