grille d'accords 100% Lilypond

classic Classique list Liste threaded Arborescence
7 messages Options
Répondre | Arborescence
Ouvrir ce message en vue arborescente
|

grille d'accords 100% Lilypond

Didier Griffaut

Bonjour,

J'ai repris ce sujet car j'aime bien la syntaxe des accords avec Lilypond et j'obtiens le code suivant:

\version "2.18.2"

gridPath =
    \markup
    \with-dimensions #'(0 . 0) #'(-4.3 . 2)
    \path #0.1
          #'((moveto    -14.50   0.00)
            (lineto    13.50   10.00)
            (moveto    13.50   0.00) ; on peut remplacer par lineto pour ajuster les largeurs de cellules
 )
coinPath =
    \markup
    \with-dimensions #'(0 . 0) #'(-4.3 . 2)
    \path #0.1
          #'((moveto    -5.00   5.00)
            (lineto    10.00   10.00)
            (moveto    10.0   0.00) ; on peut remplacer par lineto pour ajuster les largeurs de cellules
            (lineto    -5.00   5.00)
 )
nogrid = \hide NoteHead
  
grid = \once { \override NoteHead.transparent = ##f
               \override NoteHead.stencil =
    #(lambda (grob) (grob-interpret-markup grob gridPath))
}
coin = \once { \override NoteHead.transparent = ##f
               \override NoteHead.stencil =
    #(lambda (grob) (grob-interpret-markup grob coinPath))
}
squashTo = #(define-music-function
  (parser location position music)
  (number? ly:music?)
  #{
    \set squashedPosition = $position
    $music
    \unset squashedPosition
  #})

middleLine = #(define-music-function
  (parser location music)
  (ly:music?)
  #{
    \squashTo #0 $music
  #})


