Subject: Collision numéro de couplet/ paroles

From: Gildas Prévost <[email-masked]>
Date: Fri, 7 Mar 2014 23:47:36 +0100

Bonsoir,

Dans une partition je rencontre un problème de collision entre le numéro de
couplet qui est répété à chaque système grâce à une fonction, et les
paroles dès lors que la syllabe qui apparaît en début de ligne est un peu
grosse. Il faudrait trouver un moyen pour augmenter un peu l'espace entre
la clef et la première note de chaque système. J'imagine qu'il y a sûrement
quelque paramètre de KeySignature ou BarLine ou autre chose à régler mais
je ne suis arrivé à rien de concluant pour l'instant. Est-ce que quelqu'un
aurait une piste ?
J'ai fait un fichier d'exemple en pj.

Question bonus : la fonction couplet que j'utilise pour répéter le numéro
au début de chaque système ne marche pas quand la voix débute par une pause
et oblige à rajouter un vocalName. Y aurait-il une possibilité pour rendre
la fonction plus robuste et qu'elle prenne en compte ce cas ?

%%%%%%%%  Fonction couplet :
couplet =
#(define-music-function (parser location str) (string?)
    #{ \override InstrumentName #'X-offset = #3
  \override InstrumentName #'font-size = #-0.2
  \override InstrumentName #'font-series = #'bold
  \set vocalName = $str
  \set shortVocalName = $str
      #}
      )
%%%%%%%%

Merci de vos lumières.

Gildas

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sat, 8 Mar 2014 09:29:24 +0100

> Bonsoir,

Bonjour Gildas,

>
> Dans une partition je rencontre un problème de collision entre le numéro
> de couplet qui est répété à chaque système grâce à une fonction, et les
> la clef et la première note de chaque système.
>
>
Une solution simple :

 alto = \relative c' {

\global

a1 d2 d |c a \ficta bes2. c4 | d2 c1 bes2 | a1 d | f2 f e c | \break

\once\override Score.LyricText.self-alignment-X = -1

d2. e4 f g e2~ | e d e1 | a, d2 d | c a \ficta bes2. c4 | d c c1 bes2 |
\break

\once\override Score.LyricText.self-alignment-X = -1

a1 d | f2 f e c | d4 c d e f e a2~ | a gis a1 | e c2 a | \break

\once\override Score.LyricText.self-alignment-X = -1

b c d4 e f d | e2 d1 cis2 | d1 a' | f2 d f e | d4 e f1 e2 | \break

\once\override Score.LyricText.self-alignment-X = -1

f1 a | c2 a g f | e d g f | e\breve \bar "|."

}

Cordialement,

~Pierre

---

From: JJG <[email-masked]>
Date: Sat, 08 Mar 2014 10:33:37 +0100

>Le 08/03/2014 09:29, Pierre Perol-Schneider a écrit :
> Le 7 mars 2014 23:47, Gildas Prévost <[email-masked]
> <mailto:[email-masked]>> a écrit :
............
> Une solution simple :
> \once \override Score.LyricText.self-alignment-X = -1

Encore plus simple :
global = {
   \key a \minor
   \time 2/2
   \set Score.measureLength = #(ly:make-moment 4 2)
  \override Score.LyricText.self-alignment-X = -1
}

