Subject: renvoi en bas de page pour faire des accords simplifiés

From: gegeours <[email-masked]>
Date: Fri, 15 May 2020 07:29:02 -0700 (MST)

Bonjour à tous,

Je souhaiterais réaliser une partition comme l'image ci-dessous :
<http://lilypond-french-users.1298960.n2.nabble.com/file/t395625/2020-05-15_16-23.png> 

C'est un renvoi qui indique qu'à la mesure C on peut faire des accords plus
simples.

J'ai regardé la documentation. Faut-il faire en bas de page une nouvelle
portée ossia /new Staff ?

Merci d'avance pour votre aide.

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

---

From: Valentin Villenave <[email-masked]>
Date: Fri, 15 May 2020 16:50:39 +0200

> portée ossia /new Staff ?

Non, un simple \markup qui contient un bloc \score. Le tout dans une \footnote.

http://lilypond.org/doc/v2.21/Documentation/notation/creating-footnotes.fr.html

V.

---

From: gegeours <[email-masked]>
Date: Sat, 16 May 2020 01:23:22 -0700 (MST)

Bonjour,

Suite à la réponse de Valentin, j'ai regardé la doc mais je me heurte à
quelques problèmes.
Voici l'ensemble des codes pour la première page ::
\version "2.20.0"