up = \once { \override ChordName.Y-offset = #6 \override ChordName.X-offset = #6 }
down = \once { \override ChordName.Y-offset = #2 \override ChordName.X-offset = #6 }
left = \once { \override ChordName.X-offset = #4 }
right = \once { \override ChordName.X-offset = #6 }
center = \once { \override ChordName.X-offset = #10 \override ChordName.Y-offset = #4 }
% aliases
gdown = { \grid \down }
gright = { \coin \right }


% -------------------------------- Grille ---------------------------

grille = \chordmode {  \set chordChanges = ##t
  \middleLine {
  \nogrid
  \center c1
  \up a2:m \gdown f
  \left b2.:7 11  \gright b4
   e1:m
  \repeat volta 2 {
    \repeat percent 2 { e2 q }
     \up b2:dim \gdown g:7
     c1:7+ }
     \break
      \center c }}   % accord seul sur sa ligne pour l'exemple

% Texte de formatage de la largeur des cellules de la grille (en blanc au dessus de chaque cellule
format = \lyricmode {
 blablablablablablab % cellule n°1 (ligne 1)
 blablablablablablab % cellule n°2
 blablablablablablab % cellule n°3
 blablablablablabla  % cellule n°4
 
 blablablablabla     % cellule n°5 (ligne 2)
 blablablablablablabla % etc.
 blablablablablablab
 blablablablablabla
 
 blablablablablablablabl }

\paper {
  system-system-spacing.basic-distance = #20
}

\score {{
    << { \context Lyrics \format }
    { \context ChordNames \grille } >>
   

}
\layout {
  indent = 0
  ragged-right = ##f
  ragged-last = ##t
  \override Lyrics.LyricText.color = #white
  \context {
    \ChordNames
    \consists "Bar_engraver"
    \consists "Staff_symbol_engraver"
    \consists "Percent_repeat_engraver"
    \consists "Note_heads_engraver"
    \consists "Staff_collecting_engraver"
    \consists "Pitch_squash_engraver"
    \override StaffSymbol.line-count = #2 % optionnel
    \override StaffSymbol.line-positions = #'(0 20)
    \override ChordName.X-offset = #8
    \override ChordName.Y-offset = #4
    \override PercentRepeat.Y-offset = #5
   
  }
  \context {
    \Score
    \omit BarNumber
    \override SpacingSpanner.strict-note-spacing = ##t

  }
}
}

Je suis preneur d'idées d'amélioration en lilypond pour simplifier la syntaxe et éviter au maximum les ajustements manuels

Amicalement,

Didier


Le 30/04/2016 17:24, Pierre Perol-Schneider a écrit :

Ça peut être amélioré, par ex :

\version "2.18.2"

\new ChordNames \chordmode {  c1 a:m  b:7 e:m  \repeat volta 2 { e a g c } }

\paper {
  system-system-spacing.basic-distance = #0
}

\layout {
  indent = 0
  \context {
    \ChordNames
    \consists "Bar_engraver"
    \consists "Staff_symbol_engraver"
    \override StaffSymbol.line-positions = #'(-7 10)
    \override ChordName.X-offset = #12
  }
  \context {
    \Score
    \omit BarNumber
    proportionalNotationDuration = #(ly:make-moment 1/8)
  }
}

Pierre
_______________________________________________
liste de diffusion lilypond-user-fr
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr

Grilles.pdf (109K) Download Attachment
Grilles.ly (3K) Download Attachment
Répondre | Arborescence
Ouvrir ce message en vue arborescente
|

Re: grille d'accords 100% Lilypond

NOreply
Bonjour,
J'ai fait un code plus compact et plus simple. Je procède d'une manière
assez différente pour obtenir un résultat similaire. Pour l'utilisateur, je
pense que cela sera beaucoup plus facile.
Mode d'emploi: Il faut écrire \/ avant 2 accords en blanches et \v avant 2
accords avec le rythme blanche pointée noire. Mon code n'est satisfaisant
qu' avec une mise en page de 4 mesures par ligne. Je ne me rends pas compte
de la place qu'il faut pour écrire les accords, je n'ai pas l'habitude
d'écrire ce genre de chose, donc il faudra peut-être adapter les 2 variables
"coinPath" et "gridPath".
Lien lilybin (complètement bidon sur le plan musicale):
http://lilybin.com/hdaqgz/1

%%%%%%%%%% le code:
\version "2.18.2"
\paper {
  system-system-spacing.basic-distance = #20
}

gridPath =
\markup
\with-dimensions #'(0 . 0) #'(-4.3 . 2)
\path #0.1
#'((moveto    0   -15.1)
   (rlineto    26.5   9.9)
   
   )
coinPath =
\markup
\with-dimensions #'(0 . 0) #'(-4.3 . 2)
\path #0.1
#'((moveto    12.5   -10)
   (rlineto    14.5   -5.1)
   (moveto    12.5   -10) ; on peut remplacer par lineto pour ajuster les
largeurs de cellules
   (rlineto    14.4   4.8)
   )

%%%%%%%%%%%%%%%%%%%%%%%%%%


"\\/" = #(define-music-function
          (parser location  mus1 mus2)
          ( ly:music? ly:music?  )
          #{
            \mark \markup { \gridPath }
            \once \override ChordName.extra-offset = #'(1 . .5 )
            $mus1
            \once \override ChordName.extra-offset = #'(3 . -3 )
            $mus2
   
          #})

v = #(define-music-function
      (parser location  mus1 mus2 )
      ( ly:music? ly:music?  )
      #{
        \mark \markup { \coinPath }
        \once \override ChordName.extra-offset = #'(2 . -1 )
        $mus1
        \once \override ChordName.extra-offset = #'(-2 . -1 )
        $mus2

   
      #})

%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\new ChordNames \with {
  \override BarLine.bar-extent = #'(-5 . 5)
  \consists "Bar_engraver"
  \consists "Staff_symbol_engraver"
  \consists "Percent_repeat_engraver"
}

\chordmode {
  \omit BarNumber
  \override ChordNames.ChordName.extra-offset = #'(10 . -1 )        
  \override ChordNames.StaffSymbol.line-positions = #'( -10 10 )
 
  \bar ".|:"  bes1:7
  \/  c2 d
  e1
  \v f2.   c4    \break
  \repeat percent 2  {e1}
  \v c2. d4  \noBreak  
  c1
  f1:maj7  
  f:7 c e
  \bar ":|."
}

\layout {
  indent = 0
  ragged-right = ##f
  ragged-last = ##f

  \context {
    \Score
    \omit BarNumber            
    \override SpacingSpanner.strict-note-spacing = ##t
    proportionalNotationDuration = #(ly:make-moment 1/16)
  }
}

% ; = )



--
Sent from: http://lilypond-french-users.1298960.n2.nabble.com/

_______________________________________________
liste de diffusion lilypond-user-fr
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
Répondre | Arborescence
Ouvrir ce message en vue arborescente
|

Re: grille d'accords 100% Lilypond

Didier Griffaut
En réponse à ce message posté par Didier Griffaut

Malheureusement, ce code ne fonctionne pas chez moi :(

Analyse...

Interprétation en cours de la musique...[8]

Pré-traitement des éléments graphiques.../usr/share/lilypond/2.18.2/scm/define-markup-commands.scm:950:59: In procedure car in expression (car x):

/usr/share/lilypond/2.18.2/scm/define-markup-commands.scm:950:59: Wrong type (expecting pair): largeurs

Arrêté avec le code de retour 1


Le 11/03/2018 18:31, NOreply [hidden email] a écrit :
\version "2.18.2"
\paper {
  system-system-spacing.basic-distance = #20
}

gridPath =
\markup
\with-dimensions #'(0 . 0) #'(-4.3 . 2)
\path #0.1
#'((moveto    0   -15.1)
   (rlineto    26.5   9.9)
   
   )
coinPath =
\markup
\with-dimensions #'(0 . 0) #'(-4.3 . 2)
\path #0.1
#'((moveto    12.5   -10)
   (rlineto    14.5   -5.1)
   (moveto    12.5   -10) ; on peut remplacer par lineto pour ajuster les
largeurs de cellules
   (rlineto    14.4   4.8)
   )

%%%%%%%%%%%%%%%%%%%%%%%%%%


"\\/" = #(define-music-function
          (parser location  mus1 mus2)
          ( ly:music? ly:music?  )
          #{
            \mark \markup { \gridPath }
            \once \override ChordName.extra-offset = #'(1 . .5 )
            $mus1 
            \once \override ChordName.extra-offset = #'(3 . -3 ) 
            $mus2
    
          #})

v = #(define-music-function
      (parser location  mus1 mus2 )
      ( ly:music? ly:music?  )
      #{
        \mark \markup { \coinPath }
        \once \override ChordName.extra-offset = #'(2 . -1 )
        $mus1 
        \once \override ChordName.extra-offset = #'(-2 . -1 )
        $mus2 

    
      #})

%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\new ChordNames \with {
  \override BarLine.bar-extent = #'(-5 . 5)
  \consists "Bar_engraver"
  \consists "Staff_symbol_engraver"
  \consists "Percent_repeat_engraver"
}

\chordmode { 
  \omit BarNumber
  \override ChordNames.ChordName.extra-offset = #'(10 . -1 )         
  \override ChordNames.StaffSymbol.line-positions = #'( -10 10 )
 
  \bar ".|:"  bes1:7 
  \/  c2 d 
  e1 
  \v f2.   c4    \break
  \repeat percent 2  {e1} 
  \v c2. d4  \noBreak  
  c1 
  f1:maj7  
  f:7 c e
  \bar ":|."
} 

\layout {
  indent = 0
  ragged-right = ##f
  ragged-last = ##f

  \context {
    \Score
    \omit BarNumber             
    \override SpacingSpanner.strict-note-spacing = ##t
    proportionalNotationDuration = #(ly:make-moment 1/16)
  }
}


_______________________________________________
liste de diffusion lilypond-user-fr
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
Répondre | Arborescence
Ouvrir ce message en vue arborescente
|

Re: grille d'accords 100% Lilypond

NOreply
En réponse à ce message posté par Didier Griffaut
Il faut supprimer
"; on peut remplacer par lineto pour ajuster les
largeurs de cellules"



--
Sent from: http://lilypond-french-users.1298960.n2.nabble.com/

_______________________________________________
liste de diffusion lilypond-user-fr
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
Répondre | Arborescence
Ouvrir ce message en vue arborescente
|

Re: grille d'accords 100% Lilypond

Didier Griffaut
En réponse à ce message posté par Didier Griffaut

Finalement, ça fonctionne, l'erreur était due à une ligne de commentaire qui était coupée en deux:

J'ai complété le code avec les cas de 3 accords ( que j'ai nommé w faute de mieux) et de 4 accords (x):

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\version "2.18.2"
\paper {
  system-system-spacing.basic-distance = #20
}

gridPath =
\markup
\with-dimensions #'(0 . 0) #'(-4.3 . 2)
\path #0.1
#'((moveto    0   -15.1)
   (rlineto    26.5   9.9)
  
   )
