Subject: Clef originale et Bonne année

From: aubineau jean-vincent <[email-masked]>
Date: Wed, 09 Jan 2008 18:43:24 +0100

Bien chers lilypondeurs,
je cherche désespérément à mettre, avant une ligne vocale réalisée en clef de sol, la clé originale (genre ut 1, sol 1 , etc ... comme cela se fait pour les partitions de qualité de musique ancienne).
Il y a un exemple compliqué sur internet, mais j'avoue que je n'ai pas tout compris.
Y-a-t-il moyen de faire simple ?
Avec mes remerciements et mes meilleurs voeux lilypondesques pour 2008.

JV Aubineau

---

From: "Valentin Villenave" <[email-masked]>
Date: Wed, 9 Jan 2008 21:07:39 +0100

> Y-a-t-il moyen de faire simple ?

Voici un exemple simple :

  \override Staff.Clef #'stencil = #ly:text-interface::print
  \override Staff.Clef #'text =
  \markup { \raise #-1 \musicglyph #"clefs.C_change" \musicglyph #"clefs.G" }
  \clef treble

Si tu veux, voici l'explication :

  on veut donc écrire, si je t'ai bien suivi, non pas un mais _deux_
symboles de clef : une clé d'ut première (j'imagine) et une clef de
sol.
LilyPond permet de substituer n'importe quel symbole par un autre.
L'astuce, c'est de changer le "crayon" (stencil en anglais) qu'il
emploie pour le dessiner. En l'occurence, on change le crayon en un
outil appelé text-interface, qui permet d'écrire du texte ou tout ce
qu'on veut.

    \override Staff.Clef #'stencil = #ly:text-interface::print

Nous voici donc en mesure d'écrire une "étiquette" (markup) en lieu et
place de la clef. La commande \markup, qui sert à construire ces
étiquettes, est une commande extraordinairement puissante : elle
permet d'intégrer du texte, du graphisme, et même de la mise en forme.

Je vais maintenant modifier le "texte" à imprimer :

  \override Staff.Clef #'text =

