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

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

grille d'accords 100% Lilypond


From: Didier Griffaut
Subject: grille d'accords 100% Lilypond
Date: Sat, 10 Mar 2018 00:40:09 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0

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

Attachment: Grilles.pdf
Description: Adobe PDF document

Attachment: Grilles.ly
Description: Text Data


reply via email to

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