Des tablatures pour vielle à roue avec Lilypond

English explanations at the end of the post.

Les joueurs de vielle à roue, surtout débutants, ont besoin de travailler tout particulièrement le jeu de la main droite, car c’est lui qui donne le rythme à la musique, grâce au chien. Mais ce n’est pas simple d’avoir les bonnes indications placées au bon endroit. Alors, suite à une discussion sur un forum, je me suis amusé à écrire une petite fonction en Scheme, pour faire le travail. Et tant qu’à faire j’ai aussi écrit le code qui écrit automatiquement la tablature en fonction de l’accord de la vielle. Au final ma petite fonction fait 444 lignes de code…

Et j’ai appelé ça hurdyTab, comme Tablature pour hurdy-gurdy. VielleTab ça le faisait pas. En revanche, je trouve que hurdyTab ça… Comment dire ? Ça chie à l’oreille !

Voici le résultat. Irréprochable, comme toujours avec Lilypond (cliquez pour agrandir)…

bourrée droite du pays fort

Pour ceux qui ne connaissent pas Lilypond, c’est un logiciel de gravure de partitions très puisant, libre, donc totalement gratuit, et disponible pour les trois systèmes d’exploitation majeurs du marché. Pour donner une idée de sa puissance, je connais quelqu’un qui compose des opéras avec…

Et pour ceux qui n’ont jamais entendu parler du langage de programmation Scheme (prononcez skiim’ pour faire branché !), il s’agit d’un dérivé épuré mais aussi puissant du langage Lisp qui est particulièrement orienté intelligence artificielle.

Explications

La ligne de doigté

Elle représente deux lignes en réalité :

  • la partie supérieure indique les numéros de doigts tels qu’ils ont été saisis dans la partition, comme à l’habitude, à la différence près qu’ils sont situés sur leur propre ligne, ce qui leur évite de zigzaguer verticalement en fonction de la position des notes ;
  • la partie inférieure affiche une tablature un peu à la façon des tablatures de piano, avec des lettres minuscules pour les notes non altérées et des majuscules pour les dièses – cette ligne peut ne pas être activée. Les indications d’octave ne sont pas comme sur les tablatures de piano indiquées sur des lignes différentes, mais avec la syntaxe habituelle de Lilypond, des apostrophes pour les octaves supérieures et des virgules pour les inférieures. Il est possible de personnaliser ces signes ainsi que leur position, avant ou après la lettre.

La ligne rythmique

Elle représente également deux lignes :

  • la partie supérieure affiche des symboles (ici des flèches) représentant le coup de poignée à donner, suivi parfois d’autres symboles indiquant si le coup doit ou non être gras – cette dernière indication est purement subjective, bien qu’on puisse lui donner a priori la signification suivante : chaque point correspond à environ un quart de la durée du temps ;
  • la partie inférieure affiche le numéro du coup de poignée.

Les coups de trois, quatre, six et huit sont implémentés.

Les symboles de coup (des flèches) ne sont pas basés sur un graphisme d’horloge (ce qui est parfois donné comme indication). Ils sont purement graphiques, un coup de quatre génère des flèches en carré, un coup de 3 en triangle, un coup de 6 en hexagone et un coup de 8 ? Hé bien vous avez gagné !

Coup de poignée

Les différents coups de poignée

Mais il est parfaitement possible d’opter pour la codification utilisée par Valentin Clastrier dans sa méthode, voire de se créer soi-même sa propre codification. Celle-ci étant totalement indépendante de sa notation, une partition pourra être échangée et correctement interprétée quand bien même tous les symboles seraient personnalisés.

Quelques autres options permettent d’obtenir une partition selon ses goûts :

  • possibilité de choisir d’afficher les flèches au-dessus ou au-dessous de la ligne, ou pas du tout ;
  • la même chose pour les numéros ;
  • possibilité de choisir différents modèles de symboles de coup gras.

L’accord

L’accord de la vielle peut être affiché ou non. Les accords Bourbonnais, Auvergnat et Vendéen sont pré-saisis, et un modèle est disponible pour créer d’autres accords.

De plus une instruction \mute permet de noter quelles cordes sont muettes.

Comment ça marche ?

Toutes ces lignes ne nécessitent pas d’être écrites chacune spécifiquement, c’est la même expression musicale qui est utilisée mais affichée dans des portées paramétrées différemment. Les portées qui contiennent la tablature sont interprétées par les fonctions scheme, l’une qui traduit les indications de coup en symboles, l’autre les hauteurs de notes en lettres, et les attache à la note.

La syntaxe est relativement simple :

  • on écrit en début de morceau l’instruction scheme suivante : #(define coup 4) pour indiquer que l’on utilise un coup de quatre – si on change de type de coup en cours de morceau on écrit la nouvelle instruction à l’emplacement correspondant dans l’expression musicale ;
  • on indique le numéro de coup ainsi : \1 pour le premier, etc. directement après la note ;
  • on indique également un éventuel doigté : -2, toujours après la note ;
  • pour les coups gras, on utilise (de la même façon que le numéro de coup) une des trois indications suivantes \gra, \grb ou \grc selon qu’on veut indiquer une valeur faible ou plus forte.

