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