Subject: difficulté pour placer les accords

From: Christian LE BARS <[email-masked]>
Date: Thu, 7 Jan 2021 15:07:24 +0100

Bonjour a tous.

Bonne Lilyannée.

Voila j'aimerai que mes accords  s'inscrivent en dessous de la marque 
swing, du repère A, de  la marque triolet.

Ci dessous un extrait de mon code:

\version "2.19.60"
#(set-global-staff-size 20) %taille des portées
\include "lilyjazz.ily"
%-------------------------------------------------
\header
{
  title = \markup { \override #'(font-name . "Lilyjazz-text")\fontsize 
#1 \bold\italic "When Sunny Gets Blue" }
  composer =\markup { \override #'(font-name . "Lilyjazz-text")\italic 
"Fisher / Segal" }
}
%----------------------------------------------
\paper
  {
   oddFooterMarkup = \markup {\override #'(font-name . 
"Lilyjazz-text")\fontsize #3 \fill-line { \fromproperty #'header:title  } }
   print-page-number = ##t
   top-margin = 5\mm
  }
%------------------------------------------
rhythmMarkStaffReduce = #-3
rhythmMarkLabelFontSize = #-2
%---------------------------------
rhythmMark = #(define-music-function (parser location label musicI 
musicII ) (string? ly:music? ly:music?)
    #{
       \mark \markup {
         \line \general-align #Y #DOWN {
           \combine
             \italic \fontsize #rhythmMarkLabelFontSize $label
             \transparent \italic \fontsize #rhythmMarkLabelFontSize f
           \score
           {
             \new Staff
             \with
             {
               fontSize = #rhythmMarkStaffReduce
               \override StaffSymbol.staff-space = #(magstep 
rhythmMarkStaffReduce)
               \override StaffSymbol.line-count = #0
               \override VerticalAxisGroup.Y-extent = #'(-0.85 . 4)
             }
             {
               \relative c' { \stemUp $musicI }
               \once \override Score.TextScript.Y-offset = #-0.4
               s4.^\markup{ \halign #-1 \italic "=" }
               \relative c' { \stemUp $musicII }
             }
  %-----------------------------------
             \layout
             {
               ragged-right= ##t
               indent = 0
               \context
               {
                 \Staff
                 \remove "Clef_engraver"
                 \remove "Time_signature_engraver"
               }
             } % layout end
           } % Score end
         } % line end
       } % markup end
    #})