\header {
  title = "Boléro"
  instrument = \markup \with-color #darkblue "Accordéon"
  composer = "Maurice Ravel"
  tagline = \markup {
    Gravé avec LilyPond, un logiciel gratuit et libre
    \concat { ( \with-url #"http://lilypond.org" http://lilypond.org ) }
  }
}

\paper {
  system-system-spacing.padding = #0
  oddFooterMarkup = \markup \fill-line {
    \center-column {
      \line { \fontsize #-4 \fromproperty #'header:title }
      \on-the-fly  #last-page \line { \fontsize #-1 \fromproperty
#'header:tagline }
      \italic \line {
        \fontsize #-1 {
          GR le #(strftime "%d %b %Y" (localtime (current-time)))
        }
      }
    }
  }
}
t =
#(define-music-function (tuplet-span music)
   ((ly:duration? #f) ly:music?)
   #{ \tuplet 3/2 $(if tuplet-span
                       tuplet-span)
      $music #})
%% Variables contenant la musique.
global = {
  \key c \major
  \time 3/4 \tempo "T° di Bolero, moderato assai" 4 = 76
   \accidentalStyle PianoStaff.modern
   
}

right = \relative c'' {
  \global
  R1 
  R1
  R1 \bar ".|:"\mark \markup { \musicglyph #"scripts.segno" }
 <<
 {c4\pp_\markup {\italic graduel crescendo untill} ~ ( c8 b16 c d16 c b a}
 \\
 {r4 <d, e g>8 r <d g> r\ff}
<<
{c'8) c16 ( a c4) ~ ( c8 b16 c)}
\\
{r4 <d, e g>8 r <d g> r}
<<
  {a'16 g e f g2 ~}
  \\
  {r4 <d e>8 r *8 r}
<<
  {g'16 f e d e f g a g4 ~}
  \\
  {r4 d8 r * r}
<<
{g'4 ~ g16 a b a g f e d}
\\
{r4 <d e>8 r * r}
<<
  {r4 <d e g>8 r e8 ( f)}
  \\
  {e16 d c8 ~ c16 d b8 r}
<<
  {d4 g2 ~}
  \\
  {r4 <c, d f>8 r * r}
<<
  {g'2 ~ g8 r}
  \\
  {r4 <c, d f>8 r * r}
<<
  {d'4 ~ ( d8. c16) b ( a b c)}
  \\
  {r4 <f, g>8 r <d g> r}
<<
  {d'16 ( c b8 ~ b16 c b a) c ( b a f ~}
  \\
  {r4 f8 r <d g> r}
<<
  {f8) f16 f f8 a c16 ( a b g)}
  \\
  {r4 d8 r d r}
<<
  {f8 f16 f f8 a c16 ( a b g)}
  \\
  {r4 d8 r d r}

}

left = \relative c {
  \global
  \clef bass
  \override TupletBracket.bracket-visibility = #'if-no-beam
 <c g'>8_\markup {\fontsize #8 "*"} \t {g'16 c, g'} c,8 \t {g'16 c, g'} c,8
g' 
 <c, g'>8 \t {g'16 c, g'} c,8 \t {g'16 c, g'} c,16 g' c, g'
 <c, g'>8 \t {g'16 c, g'} c,8 \t {g'16 c, g'} c,8 g' 
 <c, g'>8 \t {g'16 c, g'} c,8 \t {g'16 c, g'} c,16 g' c, g'
 <c, g'>8 \t {g'16 c, g'} c,8 \t {g'16 c, g'} c,8 g' 
 <c, g'>8 \t {g'16 c, g'} c,8 \t {g'16 c, g'} c,16 g' c, g'
 <c, g'>8 \t {g'16 c, g'} c,8 \t {g'16 c, g'} c,8 g' 
 <c, g'>8 \t {g'16 c, g'} c,8 \t {g'16 c, g'} c,16 g' c, g'
 <c, g'>8 \t {g'16 c, g'} c,8 \t {g'16 c, g'} c,8 g' 
 <c, g'>8 \t {g'16 c, g'} c,8 \t {g'16 c, g'} c,16 g' c, g'
 <c, g'>8 \t {g'16 c, g'} c,8 \t {g'16 c, g'} c,8 g' 
 <c, g'>8 \t {g'16 c, g'} c,8 \t {g'16 c, g'} c,16 g' c, g'
 <c, g'>8 \t {g'16 c, g'} c,8 \t {g'16 c, g'} c,8 g' 
 <c, g'>8 \t {g'16 c, g'} c,8 \t {g'16 c, g'} c,16 g' c, g' 
 <c, g'>8 \t {g'16 c, g'} c,8 \t {g'16 c, g'} c,8 g' 
 <c, g'>8 \t {g'16 c, g'} c,8 \t {g'16 c, g'} c,16 g' c, g'

 
}

accords = \chordmode {
 
}

%% Réglages de présentation.
\layout {
  \context {
    \Score
    \override BarNumber.color = #red
    \override BarNumber.font-shape = #'italic
    \override BarNumber.font-size = #0.2
  }
  \context {
    \Staff
    explicitKeySignatureVisibility = #end-of-line-invisible
    printKeyCancellation = ##f
  }
  \context {
    \ChordNames
    \frenchChords
    \override ChordName.font-family = #'serif
    \override ChordName.extra-offset = #'(-1 . 0)
  }
}

%% Image de logo.
\markup {
  \with-dimensions #'(0 . -0) #'(0 . 1)
  \translate #'(-3 . -1)
  \epsfile #X #15 #"/home/gerard/Documents/Mespartitions/accordéon.eps"
}

%% Structure de la partition.
\score {
  \new PianoStaff \with {
    midiInstrument = "accordion"
  } <<
    \new Staff \right
    \new ChordNames \accords
    \new Staff \left
  \layout {}
  \midi { \tempo 4=100 }
} 

1°) j'ai marqué le renvoi * au début de la première mesure avec \markup
{\fontsize #8 "*"}

2°) *centrer les lettres A et B :
Malgré les commandes \mark "A" ou \mark "(A) ainsi que \mark \default, je
n'arrive pas à centrer le A majuscule au milieu de la mesure ?

3°) comment diminuer la portée en *clef de Fa* objet du renvoi ?

4°) comment articuler l'ensemble \score avec la clef de Fa et le footnote ?
Faut-il utiliser \autofootnote avec padding et raise ?

5°) comment on revient aux portées normales pour les pages suivantes ?

---

From: Valentin Villenave <[email-masked]>
Date: Sat, 16 May 2020 13:13:26 +0200

> Suite à la réponse de Valentin, j'ai regardé la doc mais je me heurte à

Bonjour,
voici comment je procèderais. (Je ne suis pas arrivé à faire
fonctionner \footnote correctement, c’est un nid à bugs notoire, tant
pis.)

Notez en particulier :
- la concision de l’écriture de main gauche (\repeat unfold a été
inventé exactement pour le Boléro de Ravel).
- le regroupement des deux voix de la main droite ; plutôt que de
créer un nouveau bloc polyphonique << { } \\ { } >> pour chaque
mesure, je préfère mettre chacun de son côté tant qu’il y en a besoin
(d’ailleurs du coup je réécris la mesure 10 correctement, parce que
franchement LilyPond se débrouille très bien avec les croisements).
- l’absence de la variable accords et du contexte ChordNames.
- l’utilisation d’une ligne de paroles (lyrics) pour les notes de main
gauche au début et dans le petit bloc en bas de page.
- je crois comprendre que vous n’avez pas le si grave dans votre
tessiture de main droite (ce qui est d’ailleurs _très_ dommage pour
pouvoir jouer cette pièce). Je vous recommanderais toutefois de le
laisser quand même dans la partition, quitte à l’enlever en jouant ;
au moins sera-t-il présent «en pensée»…

%%%%

\header {
  title = "Boléro"

\paper {
  bottom-margin = 30
      \on-the-fly #part-first-page \fromproperty #'header:copyright

t =

right = {
  \global
  R2._\markup \bold \column { \vspace #1 "A" }
  R2._\markup \bold \column { \vspace #1 "B" }
  R2.*2
  \bar ".|:"\mark \markup { \musicglyph #"scripts.segno" }
  <<
    \relative c'' {
      <>_\markup \italic {\dynamic pp gradual crescendo until \dynamic ff}
      c4~ ( c8 b16 c d16 c b a
      c8) c16( a) c4( ~ c8 b16 c)
      a16( g e f) g2 ~
      g16 f( e d) e( f g a) g4( ~
      g4 ~ g16 a b a) g( f e d)
      e16 d c8_~ c c16 d e8( f)
      d4 g2~ g~ g8 r
      d'4 ~ ( d8. c16) b ( a b c)
      d16 ( c b8 ~ b16 c b a) c ( b a f ~
      f8) f16 f f8 a c16 ( a b g)
      f8 f16 f f8 a c16 ( a b g)
    } \\ \relative c' {
      r4 <d e g>8 r <d g> r
      r4 <d e g>8 r <d g> r
      r4 <d e>8 r <b d> r
      r4 d8 r q r
      r4 <d e>8 r <b d> r
      r4 <d e g>8 r b r
      r4 <c d f>8 r <b d> r
      r4 <c d f>8 r <b d> r
      r4 <f' g>8 r <d g> r
      r4 f8 r <d g> r
      r4 d8 r d r
      r4 d8 r d r
    }
}

left = \relative c {
  \global
  \clef bass
  \override TupletBracket.bracket-visibility = #'if-no-beam
  <>^\pp
  \repeat unfold 8 {
    <c g'>8-. \t {g'16 c, g'}
    c,8 \t {g'16 c, g'} c,8 g'
    q-. \t {g16 c, g'}
    c,8 \t {g'16 c, g'} c,16 g' c, g'
  }
}

GC = \markup {
  \hspace #-2
  \left-brace #20
  \translate #'(0 . 0.5)
  \override #'(baseline-skip . 2)
  \center-column {G C}
}

mainGauche = \lyricmode {
  \set stanza = \markup { \hspace #-4 \huge "*"}
  \GC G C G C G C G C G
  \GC G C G C G C G C G C G
  \once \override LyricText.self-alignment-X = #LEFT
  \markup \italic {(until letter C)}
}

notedeBasDePage = \markup \fill-line {
  \line \teeny \italic {
    ad libitum \hspace #-8
    \score { <<
      \new Devnull {
        s4.\mark \markup \medium A
        s2.\mark \markup \medium B
      }
      \new Staff \with {
        \remove Time_signature_engraver
      } \relative {
        \clef bass \time 3/4
        <c g'>8 g'16 g g8 g c,[ g']
        <c, g'>8 g'16 g g8 g c,16[ g' c, g']
        \set Score.skipTypesetting = ##t
      }
      \addlyrics {
        \GC G G G G C G
        \GC G G G G C G C G
      }
             \layout { #(layout-set-staff-size 10) }
    }
    until letter C
  }
  \left-column {
    "Counter bass notes marked thus:"
    \line {\hspace #3 D G C \italic etc.
    }
  }
}

\header {
  copyright = \notedeBasDePage
}
%% Réglages de présentation.
\layout {
  \context {
    \Score
    \override BarNumber.color = #red
    \override BarNumber.font-shape = #'italic
    \override BarNumber.font-size = #0.2
  }
  \override LyricText.font-size = #-2
}

%% Image de logo.
\markup {

    \addlyrics \mainGauche
  \layout {}
  \midi { \tempo 4=100 }
}

%%%

V. V.

---

From: gegeours <[email-masked]>
Date: Sun, 17 May 2020 00:57:23 -0700 (MST)

Bonjour à tous,

Un grand merci à Valentin pour cet excellent rendu.
C'est un travail parfait. Je n'en reviens pas !
Je vais mettre toutes ces informations dans mon aide-mémoire.

1°) j'ai pris bonne note du centrage des lettres A et B en faisant :
\markup \bold \column { v\space #1 "A"} ,

2°) j'ignorais que l'on pouvait dissocier les 2 voix de la main droite en
créant :
<< \relative c'' {  }
puis \\ \relative c' {  }
Où puis-je trouver cette possibilité dans la documentation. J'ai du lire le
manuel de notation (pdf) un peu trop rapidement.

3°) <>_\markup \italic {dynamic pp gradual crescendo until \dynamic ff}
Avec ce signe <> on peut écrire sans avoir besoin d'une note. De plus en
utilisant dynamic on s'évite des ennuis.
<> ce signe est également utilisé pour indiquer une nuance pp et peut être
considéré comme une figure de note ?

4°) effectivement le repeat unfod est tout à fait approprié pour ce genre de
morceau. On y gagne en temps.

5°) si j'ai bien compris les commandes ci-dessous décrivent la partie du
haut de la page :

GC = \markup {
  \hspace #-2
  \left-brace #20
  \translate #'(0 . 0.5)

Le signe de renvoi * correspond à \override #'(baseline-skip . 2) ?

6°) ensuite c'est la partie du bas avec :

- informations et centrage des lettres A et B

notedeBasDePage = \markup \fill-line {
  \line \teeny \italic {
    ad libitum \hspace #-8
    \score { <<
      \new Devnull {
        s4.\mark \markup \medium A
        s2.\mark \markup \medium B
      }
- puis la nouvelle portée en clé de Fa qui est réduite :

 \new Staff \with {
  } \left-column {
Bonne journée à tous.

---

From: Valentin Villenave <[email-masked]>
Date: Sun, 17 May 2020 18:29:14 +0200

> \markup \bold \column { v\space #1 "A"} ,

Euh, pas exactement; en fait le \vspace (comme son nom l’indique) est
un espace _vertical_. Il me sert à repousser les lettres vers la
portée du bas (oui, c’est un hack).

La raison pour cela est qu’en fait j’ai aligné les lettres sur les
silences de la portée de main droite, qui sont justement placés au
milieu de la mesure. Et j’ai fait une astuce du même genre pour la
petite portée en bas de page : je crée une portée invisible (Devnull)
pour y mettre des silences, et j’aligne les lettres sur ces silences
invisibles.

> 2°) j'ignorais que l'on pouvait dissocier les 2 voix de la main droite en

La construction polyphonique toute simple est
<<
    quelque chose pour la voix du haut
  \\
    quelque chose pour la voix du bas

Ces "quelque chose" peuvent être n’importe quelle expression musicale
: un petit bout de musique entre accolades, un bloc \relative {}, une
voix entière créée avec \new Voice, bref, ce qu’on veut.

Vous pouvez lire ces deux endroits de la doc :
http://lilypond.org/doc/v2.21/Documentation/learning/music-expressions-explained.fr.html
http://lilypond.org/doc/v2.21/Documentation/notation/multiple-voices.fr.html#single_002dstaff-polyphony

> utilisant dynamic on s'évite des ennuis.

Attention, vous avez oublié un \ devant dynamic ci-dessus.

> considéré comme une figure de note ?

C’est ce qu’on appelle un accord vide ; ça ne contient aucune note et
c’est une astuce très pratique. Ça existe depuis des décennies mais
personne ne l’utilisait ; j’ai commencé à l’ajouter à certains
endroits de la documentation et je milite pour que ce soit plus connu…

>   \markup \italic {(until letter C)}

Oui. Comme vous pouvez le voir, j’ai stocké l’empilement des lettres G
et C avec une accolade dans une variable (que je nomme \GC). C’est
juste pour pouvoir l’utiliser à deux endroits différents sans avoir
besoin de tout recopier.

Et la variable \mainGauche, est en fait une ligne de paroles, comme
pour une chanson. C’est ce qu’il y a de plus simple pour pouvoir
imprimer des mots (en l’occurrence des mots d’une seule lettre)
correctement alignés en-dessous des notes de la portée. En plus les
paroles permettent même d’utiliser des \markup, ce qui me permet ici
d’ajouter des machins plus compliqués comme cet empilement dans \GC.

> Le signe de renvoi * correspond à \override #'(baseline-skip . 2) ?

Même pas. Le signe de renvoi, je l’ai mis dans un "stanza", qui sert
d’ordinaire à indiquer les numéros de couplets dans les paroles :
http://lilypond.org/doc/v2.21/Documentation/notation/stanzas.fr.html#adding-stanza-numbers

La propriété baseline-skip me sert juste à rapprocher verticalement le
G et le C (changez la valeur et vous verrez ce que ça change).

> notedeBasDePage = \markup \fill-line {

Ce qui est important à remarquer ici, c’est qu’il y a un \markup (donc
un machin plutôt fait pour imprimer du texte), dans lequel j’ajoute un
bloc \score (à savoir une partition).

>         s2.\mark \markup \medium B

Ceci est la portée invisible dont je parlais…

>         \set Score.skipTypesetting = ##t

Effectivement. J’utilise la propriété skipTypesetting pour terminer
abruptement la portée, avant même la barre de mesure (comme c’était le
cas dans votre partition).

>     \line {\hspace #3 D G C \italic etc.

Et du coup j’ajoute une autre column, qui ira se caler de l’autre côté
de la page ; j’avais ouvert tout au début du \markup un grand bloc
\fill-line, auquel je donne deux gros blocs à aligner : du coup le
premier (le \score) se retrouve complètement à gauche, et le deuxième
(le \left-column) se retrouve à droite. Vous pouvez vous référer à
l’exemple du Mikado ici :
http://lilypond.org/doc/v2.21/Documentation/notation/formatting-text.fr.html#text-alignment

Cordialement,
-- V.