coinPath =
\markup
\with-dimensions #'(0 . 0) #'(-4.3 . 2)
\path #0.1
#'((moveto    12.5   -10)
   (rlineto    14.5   -5.1)
   (moveto    12.5   -10)
   (rlineto    14.4   4.8)
   )
gridCoinPath =
    \markup
    \with-dimensions #'(0 . 0) #'(-4.3 . 2)
    \path #0.1
          #'((moveto    0   -15.1)
            (lineto    26.5   -5.3)
            (moveto    13.50   -10.0)
            (lineto    26.5   -15.00)
 )
croixPath =
    \markup
    \with-dimensions #'(0 . 0) #'(-4.3 . 2)
    \path #0.1
          #'((moveto    0   -15.1)
            (lineto    26.5   -5.3)
            (moveto    0   -5.3)
            (lineto    26.5   -15.00)
 )

%%%%%%%%%%%%%%%%%%%%%%%%%%


"\\/" = #(define-music-function
          (parser location  mus1 mus2)
          ( ly:music? ly:music?  )
          #{
            \mark \markup { \gridPath }
            \once \override ChordName.extra-offset = #'(1 . .5 )
            $mus1
            \once \override ChordName.extra-offset = #'(3 . -3 )
            $mus2
   
          #})

v = #(define-music-function
      (parser location  mus1 mus2 )
      ( ly:music? ly:music?  )
      #{
        \mark \markup { \coinPath }
        \once \override ChordName.extra-offset = #'(2 . -1 )
        $mus1
        \once \override ChordName.extra-offset = #'(-2 . -1 )
        $mus2

   
      #})

