[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Tablatures diato (was : paramétrage pointuuuuu...)
From: |
Daniel Cartron |
Subject: |
Tablatures diato (was : paramétrage pointuuuuu...) |
Date: |
Mon, 15 Sep 2008 20:39:30 +0200 |
User-agent: |
KMail/1.9.9 |
Le lundi 15 septembre 2008, Daniel Cartron a écrit :
> > il faudrait que je puisse
> > dire à Tab_note_heads_engraver que la première corde n'est pas frettée
> > par demi-tons mais en intervalles suivants : 4 7 12 et la deuxième en 2 5
> > 9 11, les 3me et 4me reprenant le mm schéma.
>
> En fait on peut mm faire plus simple, si je peux indiquer qu'on numérote à
> partir de la corde la plus grave et non la plus aiguë, et si je peux
> surcharger le numéro de case calculé avec un algorithme différent sur
> chaque corde. Algorithme simple du genre( partie entière de (numéro calculé
> +x)*y/z)
Finalement j'y suis arrivé, à part la surcharge des numéros de case... J'ai
réussi à recaler les lignes, et tout est bien placé (restera comme je l'ai
dit du fignolage à faire) mais le principe est celui-ci : on considère que le
clavier extérieur du diato poussé est une pseudo-corde (1) , et une autre (2)
si on le tire. Idem pour l'intérieur (3 et 4). Ce qui impose de préciser pour
toute note saisie \1 \2 \3 ou \4. Un peu lourd mais bien moins que devoir
utiliser des lyrics. Si je savais où aller bricoler le code j'essaierai bien
d'implémenter mon algorithme complet qui permettrait de ne saisir que le
clavier et non aussi son sens, mais dans un premier temps, ça ira comme ça.
Ensuite on rajoute un TabStaff bricolé pour n'avoir que 4 cordes mais
réparties de part et d'autres de 2 lignes, et on joue sur l'accord des cordes
avec \set TabStaff.stringTunings. J'ai fait ça pas mal au pif pour coller à
mon algo, ce serait pratique d'avoir moyen de mettre une variable qq part
pour ajuster globalement ces valeurs en fonction de la tonalité du diato.
Reste que les numéros apparaissant ne sont pas les bons, mais les algorithmes
partiels pour y arriver sont (si on considère que le numéro calculé par
lilypond est X) :
claviers poussés (pseudo-cordes 1 et 3) : ENT((X+1)/4)+3
ce qui remplace la séquence
0 4 7 12 16 19 24 28 31
par
3 4 5 6 7 8 9 10 11
claviers tirés (pseudo-cordes 2 et 4) : ENT((X+1)/3)+3
ce qui remplace la séquence
0 3 7 9 12 15 19 21
par
3 4 5 6 7 8 9 10
ce qui est conforme à un clavier de diato, si on en tient pas compte des deux
boutons du bas qui ne servent jamais et en plus ne sont pas standards...
Un petit exemple :
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\include "italiano.ly"
% désolé j'aime bien écrire en italiano
\header {
title = "Tablatures de l'accordéon diatonique"
tagline = ""
composer = "Daniel Cartron"
}
Melodie = \relative sol' {
\clef treble
\key sol \major
\time 4/4
{ sol,8\1^"Clavier de sol" la\2 si\1 do\2
re\1 mi\2 fad\2 sol\1
la\2 si\1 do\2 re\1
mi\2 fad\2 sol\1 la\2
si\1 do\2 re\1 mi\2 }
\bar "|."
\break
\key do \major
{
do,,\3^"Clavier de do" re\4 mi\3 fa\4
sol\3 la\4 si\4 do\3
re\4 mi\3 fa\4 sol\3
la\4 si\4 do\3 re\4
\bar "|." }
}
<<
\new Staff { \clef treble \Melodie }
\new TabStaff
\with
{
\remove "Time_signature_engraver" % on vire
l'indication de métrique qui ne
sert à rien et encombre
\remove "Clef_engraver" % on vire la clé TAB qui fait
moche...
% \override Stem #'transparent = ##t \override Beam
#'transparent = ##t %%
affichage ou non des hampes
}
{
\stemDown % les hampes en bas, au cas où on veut les
afficher
\override Beam #'damping = #100000 % pour avoir des
ligatures horizontales
% \set Staff.instrumentName = "A" % Nom des claviers à
positionner comme il
faut, reste à faire, probablement à coup de markup...
\set TabStaff.stringTunings = #'(-5 -3 0 2) %
paramétrage des pseudo-cordes
correspondant aux claviers en poussé et tiré
\override Staff.StaffSymbol #'line-positions = #'(-2 2)
% décalage des
lignes de façon à respecter l'aspect d'une tablature de diato
\Melodie
}
>>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
et le résultat en pj.
Je ne sais pas si on peut insérer mes algorithmes sous forme de markup dans le
TabStaff, mais ce serait une bonne façon d'avoir ce qu'on veut sans toucher
au code.
--
Cordialement, Daniel Cartron
« La vieillesse, en définitive, n'est que la punition d'avoir vécu. »
E. M. Cioran
tabladiato3.png
Description: PNG image