Composition musicale pour guitare sur surface tactile (Post-WIMP 2017-2018)
| |||
---|---|---|---|
Projet | Projet d'interactions post-wimp | ||
Année | 2017-2018 | ||
Étudiants | Vincent Godart (MMIS - IRVM) Benoît Leroy(MMIS- IRVM) | ||
Encadrant | François Bérard |
Sommaire
Motivations
Le sujet auquel nous nous sommes intéressé est la création et la modification de tablatures: les partitions pour guitares. Les solutions existantes aujourd’hui sont plutôt fastidieuses et consistent soit à écrire la tablature directement dans un fichier texte, soit d’utiliser un logiciel permettant d’éditer les notes une par une. La façon la plus simple d’effectuer cette tâche serait de pouvoir remplir la tablature en même temps que le guitariste joue, par reconnaissance de sons. Le gain de cette méthode est évident car il serait en théorie possible d’ajouter plusieurs notes par seconde. Les méthodes actuellement utilisées, en revanche, nécessitent beaucoup plus de temps.
Néanmoins, pour avoir un tel gain d’efficacité, il faudrait que la reconnaissance de son soit parfaite, or de nombreux problèmes peuvent survenir : l’appareil enregistrant le son va capter du bruit qui peut perturber la détection de notes par moments, l’utilisateur peut se tromper dans le morceau qu’il joue, la reconnaissance exacte de la corde et de la frette jouées est difficile car plusieurs combinaisons sont possibles dans la plupart des cas.
Pour toutes ces raisons, nous avons imaginé une application qui mélange la reconnaissance de son et l’édition de la tablature via un écran tactile, et qui pourrait ainsi faciliter la création de tablature. Le but de notre projet est donc de proposer une interface et des interactions avec l’utilisateur, et de tester leur pertinence ainsi que leur efficacité.
Interface et interactions utilisateur
Afin d’assurer toutes les fonctionnalités pour l’édition de tablature, l’interface de notre application est composée de deux parties séparant l’écran dans le sens de la largeur. La première est une zone dans laquelle on peut ‘scroll’ horizontalement et qui contient la tablature à proprement parler, c’est à dire l’ensemble des notes et des silences. Une note est représenté par un disque blanc placé sur la corde correspondante et contenant, en orange, le numéro de la frette. Elles ont une taille fixe, ainsi une note peut être répétée plusieurs fois sur la tablature afin de représenter qu’elle est joué sur une plus longue durée. Cette taille fixe permet aussi de représenter les silences par un espace vide dans la tablature. Cette partie de l’écran contient en plus, sur le haut, une barre de défilement afin de rendre le parcours de la partition beaucoup plus rapide. Pour finir, le dernier élément de cette partie est un curseur modélisé par une barre verticale rouge. La seconde partie de l’écran est composée de quatre boutons cliquables: le premier est une double flèche vers la gauche représentant un retour au début de la partition, le deuxième un bouton “play” classique qui permet de relire la partition et qui se transforme en bouton pause, le troisième est un bouton “microphone” qui permet d’enregistrer les notes jouées par une guitare et le quatrième est un bouton d’option ouvrant un menu avec le tempo, la possibilité de supprimer l'entièreté de la partition et la fermeture du menu.
Afin d’éditer la partition, voici les interactions qui ont été implémentées:
une note peut être sélectionnée par un touché court et devient donc bleue. Apparaît alors, dans la partie basse, une zone scrollable horizontalement contenant les numéros de frettes sélectionnables, centrés sur celui courant. La note peut être changée de corde par “drag and drop” sur la nouvelle corde. Lors du déplacement de celle-ci, une zone ‘supprimer’ apparaît en bas et la note peut y être déposée pour la suppression. Un touché court ailleurs que sur une note déplace le curseur rouge entre deux notes, sa position est l’endroit ou les nouvelles notes seront ajoutées. Pour se faire, il suffit d’appuyer sur le bouton microphone et de jouer les notes sur sa guitare. Afin de tester l’application, les notes sont ici générées aléatoirement et il suffit de réappuyer au même endroit, sur le bouton ‘stop’ qui est apparu, pour arrêter l’enregistrement. Une fois la tablature avancée, il est possible de se déplacer dedans en balayant l’écran ou bien en jouant sur la barre de défilement en haut ou encore en cliquant sur le premier bouton afin de revenir au début.
Au niveau de l’implémentation, nous avons réalisé le prototype à l’aide d’une simple page HTML avec du CSS pour l’aspect et du Javascript pour l’interactivité. L’idée derrière ceci était de pouvoir créer une application android facilement, avec des outils comme Cordova, tout en ayant un confort de création et de test de l’interface sur des ordinateurs. En fin de compte, l’application a été utilisée dans sa simple version web car cela était suffisant pour tester l’interface avec du toucher en l’exécutant sur un ordinateur avec un écran tactile.
Tests de l’interface
Protocole mis en place
Le but des tests mis en oeuvre était d’évaluer l’aspect “intuitivité” et l’aspect “efficacité” de l’interface. Pour se faire, nous avons décidé de mettre en place le protocole suivant.
Premièrement, mettre l’utilisateur face à l’interface vierge et lui demander d’enregistrer une vingtaine de notes; lui faire changer la corde d’une note enregistrée et non visible (afin de le faire défiler); lui demander de supprimer une note; lui demander d’ajouter quelques notes au milieu de la tablature; et enfin lui demander de changer la frette/hauteur d’une note. Pendant ces manipulations, le temps était enregistré.
Ensuite, une explication détaillée de l’interface lui était offerte (afin d’enlever le facteur découverte et de laisser place à la performance), et deux derniers exercices lui étaient proposées : la recopie d’une tablature existante (d’une longueur de 8 notes) sur notre application ainsi que sur un bloc-note textuel avec une partition ASCII comme il est classique d'en trouver sur internet.
Résultats obtenus
En ce qui concerne la partie intuitivité, les résultats semblent montrer que les interactions sont naturelles, sauf en ce qui concerne l'ajout de notes dans la tablature et l'enregistrement, qui correspondent à la même action. Les courbes suggèrent aussi que les interactions liées au changement de frette et à la suppression de notes peuvent être améliorées.
Pour les tests de performances, on constate que, parmi notre échantillon de cobayes, la création d'une tablature simple dans un fichier ASCII est plus rapide qu'avec notre application. On voit aussi que les résultats obtenus avec les fichiers ASCII sont plus "tassés", ce qui laisse suggérer une certaine habileté à manipuler un fichier texte parmi nos testeurs.
Interprétation des résultats
Il y a quelques imprécisions qui méritent d’être relevées concernant les tests. En effet, le panel de candidat n’était pas représentatif d’un réel échantillon d’utilisateurs potentiels de l’application (presque tous étaient très confortable avec l’informatique, d’où la rapidité globale à éditer les fichiers ASCII). On notera également que les conditions d’examen n’étaient pas optimales, la plupart des candidats n’avaient eu qu’une brève description du principe de l’application et pas forcément saisi le principe d’enregistrement des notes. Faute de pouvoir le faire discrètement, ils étaient également au courant qu’ils étaient chronométrés, ce qui a inévitablement créé un challenge de “qui aura le meilleur score” pas forcément positif pour nos tests.
De plus, les tests de performance étaient faussés par le fait que les notes affichées étaient totalement aléatoires (version prototype). Le but du produit final est de pouvoir jouer la mélodie à la guitare est que celle-ci s’affiche directement à l’écran, d’où le gain de temps potentiel par rapport à l’édition texte. Dans nos tests, les candidats faisaient semblant de jouer la mélodie et le résultat obtenu était complètement artificiel, donc davantage plus long pour changer chaque note individuellement.
Un certain nombre de remarques sur l’interface a également été fait par les candidats. On notera : une frustration certaine que la zone de défilement pour la frette des notes n’accepte pas un appui direct sur la valeur voulue (mentionné par beaucoup de candidats !) et l’absence gênante d’auto-défilement lors de l’enregistrement. Quelques utilisateurs ont également tenté d’appuyer sur “play” pour enregistrer. L’aspect général de l’interface a globalement été apprécié. La majorité de ces remarques est toutefois dû à l’absence de phase de test pendant le développement, puisque ce sont des points qui auraient été corrigés avant la version “finale” du prototype.
Conclusion
Ce projet nous a permis de réaliser une application en nous concentrant plus sur les interactions avec l’utilisateur que sur le développement des fonctionnalités en elles-mêmes. La principale difficulté rencontrée était d’établir un ordre de priorité pour les fonctionnalités que nous avions initialement envisagées. En effet, la version 0 que nous avons codée est loin d’être complète. Elle ne gère pas l’édition de silences ou d’accords par exemple. Plus important encore, la détection du son, qui est la partie la plus importante de l’application, n’a pas été abordée non plus. Ce choix était nécessaire car il s’agit d’une étape relativement complexe, à cause de l’exigence imposée sur la précision du résultat, et qui n’implique pas d’interaction avec l’utilisateur intéressante dans le cadre de ce cours.
Un point important retenu suite à ce projet est qu’il est important de faire tester une application à des utilisateurs potentiels. Même si les fonctionnalités sont correctement implémentées, il est important de tester l’aspect intuitif et pratique de l’interface proposée, ce qui est difficile à réaliser uniquement avec des tests unitaires ou bien des tests réalisés par les développeurs. Ainsi, la prochaine étape de développement serait probablement d’apporter les corrections suggérées par nos testeurs.