w = #(define-music-function
          (parser location  mus1 mus2 mus3 )
          ( ly:music? ly:music? ly:music? )
          #{
            \mark \markup { \gridCoinPath }
            \once \override ChordName.extra-offset = #'(1 . .5 )
            $mus1
            \once \override ChordName.extra-offset = #'(-2 . -4 )
            $mus2
            \once \override ChordName.extra-offset = #'(1 . -1 )
            $mus3
   
          #})

x = #(define-music-function
          (parser location  mus1 mus2 mus3 mus4 )
          ( ly:music? ly:music? ly:music? ly:music? )
          #{
            \mark \markup { \croixPath }
            \once \override ChordName.extra-offset = #'(0 . -0.5 )
            $mus1
            \once \override ChordName.extra-offset = #'(4 . 2 )
            $mus2
            \once \override ChordName.extra-offset = #'(-3 . -4 )
            $mus3
            \once \override ChordName.extra-offset = #'(1 . -1 )
            $mus4
   
          #})

%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\new ChordNames \with {
  \override BarLine.bar-extent = #'(-5 . 5)
  \consists "Bar_engraver"
  \consists "Staff_symbol_engraver"
  \consists "Percent_repeat_engraver"
}

\chordmode {
  \omit BarNumber
  \override ChordNames.ChordName.extra-offset = #'(10 . -1 )        
  \override ChordNames.StaffSymbol.line-positions = #'( -10 10 )
 
  \bar ".|:"  bes1:7
  \/  c2 d
  e1
  \v f2.   c4    \break
  \repeat percent 2  {e1}
  \w c2 d4 c  \noBreak 
  c1
  f1:maj7 
  f:7
  \x c4 e g c  e1
  \bar ":|."
}

\layout {
  indent = 0
  ragged-right = ##f
  ragged-last = ##f

  \context {
    \Score
    \omit BarNumber            
    \override SpacingSpanner.strict-note-spacing = ##t
    proportionalNotationDuration = #(ly:make-moment 1/16)
  }
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


Le 13/03/2018 à 13:02, Didier Griffaut a écrit :

Malheureusement, ce code ne fonctionne pas chez moi :(

Analyse...

Interprétation en cours de la musique...[8]

Pré-traitement des éléments graphiques.../usr/share/lilypond/2.18.2/scm/define-markup-commands.scm:950:59: In procedure car in expression (car x):

/usr/share/lilypond/2.18.2/scm/define-markup-commands.scm:950:59: Wrong type (expecting pair): largeurs

Arrêté avec le code de retour 1


Le 11/03/2018 18:31, NOreply [hidden email] a écrit :
\version "2.18.2"
\paper {
  system-system-spacing.basic-distance = #20
}

gridPath =
\markup
\with-dimensions #'(0 . 0) #'(-4.3 . 2)
\path #0.1
#'((moveto    0   -15.1)
   (rlineto    26.5   9.9)
   
   )
coinPath =
\markup
\with-dimensions #'(0 . 0) #'(-4.3 . 2)
\path #0.1
#'((moveto    12.5   -10)
   (rlineto    14.5   -5.1)
   (moveto    12.5   -10) ; on peut remplacer par lineto pour ajuster les
largeurs de cellules
   (rlineto    14.4   4.8)
   )