...et voici mon \markup.

  \markup {

Dans mon markup, je veux des symboles musicaux. Je vais donc aller les
chercher dans le manuel :
http://kainhofer.com/~lilypond/Documentation/user/lilypond/The-Feta-font.html

Chouette, il y a des clefs. Si tu regardes bien, elles sont même
disponibles en deux tailles. Je vais donc prendre une petite clé d'Ut,
et une clé de Sol normale, ce qui nous donne :
clefs.C_change et clefs.G

j'introduis ces symboles par la commande \musicglyph, qui permet
d'utiliser, comme son nom l'indique, un symbole (glyph) musical.

Ah flûte, la clef d'Ut va se retrouver au milieu de la portée (or je
veux une clé d'Ut 1ère ligne, pas 3ème ligne). Je vais donc la bouger
vers le bas (note le chiffre négatif) :

\raise #-1 \musicglyph #"clefs.C_change"

J'adjoins ma clef de sol :

\musicglyph #"clefs.G" }

Et c'est prêt !

  \override Staff.Clef #'stencil = #ly:text-interface::print
  \override Staff.Clef #'text =
  \markup { \raise #-1 \musicglyph #"clefs.C_change" \musicglyph #"clefs.G" }

Cordialement,
Valentin

---

From: "Valentin Villenave" <[email-masked]>
Date: Wed, 9 Jan 2008 21:42:12 +0100

>   \markup { \raise #-1 \musicglyph #"clefs.C_change" \musicglyph #"clefs.G" }

Ajouté au LSR :
http://lsr.dsi.unimi.it/LSR/Item?id=370

Valentin

---

From: "Valentin Villenave" <[email-masked]>
Date: Thu, 10 Jan 2008 10:33:37 +0100

Le 10/01/08, aubineau jean-vincent<[email-masked]> a écrit :
> Merci bien pour le temps passé à m'expliquer.
> Quand j'applique la formule, j'ai droit à deux clés par début de ligne.
> Pour bien expliciter mon souhait, je désirerais faire comme (vraiment au hasard) la partition suivante :
> http://icking-music-archive.org/scores/frescobaldi/CanzoniLibro1/Frescobaldi_a3_c2b_n4.pdf
> où il y a une clef originale par tête de ligne puis la clé usuelle, et, ce qu'une seule fois sur la première ligne.

Oui, c'est très facile, il suffit juste d'ajouter \once avant chaque
override, afin qu'il ne s'applique qu'une seule fois.

Le snippet suivant propose une version améliorée, notamment en évitant
toute collision entre la clé et l'armure ou le chiffre de mesure
(clique sur l'image pour voir le code):
http://lsr.dsi.unimi.it/LSR/Item?id=370

Cordialement,
Valentin

---

From: "Valentin Villenave" <[email-masked]>
Date: Fri, 11 Jan 2008 01:16:40 +0100

Le 10/01/08, aubineau jean-vincent<[email-masked]> a écrit :

> Comment peut-on mettre cette petite clé sur une mini-portée avant la double barre verticale qui relie les différentes portées de la partition ?

Bon sang, mais c'est bien sûr !
La "petite" portée est tout simplement à créer dans le *nom* de
l'instrument (InstrumentName), qui s'affiche avant la portée.

Comment est-ce possible ? Eh bien figure-toi que la commande \markup
peut même contenir... des partitions.

démonstration, à copier/coller :

\relative {
 \set Staff.instrumentName =
  \markup {
    \raise #5.5 \score {
        \new Staff \with {
            \remove "Time_signature_engraver"
            % fontSize = #-2
            % \override StaffSymbol #'staff-space = #(magstep -2)
         }
        {
            \set Staff.instrumentName="Soprano  "
            \clef soprano
        s
        }
        \layout {
             ragged-right = ##t
         }
      }
   \hspace #.5
  }

  \clef treble a' b c d \break b c a c
}

\layout {
  indent = 4\cm
}

%%%%%%%%%%%%%%

OK. Récapitulons :

Je pourrais mettre directement :
 \set Staff.instrumentName = "Soprano"

...mais on peut aussi mettre ça dans un bloc markup, ce qui permet par
exemple de faire des effets, par exemple :
 \set Staff.instrumentName = \markup { \italic "Soprano" \bold "grosso" }

Mais ici, mon bloc \markup va contenir toute une mini partition :

  \markup {
    \score {  % à partir de là, je suis dans la mini-partition
    \new Staff  % je crée une portée
    \with {
    \remove "Time_signature_engraver" % j'enlève le chiffre de mesure

  % les deux lignes suivantes sont commentées ;
  % elles permettent de faire une portée plus petite si besoin

   % fontSize = #-2
   % \override StaffSymbol #'staff-space = #(magstep -2)
   }

  % je commence à remplir la portée de ma "fausse" partition :
   {
  % je vais lui donner un "vrai" nom, qui s'affichera :
   \set Staff.instrumentName="Soprano  "

  % je lui mets une clé (qui s'affichera sur la "fausse" portée
    \clef soprano

  % je n'ai pas envie de la remplir alors je mets juste un "s"
    s
    }   % ici j'ai terminé ma fausse partition.
   % Je vais l'éloigner un peu sur la gauche :
   \hspace #.5
    }  % ici je termine (enfin) mon "markup"

  % maintenant voici ma vraie partition :
  \clef treble a' b c d \break b c a c
}

% Cependant, comme j'ai créé un nom d'instrument
% "à rallonge", il me faut augmenter la marge pour lui faire
% de la place :

\layout {
  indent = 4\cm % ça devrait suffire.
}

Je me suis beaucoup inspiré de http://lsr.dsi.unimi.it/LSR/Item?id=348

Cordialement,
Valentin

---

From: Marc Lanoiselée <[email-masked]>
Date: Sun, 13 Jan 2008 17:24:34 +0100

Valentin Villenave a écrit :
 > Le 10/01/08, aubineau 
jean-vincent<[email-masked]> a écrit :
 >
 >> Comment peut-on mettre cette petite clé sur une 
mini-portée avant la double barre verticale qui relie les 
différentes portées de la partition ?
 > démonstration, à copier/coller :
...................................................
...............................................
Merci aussi

   Amicalement

Marc Lanoiselée