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

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

Re: numéro de notes


From: Christophe Pochon
Subject: Re: numéro de notes
Date: Tue, 25 Oct 2016 18:55:23 +0200

Ça fait plus d'une heure que j'y travaille (je connais très mal scheme) mais j'ai réussi à modifier la fonction pour qu'elle affiche 9 11 et 13 à la place de 2 4 et 6.

Evidemment il y aura des cas où on voudrait qu'elle affiche 2, 4 ou 6 :/

Par contre par rapport à ta question du choix du mode si l'accord est altéré, il faut comprendre que le choix du mode sert à 2 choses :

1) déterminer la fondamentale de l'accord, pour qu'elle soit le chiffre 1
2) choisir un mode qui ne change pas l'armure en cours. 

Donc le mode a choisir est déterminé par la fondamentale de l'accord ET le respect de l'armure en cours.

Exemples :

- En mi bémol majeur, un accord de sol mineur -> \key g \phrygian
- En ré majeur, accord de la 7 : \key a \mixolydian

On pourrait penser que le problème c'est si tu as un accord dont la fondamentale n'est pas dans la tonalité en cours, mais on peut le résoudre facilement en mettant le mode sur une la note la plus proche dans la tonalité en cours. Exemple, en do majeur, accord de mi b majeur 7 -> \key e \phrygian fonctionne parfaitement.

Et que l'accord soit altéré ou pas ne change rien, car la fonctionne affichera 9, qu'on ait affaire à une 9 ème augmentée, diminué ou pas.

Voici le code modifié, avec quelques exemples.


\version "2.19.48"

%-----------------------------------------------------------

#(define Ez_numbers_engraver

(make-engraver

(acknowledgers

((note-head-interface engraver grob source-engraver)

(let* ((context (ly:translator-context engraver))

(tonic-pitch (ly:context-property context 'tonic))

(tonic-name (ly:pitch-notename tonic-pitch))

(grob-pitch

(ly:event-property (event-cause grob) 'pitch))

(grob-name (ly:pitch-notename grob-pitch))

(delta (modulo (- grob-name tonic-name) 7))

(delta (if (= delta 1) 8 delta) )

(delta (if (= delta 3) 10 delta) )

(delta (if (= delta 5) 12 delta) )

(note-names

(make-vector 7 (number->string (1+ delta)))))

(ly:grob-set-property! grob 'note-names note-names))))))

%-----------------------------------------------------

\score

{

<<

\new ChordNames

{ \chordmode {d4:13 f:maj7 as:7.5+.9- b:m7.5- } }

\new Staff

\relative c'

{ \easyHeadsOn

\key d \dorian

<fis b c e>4

\key f \lydian

<e g a c>

\key a \aeolian

<ges beses c e>

\key b \locrian

<f a b e>

}

>>

%------------------------------------------

\layout

{

ragged-right = ##t

\context

{

\Voice

\consists \Ez_numbers_engraver

}

}

}




Le 25 octobre 2016 à 15:53, Christian LE BARS <address@hidden> a écrit :
Bon

j'ai trouver une solution toute bête qui me convient pour l'instant(
elle est manuelle!):

\version "2.19.48"
%-----------------------------------------------------------
\score
{
    \new ChordNames
     { \chordmode  {d4:m7  } }
    \new Staff
     \relative c'
      {
        <f-3 a-5 c-7 e-9>4
      }
  >>
%------------------------------------------
 \layout
 { }
}

cordialement
Le 25/10/2016 à 10:56, Christian LE BARS a écrit :
> bonjour,
>
> j'aimerai inscrire dans les têtes de notes leur numéro pour cela j'ai
> trouvé dans la doc ceci:
>
> \version "2.19.48"
> %-----------------------------------------------------------
> #(define Ez_numbers_engraver
>    (make-engraver
>     (acknowledgers
>      ((note-head-interface engraver grob source-engraver)
>       (let* ((context (ly:translator-context engraver))
>          (tonic-pitch (ly:context-property context 'tonic))
>          (tonic-name (ly:pitch-notename tonic-pitch))
>          (grob-pitch
>           (ly:event-property (event-cause grob) 'pitch))
>          (grob-name (ly:pitch-notename grob-pitch))
>          (delta (modulo (- grob-name tonic-name) 7))
>          (note-names
>           (make-vector 7 (number->string (1+ delta)))))
>     (ly:grob-set-property! grob 'note-names note-names))))))
> %-----------------------------------------------------
> \score
> {
>   <<
>     \new ChordNames
>      { \chordmode  {d4:m7  } }
>     \new Staff
>      \relative c'
>       { \easyHeadsOn
>         <f a c e>4
>       }
>   >>
> %------------------------------------------
>  \layout
>  {
>    ragged-right = ##t
>    \context
>    {
>      \Voice
>      \consists \Ez_numbers_engraver
>    }
>  }
> }
>
> cela donne le numéro de la note dans la gamme .
>
> Mais moi je voudrais mettre le numéro par rapport a l'accord, c'est a
> dire au lieu de: 4,6,1,3(la gamme) je voudrais 3,5,7,9(l'accord)
>
> quelqu'un a t'il la solution? par avance merci
>
>
>
> _______________________________________________
> liste de diffusion lilypond-user-fr
> address@hidden
> https://lists.gnu.org/mailman/listinfo/lilypond-user-fr


_______________________________________________
liste de diffusion lilypond-user-fr
address@hidden
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr


reply via email to

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