Subject: Crochets (d'analyse) au-dessus de texte

From: Gilles Tiar <[email-masked]>
Date: Mon, 19 Apr 2021 00:26:38 -0700 (MST)

Bonjour à tous,

Je cherche à placer ce qui correspond pour de la musique à des "crochets
d'analyse", mais au-dessus de texte.
Dans mon exemple, le texte est représenté par des numéros de degrés. Je
voudrais qu'un crochet d'analyse (ou quelque chose similaire), comme celui
que j'ai placé sur la mélodie, apparaissent plutôt au-dessus de ma ligne de
texte :

%%%%%%%%%%%%%%%%%%%%%
\version "2.23.0"
\language français

\layout {
 \context {
    \Score
    \remove Timing_translator
    \override SpacingSpanner.spacing-increment = 3
  }  
   \context {
    \Voice
    \consists "Horizontal_bracket_engraver"
  }
}

melody = \relative do' {
  \override HorizontalBracket.direction = #UP  
  mi8\startGroup sold sold si mi, la\stopGroup r
}
degres = \lyricmode {
  I III _ V I IV
}
 
 \score {
  << 
    \new Lyrics \degres
   \new Voice \melody    
}
%%%%%%%%%%%%%%%%%%%%%

Bien-sûr j'ai cherché, mais sans succès.

Merci pour l'aide

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

---

From: Jacques Menu <[email-masked]>
Date: Mon, 19 Apr 2021 11:23:48 +0200

Bonjour Gilles,

Peut-être que le fichier attaché peut t’aider.

JM

> Le 19 avr. 2021 à 09:26, Gilles Tiar <[email-masked]> a écrit :
> 
> Bonjour à tous,
>

---

From: Gilles Tiar <[email-masked]>
Date: Mon, 19 Apr 2021 04:47:28 -0700 (MST)

Merci Jacques,

Ce code peut sans doute m'aider. Je l'ai réduit (voir ci-dessous).
Par contre, j'aimerais n'avoir que le crochet supérieur et non les deux
crochets entourant le texte. Je n'ai pas trouvé encore comment faire.
Pour positionner mes numéros de degrés, j'ai utilisé \hspace.
Toute suggestion pour peaufiner cette solution est la bienvenue.

Merci d'avance,

%%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.23.0"

#(define-markup-command (hbracket-harm layout props arg)
   (markup?)
   
   #:properties ((thickness 1)
                (height 0.25))
  
   (let ((th (* (ly:output-def-lookup layout 'line-thickness)
               thickness))
         (m (interpret-markup layout props arg)))
     (bracketify-stencil m X th height th)))

\language français

\layout {
 \context {
    \Score

melody = \relative do' {
 mi8^\markup  {
    \override #'(thickness . 2)
    \override #'(height . 1)
    \hbracket-harm {
      \line \pad-around #0.2 {
        I \hspace #2 III \hspace #4.5 V \hspace #2 I \hspace #1.5 IV
      }
    }
  } sold sold si mi, la r
}
 
 \score {
  << 
   \new Voice \melody    
}
%%%%%%%%%%%%%%%%%%%%%%%%%

---

From: Jean Abou Samra <[email-masked]>
Date: Fri, 23 Apr 2021 15:09:58 +0200

> Toute suggestion pour peaufiner cette solution est la bienvenue.

Bonjour,

Pardon pour la réponse tardive. Je pense que
le plus simple ici est de procéder comme ceci :

\version "2.23.3"

\language français

\layout {
  \context {
     \Score

melody = \relative do' {
   \override HorizontalBracket.direction = #UP
   \override HorizontalBracket.Y-offset = 7
   \override HorizontalBracket.Y-extent = #empty-interval
   \override HorizontalBracket.shorten-pair = #'(0 . -1)
   mi8\startGroup sold sold si mi, la\stopGroup r
}
degres = \lyricmode {
   I III _ V I IV
}

  \score {
   <<
     \new Lyrics \degres
    \new Voice \melody
   >>
}

Cordialement,
Jean

---

From: Gilles Tiar <[email-masked]>
Date: Fri, 23 Apr 2021 07:19:53 -0700 (MST)

Un grand merci à nouveau Jean.

Jean Abou Samra wrote
> Pardon pour la réponse tardive. 

Il n'y a vraiment pas de quoi.

Gilles