lilypond-user-fr
[Top][All Lists]
Advanced

[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

Attachment: tabladiato3.png
Description: PNG image


reply via email to

[Prev in Thread] Current Thread [Next in Thread]