À titre d’exemple voici l’expression musicale correspondant à la partition affichée plus haut. Hé oui pour ceux qui ne connaissent pas Lilypond, c’est un logiciel où on saisit sa musique sous forme de texte, ce qui pourrait sembler archaïque, mais est pourtant infiniment plus rapide et précis que toute autre méthode.

Le bloc écrit g2-1\3\grb (début de la ligne 5) signifie : un sol (g) ayant la valeur d’une blanche (2) se joue avec le doigt 1 (-1) avec un coup de poignée en position 3 (\3) et un coup gras moyen (\grb).

Algorithme

Je ne peux résister au plaisir de vous donner l’algorithme que j’ai pondu pour déterminer quelle flèche utiliser dans le vecteur à partir du type de coup et du numéro. Il y a 8 flèches possibles (dont la numérotation commence à zéro). Pourquoi 8 ? Parce que pour ce que j’en connais, il me semble qu’une représentation des positions de coups de poignée sous forme de rose des vents semble réaliste.

Donc mon algorithme est le suivant : le numéro de symbole est le modulo 12 de l’arrondi à l’unité de (numéro de coup -1) multiplié par 8 (le nombre de flèches possibles) et divisé par le type de coup (le nombre de coups possibles). Hé oui avec un petit modulo, pour éviter qu’une saisie d’un numéro 5 dans un coup de 4 fasse tout planter parce que la flèche 9 n’existe pas…

D’ailleurs pour les valeurs du coup gras, c’est pareil, si c’est plus que 3 c’est plafonné, et moins que 0 aussi.

Débogage et évolution

La première version mettait un coup de 1 sur toutes les notes qui en étaient dépourvues. J’avais pris un petit raccourci dans une fonction qui raccourcissait un peu trop… Corrigé.
La version actuelle ne permet pas, contrairement à ce que j’annonce, de changer de type de coup en cours de morceau. Un peu plus complexe à gérer mais c’est prévu.

Téléchargement et installation

Il y a un pré-requis pour utiliser hurdyTab, c’est que bien évidemment Lilypond soit déjà installé sur votre système, avec ou sans éditeur graphique dédié. Si ce n’est pas encore le cas, le site officiel vous indique la marche à suivre.

Ensuite téléchargez l’archive correspondant à votre version de Lilypond et décompressez-la dans le répertoire de votre choix.

Cette archive contient deux fichiers :

  • hurdyTab.ly qui contient les options de personnalisation, le code des fonctions et la configuration des Staffs ;
  • empty-hurdyTab.ly qui est un fichier modèle abondamment commenté et qu’on peut arranger à sa manière.

Les explications contenues à la fois dans le fichier modèle et le fichier de fonctions (où elles sont de plus bilingues, anglais/français) sont normalement suffisantes pour en comprendre l’utilisation. Il n’y a donc pas de fichier d’aide.

Installez hurdyTab.ly où vous voulez mais pensez à mettre à jour le chemin d’accès à ce fichier dans empty-hurdyTab.ly s’ils ne sont pas placés tous les deux dans le même répertoire.

Saisissez votre musique dans le fichier modèle.

Et compilez…

Licence

Creative Commons BY NC ND. Ce qui signifie entre autres que ces quelques lignes de code sont totalement gratuites. Enjoy !

Par contre cela signifie aussi que vous ne pouvez pas supprimer la mention de copyright. Ce n’est pas trop cher payé, non ?

Améliorations possibles

Pourquoi pas la génération automatique d’une ligne de percussions, avec instrument personnalisable, pour que le fichier MIDI permettre d’entendre le chien sous forme d’un tambour ou autre ?

Remerciements

Comme d’habitude, un grand merci aux participants à la liste de discussion de Lilypond, et notamment Gilles et Pierre.

Le code

Pour ceux qui voudraient voir à quoi ça ressemble sans pour autant devoir télécharger.

Les fonctions d’hurdyTab

 Le fichier modèle

 English explanations

Short but better than nothing…

Download and unzip in your usual lilypond directory.  Then use the template file empty_hurdyTab_EN.ly to write your music. This file contains all the explanations (in english) you need to use it.  If you want more settings, they are in the first part of hurdyTab.ly, with comments both in english and french.

If you think I should write more explanations in english, feel free to tell it below, but first just have a look on the template file to see if you could use it easily.

 

Pour marque-pages : Permaliens.

2 Commentaires

  1. Merci. Pour la Cartronex, je pense avoir trouvé comment la fabriquer en petites séries, avec des feuilles de plastique épaisses utilisées en modélisme. Reste à trouver un imprimeur qui sache faire de l’impression laser couleur sur adhésif transparent…

    Et merci pour la relecture, se relire soi-même ne suffit jamais…

  2. Comme d’habitude, c’est parfait ! Explications détaillées et claires. Un novice peut commencer et s’en sortir (je crois !)

    Une ou deux fautes d’orthographe mais on peut laisser courir… (ligne 76 (fichier modèle) : le champS suivant…)

    Toutes mes félicitations pour ce travail qui sera certainement très utile.

    (Toujours pas réussi à faire ma cartronex ! J’ai abandonné. Tant pis !)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Protected with IP Blacklist CloudIP Blacklist Cloud