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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Tablature guitare : saisie par les chiffres


From: Gerard
Subject: Re: Tablature guitare : saisie par les chiffres
Date: Wed, 9 Nov 2022 14:01:19 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.0

Merci Jean,

Les bras m'en tombent ! Franchement épaté !

Du coup, deux petites questions :

1. ma demande était-elle un challenge ou y avait-il la solution quelque part ? Au cas où, dans le LSR, pourquoi pas ?

2. Lilypond a-t-il/elle des limites ou même l'impossible l'incroyable sera réalisé ? Suffit de demander 😂

Une chose est sûre, Lilypond et ses sorciers (dont tu es peut-être le chef 😉) n'ont pas fini de m'étonner !

Bonne continuation

Gérard


Le 09/11/2022 à 13:36, Jean Abou Samra a écrit :
Le 09/11/2022 à 09:50, Gerard a écrit :
Bonjour tout le  monde,

J'aimerai saisir des tablatures guitare qui ne sont données qu'en version tablature (sans la portée traditionnelle)... Dadi, Giroux, etc...

Donc vous me voyez venir... existe-t-il un moyen "inversé" de saisir une tablature, quelque chose dans le genre 0\3 pour corde "mi" 3ème case ? ou dois-me résigner à mentalement traduire... 5 sur la corde "si", c'est e\2 ?




Bonjour Gérard,

Voici une solution possible. La syntaxe est

c\corde-case

ou
durée\corde-case

Note que LilyPond a besoin au niveau syntaxique d'une hauteur
ou d'une durée pour une note, donc si tu ne mets pas de durée
(pour garder la durée précédente), il faut mettre une hauteur
quelconque, comme « c » par exemple.

Cordialement,
Jean




\version "2.22.2"

#(define (pitch-list? x)
   (and (list? x)
        (every ly:pitch? x)))

tabInput =
#(define-music-function (tuning music) ((pitch-list? guitar-tuning) ly:music?)
   (for-some-music
    (lambda (m)
      (if (music-is-of-type? m 'note-event)
          (let* ((articulations (ly:music-property m 'articulations))
                 (fingering-ev (find (music-type-predicate 'fingering-event)
                                     articulations))
                 (string-number-ev (find (music-type-predicate 'string-number-event)
                                         articulations)))
            (if (and fingering-ev string-number-ev)
                (begin
                 (set! (ly:music-property m 'articulations)
                       (delq! fingering-ev articulations))
                 (let* ((digit (ly:music-property fingering-ev 'digit))
                        (string-number (ly:music-property string-number-ev 'string-number))                         (string-pitch (list-ref tuning (1- string-number))))
                   (set! (ly:music-property m 'pitch)
                         (ly:pitch-transpose
                          string-pitch
                          (ly:make-pitch 0
                                         0
                                         (* 1/2 digit)))))))))
      #f)
    music)
   music)


\new TabStaff {
  a,8 a <c' e'> a
  d8 a <d' f'> a
}

\new TabStaff \tabInput {
  c8\5-0 c\3-2 <c\1-0 c\2-1> c\3-2
  c\4-0 c\3-2 <c\1-1 c\2-3> c\3-2
}

% Avec un instrument autre que la guitare :

\new TabStaff \with {
  stringTunings = #bass-tuning
}
\relative { c,4 d e f }

\new TabStaff \with {
  stringTunings = #bass-tuning
}
\tabInput #bass-tuning {
  c4\3-3 c\2-0 c\2-2 c\2-3
}





reply via email to

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