%%%%%%%%%%%%%%%%%%%%%%%%%%


"\\/" = #(define-music-function
          (parser location  mus1 mus2)
          ( ly:music? ly:music?  )
          #{
            \mark \markup { \gridPath }
            \once \override ChordName.extra-offset = #'(1 . .5 )
            $mus1 
            \once \override ChordName.extra-offset = #'(3 . -3 ) 
            $mus2
    
          #})

v = #(define-music-function
      (parser location  mus1 mus2 )
      ( ly:music? ly:music?  )
      #{
        \mark \markup { \coinPath }
        \once \override ChordName.extra-offset = #'(2 . -1 )
        $mus1 
        \once \override ChordName.extra-offset = #'(-2 . -1 )
        $mus2 

    
      #})

%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\new ChordNames \with {
  \override BarLine.bar-extent = #'(-5 . 5)
  \consists "Bar_engraver"
  \consists "Staff_symbol_engraver"
  \consists "Percent_repeat_engraver"
}

\chordmode { 
  \omit BarNumber
  \override ChordNames.ChordName.extra-offset = #'(10 . -1 )         
  \override ChordNames.StaffSymbol.line-positions = #'( -10 10 )
 
  \bar ".|:"  bes1:7 
  \/  c2 d 
  e1 
  \v f2.   c4    \break
  \repeat percent 2  {e1} 
  \v c2. d4  \noBreak  
  c1 
  f1:maj7  
  f:7 c e
  \bar ":|."
} 

\layout {
  indent = 0
  ragged-right = ##f
  ragged-last = ##f

  \context {
    \Score
    \omit BarNumber             
    \override SpacingSpanner.strict-note-spacing = ##t
    proportionalNotationDuration = #(ly:make-moment 1/16)
  }
}



_______________________________________________
liste de diffusion lilypond-user-fr
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
Répondre | Arborescence
Ouvrir ce message en vue arborescente
|

Re: grille d'accords 100% Lilypond

Vincent Gay
En réponse à ce message posté par NOreply
Bonjour à tous,

je déterre ce vieux sujet pour une question annexe : est-il possible de
faire une reprise avec alternative ?

Merci d'avance

Le 11/03/2018 à 18:31, NOreply a écrit :

> Bonjour,
> J'ai fait un code plus compact et plus simple. Je procède d'une manière
> assez différente pour obtenir un résultat similaire. Pour l'utilisateur, je
> pense que cela sera beaucoup plus facile.
> Mode d'emploi: Il faut écrire \/ avant 2 accords en blanches et \v avant 2
> accords avec le rythme blanche pointée noire. Mon code n'est satisfaisant
> qu' avec une mise en page de 4 mesures par ligne. Je ne me rends pas compte
> de la place qu'il faut pour écrire les accords, je n'ai pas l'habitude
> d'écrire ce genre de chose, donc il faudra peut-être adapter les 2 variables
> "coinPath" et "gridPath".
> Lien lilybin (complètement bidon sur le plan musicale):
> http://lilybin.com/hdaqgz/1
le fil complet :
http://lilypond-french-users.1298960.n2.nabble.com/grille-d-accords-100-Lilypond-td7586093.html

--
Vincent Gay
Envoyé depuis mon saxo-phone :)
http://blog.vintherine.org/ - http://photos.vintherine.org/



_______________________________________________
liste de diffusion lilypond-user-fr
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr

signature.asc (849 bytes) Download Attachment
Répondre | Arborescence
Ouvrir ce message en vue arborescente
|

Re: grille d'accords 100% Lilypond

Vincent Gay
J'ai bien avancé en retirant "Volta_engraver" de \Score et en le
rajoutant à ChordNames

J'ai collé le code ici : http://lilybin.com/8jck1d/1

mais comme vous pouvez le voir les barres obliques de division de la
mesure (crées avec \/ \w et \x) s'en trouvent décalées vers le haut.

Une idée ? Merci d'avance


Le 12/11/2018 à 13:16, Vincent Gay a écrit :
> Bonjour à tous,
>
> je déterre ce vieux sujet pour une question annexe : est-il possible de
> faire une reprise avec alternative ?
>
> Merci d'avance
>
>

--
Vincent Gay
Envoyé depuis mon saxo-phone :)
http://blog.vintherine.org/ - http://photos.vintherine.org/



_______________________________________________
liste de diffusion lilypond-user-fr
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr

signature.asc (849 bytes) Download Attachment