(Au lieu de mettre plusieur fois "\once \overrride ..." , on la met dans 
\global, sans "once" !
-- 
JJG

Linux ? Y a moins bien mais c'est plus cher !
http://www.sky.fm/play/classical
http://www.radiosuisseclassique.ch/fr

---

From: JJG <[email-masked]>
Date: Sat, 08 Mar 2014 10:36:25 +0100

............
> \once \override Score.LyricText.self-alignment-X = -1

Simple en effet et efficace mais on peut faire encore plus simple :
(au lieu de mettre plusieurs fois "\once \overrride ..." , on la met 
dans \global, sans "once" ! )

global = {
   \key a \minor
   \time 2/2

-- 
JJG

---

From: Gildas Prévost <[email-masked]>
Date: Sat, 8 Mar 2014 17:37:55 +0100

Bonjour,

Oui effectivement ça marche bien. Le seul inconvénient est que maintenant
les syllabes sont alignées sur la gauche au lieu d'être centrées... Y
aurait-il un moyen de garder les syllabes centrées ? Je trouve que la
lecture des partitions est plus aisée quand les syllabes sont centrées. En
tout cas merci déjà de cette proposition.

Gildas

Le 8 mars 2014 10:36, JJG <[email-masked]> a écrit :

> (au lieu de mettre plusieurs fois "\once \overrride ..." , on la met dans
> \global, sans "once" ! )
>
>
> global = {
>   \key a \minor
>   \time 2/2

-- 
204 rue de Saint Malo
35000 Rennes

06 31 84 85 03
09 73 59 44 32

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sat, 8 Mar 2014 18:22:25 +0100

> tout cas merci déjà de cette proposition.

Oui, il y a moyen mais dans ce cas cela affecte tous les espacements et,
donc, le nombre de "systems" :
 \override Score.NonMusicalPaperColumn.padding = #4 % ou plus ?

---

From: Gildas Prévost <[email-masked]>
Date: Sat, 8 Mar 2014 22:42:24 +0100

Ah oui, ça dilate sacrément les mesures...
En fait j'ai remarqué que je n'ai pas de problème dès qu'il y a des dièses
ou bémols à la clef. Mon idée est donc de simuler l'emplacement d'une
altération fictive invisible (qui ne change pas le comportement des notes)
mais qui décale la gravure de la première note de chaque système, comme le
font les altérations.
J'ai pas encore trouvé la fonction permettant de faire ça mais je vais
continuer à chercher.

Gildas

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sat, 8 Mar 2014 23:04:30 +0100

> J'ai pas encore trouvé la fonction permettant de faire ça mais je vais

Malin ça !
Si ça marche avec une armure ça doit aussi le faire avec une métrique, plus
simple à simuler :
\once\override Score.TimeSignature.transparent = ##t

\time 2/2

~Pierre

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sat, 8 Mar 2014 23:31:41 +0100

Le 8 mars 2014 23:04, Pierre Perol-Schneider <
[email-masked]> a écrit :

>
> Malin ça !
> Si ça marche avec une armure ça doit aussi le faire avec une métrique,
> plus simple à simuler :

Petit oubli, dans \global il faut ajouter :
\override Score.TimeSignature.break-visibility = ##'end-of-line-invisible

pour supprimer la métrique avant \break.

---

From: Gildas Prévost <[email-masked]>
Date: Sun, 9 Mar 2014 12:16:56 +0100

Merci beaucoup pour ces éléments, je pense qu'on est sur la bonne voie mais
je n'ai pas réussi à faire fonctionner ces fonctions. La clef actuelle
devient transparente et la commande de break-visibility ne semble produire
aucun effet. J'ai essayé de la mettre ailleurs que dans le \global mais
sans plus de succès.

Gildas

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sun, 9 Mar 2014 14:10:26 +0100

> aucun effet. J'ai essayé de la mettre ailleurs que dans le \global mais

Voir fichier joint.

Bon dimanche,
~Pierre

---

From: JJG <[email-masked]>
Date: Sun, 09 Mar 2014 14:47:51 +0100

Le 09/03/2014 14:10, Pierre Perol-Schneider a écrit :
> Le 9 mars 2014 12:16, Gildas Prévost <[email-masked]
>     je n'ai pas réussi à faire fonctionner ces fonctions. La clef
>     actuelle devient transparente et la commande de break-visibility ne
>     semble produire aucun effet. J'ai essayé de la mettre ailleurs que
>     dans le \global mais sans plus de succès.

Un petite erreur dans /global qui - je crois - n'a pas trop d'influence 
mais il faut respecter la grammaire :
  \set Score.measureLength = #(ly:make-moment 4 2) ("4 2"  au lieu de "4/2")

Dans le code, il y a toujours collision dans le dernier système.

Si on rajoute, toujours dans \global :
  \override Score.LyricText.self-alignment-X = -1

les collisions disparaissent (je ne veux pas avoir l'air d'insister mais 
j'avais déjà signalé cette commande dans un précédent message).

par contre, les chiffres "1" et "3" ont disparu du premier système !

-- 
JJG

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sun, 9 Mar 2014 18:00:05 +0100

Le 9 mars 2014 14:47, JJG <[email-masked]> a écrit :

> Dans le code, il y a toujours collision dans le dernier système
>

je n'en vois pas chez moi...

> j'avais déjà signalé cette commande dans un précédent message).

Oui mais, visiblement, Gildas ne souhaite pas ce type d’alignement.

> par contre, les chiffres "1" et "3" ont disparu du premier système !

Petite erreur de copier/coller
ci-joint le code corrigé.

---

From: Gildas Prévost <[email-masked]>
Date: Sun, 9 Mar 2014 19:35:31 +0100

Bonjour,

Voilà qui est impeccable, merci beaucoup à tous les deux!
J'avais pas compris qu'il fallait mettre le \once\override
Score.TimeSignature.transparent = ##t

à chaque système car j'imaginais un comportement générique qui s'applique
quelque soit le saut de ligne (intéressant pour l'optimisation des grandes
partitions.). Pour des petites partitions comme celle-ci cette solution
reste simple.

Encore merci.

Gildas