%------------------------------------
rhyMarkIIEighths =
  {
   \override Score.SpacingSpanner.common-shortest-duration = 
#(ly:make-moment 3/16) % even
   b'8[ b8]
}
%-----------------------------------------
rhyMarkTriplets =
{
   \override Score.SpacingSpanner.common-shortest-duration = 
#(ly:make-moment 3/16) % even
   \tuplet 3/2 { b'4 b8 }
}
%----------------------------------------------
Global=
{
  \numericTimeSignature
  \set Score.markFormatter = #format-mark-box-alphabet
  \time 4/4
  \partial 8
  \key f\major
}
%----------------------------------------------
LesAccords =
\new ChordNames
   {
    \override ChordNames.ChordName.font-name =  "Lilyjazz-text"
   \override ChordNames . ChordName #'font-size = #2
   \set chordChanges = ##t
   \set Score.majorSevenSymbol = \markup {Maj7}
   \set chordNameSeparator = \markup { "/" }
   \set minorChordModifier = \markup{"-"}
  \chordmode
    {
     s8 g2:m7 c:sus4.7
    }
  }
%---------------------------------------------------
LaMélodie =
\relative c'
  {
   \clef treble
   \Global
   \rhythmMark #"Ballade" \rhyMarkIIEighths \rhyMarkTriplets
   c8
   \mark \markup { \box A }
   \repeat volta 2
    {
     \tuplet3/2{a'4\segno g a}c,4. c8
    }
}
%--------------------------------------
\score
{
  <<
    \LesAccords
    \new Staff \LaMélodie
  >>
\layout  {}
}

Par avance merci

Christian

---

From: Jean Abou Samra <[email-masked]>
Date: Thu, 7 Jan 2021 23:10:45 +0100

> #(set-global-staff-size 20) %taille des portées

Bonjour,

Notez que n'ayant pas LilyJAZZ, je n'ai pas pu tester avec cette police, 
et avec celle par défaut, le résultat sur votre exemple est assez différent.

Je ne suis pas sûr de comprendre la question. Dans une situation aussi 
alambiquée, j'adopterais peut-être l'espacement que voici :

\version "2.21.80"

\layout {
   \context {
     \Score
     \numericTimeSignature
     markFormatter = #format-mark-box-alphabet
     \key f\major
     majorSevenSymbol = "Maj7"
   }
   \context {
     \ChordNames
     \override ChordName.font-size = 2
     chordChanges = ##t
     chordNameSeparator = "/"
     minorChordModifier = "-"
   }
}

\paper {
   oddFooterMarkup = \markup
       \fontsize #3
       \fill-line {
         \fromproperty #'header:title
       }
   print-page-number = ##t
   top-margin = 5\mm
}

rhythmMarkupStaffReduce = -3
rhythmMarkupLabelFontSize = -2
rhythmMarkupStretching = 1

fragmentLayout =
\layout {
   ragged-right= ##t
   indent = 0
   \context {
     \Score
     \override SpacingSpanner.spacing-increment = #rhythmMarkupStretching
   }
   \context {
     \Staff
     \magnifyStaff #(magstep rhythmMarkupStaffReduce)
     \override StaffSymbol.line-count = 0
     \override VerticalAxisGroup.Y-extent = #'(-0.85 . 4)
     \remove Clef_engraver
     \remove Time_signature_engraver
   }
   \context {
     \Voice
     \stemUp
     \override NoteHead.staff-position = 0
   }
}

#(define-markup-command (rhythm layout props label musicI musicII)
                         (markup? ly:music? ly:music?)
    (interpret-markup layout props #{
      \markup %\general-align #Y #DOWN
      {
        \italic \fontsize #rhythmMarkupLabelFontSize #label
        \score { #musicI \fragmentLayout }
        "="
        \score { #musicII \fragmentLayout }
      }
    #}))

rhyMarkIIEighths = { c''8[ 8] }
rhyMarkTriplets = \tuplet 3/2 { c''4 8 }

\header
{
   title = \markup { \fontsize #1 \bold \italic "When Sunny Gets Blue" }
   composer = \markup { \italic "Fisher / Segal" }
%  piece = \markup { \rhythm Ballade \rhyMarkIIEighths \rhyMarkTriplets }
}

LesAccords =
\chords {
   s8
   g2:m7
   c:sus4.7
}

LaMélodie =
\relative c' {
   \tweak self-alignment-X 0.5
   \tweak padding 2.8
   \tempo \markup { \rhythm Ballade \rhyMarkIIEighths \rhyMarkTriplets }
   \partial 8
   c8
   \tweak Y-offset -4
   \mark \default
   \repeat volta 2 {
     \tweak direction #DOWN
     \tuplet 3/2 { a'4\tweak self-alignment-X -1 \segno g a } c,4. c8
   }
}

<<
   \LesAccords
   \new Staff \LaMélodie

(J'en ai profité pour nettoyer votre code. Est-ce que la fonction pour 
l'indication de tempo venait du LSR ?)

Cela répond-il à la question ?

Cordialement,
Jean

---

From: Christian LE BARS <[email-masked]>
Date: Fri, 8 Jan 2021 18:24:11 +0100

Bonsoir a tous.

Merci Jean de m' avoir répondu.

dans mon précédent envoi j'avais laissé les formulations Jazz.

Notamment , la vignette "swing" que l'on met souvent en début de partition.

Aussi, ci-dessous la partition version musique européenne, avec le 
minimum de code,

ou j'aimerai que les noms des accords soit juste au-dessus de la portée,

et au dessus l'on trouve: la formulation triolet, le repère A et le segno.

J'ai conscience que je n'ai pas été clair dans mon 1er message, qu'il 
était mal formulé.

Désolé, de vous avoir fait perdre votre temps!

Cordialement

Christian

\version "2.19.60"

%-------------------------------------------------
\header
{
  title ="When Sunny Gets Blue"
  composer ="Fisher / Segal"
}
%----------------------------------------------
Global=
{
  \time 4/4
  \partial 8
  \key f\major
}
%----------------------------------------------
LesAccords =
\new ChordNames
  {
   \chordmode
    {
     s8 g2:m7 c:sus4.7
    }
  }
%---------------------------------------------------
LaMélodie =
\relative c'
  {
   \clef treble
   \Global
   c8
   \mark \markup { \box A }
   \repeat volta 2
    {
     \tuplet3/2{a'4\segno g a}c,4. c8
    }
}
%--------------------------------------
\score
{
  <<
    \LesAccords
    \new Staff \LaMélodie
  >>
\layout  {}
}

Le 07/01/2021 à 23:10, Jean Abou Samra a écrit :
> Notez que n'ayant pas LilyJAZZ, je n'ai pas pu tester avec cette 
> police, et avec celle par défaut, le résultat sur votre exemple est 
> assez différent.
>

---

From: Jean Abou Samra <[email-masked]>
Date: Fri, 8 Jan 2021 19:08:06 +0100

Bonjour,

Mais non, il n'y a pas à s'excuser. Comme les accords sont dans un 
contexte à part, il serait plutôt compliqué de positionner au-dessus 
d'eux des éléments du contexte en-dessous d'eux (car les contextes 
évitent les collisions entre eux). J'aurais donc tendance à ajouter un 
contexte supplémentaire au-dessus de ChordNames pour ces trois signes, 
en lui donnant les graveurs appropriés comme expliqué à l'adresse 
http://lilypond.org/doc/v2.21/Documentation/notation/modifying-context-plug_002dins.

Avec cette méthode, il faudra mettre tous vos \mark dans ce contexte aussi.

Cordialement,
Jean

PS : La version 2.20 est en ligne depuis quelques mois.

\version "2.21.80"

\layout {
   \context {
     \Dynamics
     \consists Metronome_mark_engraver
     \consists Mark_engraver
   }
   \context {
     \Score
     \remove Metronome_mark_engraver
     \remove Mark_engraver
   }
}

%----------------------------------------------
Global=
{
  \time 4/4
  \partial 8
  \key f\major
}
%----------------------------------------------
LesAccords =
\new ChordNames
  {
   \chordmode
    {
     s8 g2:m7 c:sus4.7
    }
  }
%---------------------------------------------------
LaMélodie =
\new Staff
\relative c'
  {
   \clef treble
   \Global
   c8
   \repeat volta 2
    {
     \tuplet3/2{ a'4 g a}c,4. c8
    }
}
%--------------------------------------
ligneHaut =
\new Dynamics {
   \tweak self-alignment-X 1
   \tweak Y-offset 0
   \tempo \markup \italic {
     Swing
     % Code compliqué pour écrire deux-croches = noire-croche en triolet...
   }
   s8
   \tweak Y-offset 0
   \mark \default
   \tuplet 3/2 { s4\segno 4 4 }
}

\score {
   {
     <<
        \ligneHaut
       \LesAccords
       \LaMélodie
     >>
     }
}