paramétrage pointuuuuu de Tab_note_heads_engraver

Salut à tous,

Pour rebondir sur les mails traitant des tablatures d'accordéon diatonique,
dont les miens, j'aimerais apporter une petite contrib...

J'ai _presque_ réussi à faire ça mais le pb est qu'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 derxième en 2 5 9 11,
les 3me et 4me reprenant le mm schéma. Et aussi lui dire que la première
corde n'est pas la plus aiguë mais la plus grave, pas trouvé comment faire
ça...

Si on on peut faire ça je pense qu'on peut faire des tablatures pour diato.

···

--
Cordialement, Daniel Cartron
« Le café est un breuvage qui fait dormir quand on n'en prend pas. »
Alphonse Allais.

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)

Si je peux faire ça les tablatures de diato sont quasiment opérationnelles...
Faudra fignoler le look mais ça marchera.

ci-joint un exemple, mais comme annoncé les tablatures sont la tête en bas, et
les numéros sont à recalculer.

···

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.

--
Cordialement, Daniel Cartron
« Il faut exiger de chacun ce que chacun peut donner. »
Antoine de Saint-Exupéry - Le petit prince

> 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.

···

Le lundi 15 septembre 2008, Daniel Cartron a écrit :

--
Cordialement, Daniel Cartron
« La vieillesse, en définitive, n'est que la punition d'avoir vécu. »
E. M. Cioran

Je reviens là-dessus, personne n'a d'idée sur ce sujet ? C'est dommage, les
tablatures pour diato sont quasiment au point à part ce détail (qui n'en est
peut-être pas un d'ailleurs...)

···

Le lundi 15 septembre 2008, Daniel Cartron a écrit :

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
« Petit poisson deviendra grand si le pêcheur en raconte la prise. »
Robert Sabatier - Le livre de la déraison souriante

Je serais ravi d'avoir une idée, mais je n'ai pas bien compris
pourquoi tu parles de markup. Ce que tu cherches à faire, c'est bien à
substituer d'autres chiffres de doigtés à ceux affichés, non ? (auquel
cas j'ai peur que ça se joue dans le C++...)

Cordialement,
Valentin

···

Le 24 septembre 2008 07:42, Daniel Cartron <****@****> a écrit :

Je reviens là-dessus, personne n'a d'idée sur ce sujet ? C'est dommage, les
tablatures pour diato sont quasiment au point à part ce détail (qui n'en est
peut-être pas un d'ailleurs...)

Je serais ravi d'avoir une idée, mais je n'ai pas bien compris
pourquoi tu parles de markup.

Oui c'est sans doute override que j'aurais du mettre

Ce que tu cherches à faire, c'est bien à
substituer d'autres chiffres de doigtés à ceux affichés, non ?

oui exactement

(auquel cas j'ai peur que ça se joue dans le C++...)

arghhh ça fait pas mon affaire... Mon idée était que si on sait où et comment
ces chiffres sont calculés on pourrait faire la substitution.

···

Le mercredi 24 septembre 2008, Valentin Villenave a écrit :

--
Cordialement, Daniel Cartron
« La boussole est une espèce de montre qui indique toujours midi et demie. »
François Cavanna - Le saviez-vous ?

une autre piste serait de pouvoir modifier les cordes indépendemment, du genre
les frettes ne sont pas disposées tous les demis-tons, mais on pourrait dire
que sur une corde on a tierce quinte octave et sur une autre les autres
intervalles... Mais chuis pas sur que ce soit plus simple...

···

Le mercredi 24 septembre 2008, Valentin Villenave a écrit :

Ce que tu cherches à faire, c'est bien à
substituer d'autres chiffres de doigtés à ceux affichés, non ?

--
Cordialement, Daniel Cartron
« J'ai une mémoire admirable, j'oublie tout. »
Alphonse Allais