Subject: fonction scheme, ou contexte ou graveur perso ?

From: Daniel Cartron <[email-masked]>
Date: Thu, 16 May 2013 08:31:21 +0200

Bonjour,

J'utilise sans cesse des \new Staff \with {
avec une douzaine de \override Staff...
	}
et j'aimerais bien me trouver un raccourci pour ça, genre
\monStaffperso

Le grand bonheur serait de pouvoir passer des arguments de type string pour 
personnaliser un \override Clef ou autre.

J'ai fait des essais de fonction scheme mais j'ai des erreurs tout le temps, 
je ne dois pas utiliser le bon modèle ou la bonne syntaxe, j'ai beau éplucher 
les fichiers qui sont des le rep scm de lily ça reste ardu à comprendre.

Quant aux contextes et graveurs persos je ne suis pas certain que ce soit ce 
que je cherche.

Si qqun avait un petit exemple que je puisse comprendre et adapter ce serait 
sympa.

Merci de vos lumières.

-- 
Cordialement, Daniel Cartron
« Pour entrer chez vous, une seule adresse : la vôtre! »
Francis Blanche

---

From: Jean-Jacques Gerbaud <[email-masked]>
Date: Thu, 16 May 2013 09:45:20 +0200

> Bonjour,
Bonjour Daniel,
> personnaliser un \override Clef ou autre.

Pourquoi ne pas faire un fichier (mon StaffPerso) dans lequel tu mets 
tous tes "override" et dans le \score {
\include "monStaffPerso"

Je ne sais pas si ça pourrait marcher mais au moins on aura essayé !

Bonne chance
-- 
JJG

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

---

From: Daniel Cartron <[email-masked]>
Date: Thu, 16 May 2013 10:22:26 +0200

> Je ne sais pas si ça pourrait marcher mais au moins on aura essayé !

c'est justement ce que je fais pour l'instant mais le pb est que j'ai 
plusieurs staff persos et que j'aurais bien voulu tout avoir dans le mm 
fichier et avoir une syntaxe qui fasse bien lilypondesque, plutôt qu'un 
include, mais si ya pas d'autres solutions je cotinuerai comme ça...

Et puis ça me permet pas de passer des arguments en paramètre???

-- 
Cordialement, Daniel Cartron
« Qui rit sous l'okoumé, pleure sous l'acajou. »
Proverbe bantou - Alexandre Vialatte

---

From: Gilles <[email-masked]>
Date: Fri, 17 May 2013 16:44:43 +0200

> avec une douzaine de \override Staff...
Depuis la 2.14, je crois (ou la 2.16 ?), il est possible de mettre en  
variable une section \with
Du genre :
staffSetI = \with { .... }
staffSetII =  \with { .... }

Et après
   \new Staff \with \staffSetI
     \music...
   \new Staff \with \staffSetII
      \othermusic
etc ...

-- 
Gilles

---

From: Daniel Cartron <[email-masked]>
Date: Fri, 17 May 2013 21:13:41 +0200

>    \new Staff \with \staffSetII

pas évident, ton truc...

staffSetI = \with {\remove "Time_signature_engraver"}
passe sans pb, mais
staffSetI = \with {\override StaffSymbol #'line-count = #1}
provoque une erreur :
GUILE a signalé une erreur pour l'expression débutant ici
staffSetI = \with {\override StaffSymbol #'line-count = #
                                                         1}

Dommage c'était prometteur...

ha au fait je suis en 2.16.0 

-- 
Cordialement, Daniel Cartron
« Quand on ne sait pas où l'on va, il faut y aller!!...
...et le plus vite possible. »
Devise Shadock

---

From: Eluze <[email-masked]>
Date: Fri, 17 May 2013 12:29:35 -0700 (PDT)

Daniel Cartron-2 wrote
> staffSetI = \with {\override StaffSymbol #'line-count = #

dans certains cas l'espace est obligatoire:

 #'line-count = #1 }

Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/fonction-scheme-ou-contexte-ou-graveur-perso-tp7579653p7579676.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Daniel Cartron <[email-masked]>
Date: Fri, 17 May 2013 22:23:42 +0200

> dans certains cas l'espace est obligatoire:

exact, tout fonctionne merveuilleusement comme ça, du coup je vais laisser 
tomber mon idée de paramètres, je verrai plus tard si j'ai envie de pousser 
plus loin.

Merci beaucoup

-- 
Cordialement, Daniel Cartron
« Non, non ! N'être jamais parmi ceux qui haïssent. Tâcher d'être plutôt parmi 
ceux que l'on hait. On y est en meilleur compagnie. »
Sacha Guitry

---

From: Daniel Cartron <[email-masked]>
Date: Wed, 22 May 2013 17:54:01 +0200

>    \new Staff \with \staffSetII

je reviens sur le sujet car j'ai besoin d'aller un peu plus loin. J'ai une 
variable scheme (maintenant que j'ai trouvé comment les déclarer...) sur 
laquelle je voudrais faire un test (if) pour modifier une ligne de ma variable 
contenant la section \with.

j'ai donc écrit :
moncontexte = \with {
	\override ...
	\override ...
}

et j'ai aussi ça à caser qq part :
#(define-music-function (parser location)()
(if (eq? mavariable "mavaleur")
#{  \override si_oui#}
#{  \override si_non#}
))

mais ça marche pas...

Autant je sais que mon \moncontexte fonctionne correctement, autant pour la 
fonction scheme je suis nettement plus réservé, pour l'instant je fonctionne 
encore aux copier/coller personnalisés à tâton...

Si une bonne âme pouvait m'aider à finir...

-- 
Cordialement, Daniel Cartron
« La vraie paresse, c'est de se lever à six heures du matin pour avoir plus de 
temps à ne rien faire. »
Tristan Bernard

---

From: Daniel Cartron <[email-masked]>
Date: Wed, 22 May 2013 18:14:03 +0200

Le mercredi 22 mai 2013 17:54:01 Daniel Cartron a écrit :

Désolé je suis allé trop vite...
Il faut lire

monoverrideperso=

et 
moncontexte = \with {
        \override ...
\monoverrideperso
        \override ...
}

voilà ce coup-ci j'ai tout dit.

-- 
Cordialement, Daniel Cartron
« S'il n'y a que la vérité qui blesse, à quoi sert le mensonge ?. »
Robert Sabatier - Le livre de la déraison souriante

---

From: elmamyra <[email-masked]>
Date: Wed, 22 May 2013 12:28:16 -0700 (PDT)

Ça me semble assez bizarre comme méthode, je pense qu'il y a plus simple.
Pourrais-tu en dire un peu plus? Surtout, quelles sont les 2 overrides
complets pour "si_oui" et "si_non".

Daniel Cartron-2 wrote

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/fonction-scheme-ou-contexte-ou-graveur-perso-tp7579653p7579766.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Daniel Cartron <[email-masked]>
Date: Wed, 22 May 2013 22:07:36 +0200

> Ça me semble assez bizarre comme méthode, je pense qu'il y a plus simple.

ça ne me surprend pas, je suis encore total bourrin en scheme, vu que je 
découvre.

> complets pour "si_oui" et "si_non".

je résume :
je veux personnaliser un \new Staff avec tout un tas de trucs, en gros tout 
ce qu'on met après \with {...

Donc je voudrais pouvoir écrire dans mon fichier 
\new Staff \with { \moncontexte } 
	<< { \mamusique...

J'ai déjà réussi à faire ça, avec les indications de gilles.
moncontexte = \with {
        \override ...
}
fonctionne très bien.

Je voudrais maintenant aller plus loin et remplacer la ligne
	\override Clef #'text = \markup{blabla}
contenue dans \moncontexte
par un truc du genre :
(if (eq? mavariable "mavaleur")
\override Clef #'text = \markup{blabla}
sinon
\override Clef #'text = \markup{beuleubeuleu}

c'est du pseudo code mais je pense que tu devrais comprendre

Mon pb est que je ne trouve pas de doc qui me dise comment faire ça, est-ce 
que c'est l'intégralité de ;
moncontexte = \with {
        \override ...

qui doit se retrouver enchassé dans une fonction scheme ou alors je peux 
juste intégere la fonction ainsi ;

moncontexte = \with {
        \override ...
#mafonctionquivabien
        \override ...
}

Celà suffit-il ou non ? Sinon j'essaye de te fournir plus d'infos mais mon 
code actuel est très touffu et imbriqué, ce serait difficile d'envoyer un 
truc compilable mais si tu veux j'essaye.

Merci pour ton aide

-- 
Cordialement, Daniel Cartron
« Il n'y a pas d'homme cultivé, il n'y a que des hommes qui se cultivent. »
Maréchal Foch.

---

From: elmamyra <[email-masked]>
Date: Wed, 22 May 2013 13:35:26 -0700 (PDT)

Je pense que le plus simple est de mettre directement le code scheme dans
l'override, comme ceci:

\override Clef #'text = \markup #(if (eq? mavariable "mavaleur") "blabla"
"beuleubeuleu")

si "mavariable" est une chaîne de caractère il faudra utiliser "string=?" à
la place de "eq?".

Juste par curiosité à quoi sert le Clef #'text ? je ne le vois pas dans la
documentation.

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/fonction-scheme-ou-contexte-ou-graveur-perso-tp7579653p7579768.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Daniel PEZ <[email-masked]>
Date: Thu, 23 May 2013 00:11:48 +0200

Bonsoir,

J'ai sans doute mal cherché, mais je ne trouve pas comment mélanger du 
texte avec des glyphes.
je voudrais pouvoir écrire (sur 2 lignes):" dal (glyphe *Coda*) al 
(glyphe *Segno*)
                poi segue"
Merci de m'éclairer...

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Thu, 23 May 2013 00:22:08 +0200

http://lsr.dsi.unimi.it/LSR/Search?q=coda

Bonne nuit,
Pierre

Le 23 mai 2013 00:11, Daniel PEZ <[email-masked]> a écrit :

> _______________________________________________
> liste de diffusion lilypond-user-fr
> [email-masked]
> https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
>
>

---

From: Jean-Jacques gerbaud <[email-masked]>
Date: Thu, 23 May 2013 00:35:50 +0200

>> je voudrais pouvoir écrire (sur 2 lignes):" dal (glyphe *Coda*) al
pierre Perol-Schneider t'a déjà répondu mais voilà une autre possibilité :

\version "2.17.7"

\score {
<<
	\new Staff { c''1 c'' }
	\new Staff {
	c'1 c \mark \markup \column {"Dal Coda al Segno" "e poi segue" }
	}
	
\layout {
\context {
	\Score
	\remove "Mark Engraver"
	\remove "Staff_collecting_engraver"
	}
\context {
	Staff
	\consists "Mark Engraver"
	\consists "Staff_collecting_engraver"
	}
     }
}

-- 
JJG

---

From: Daniel Cartron <[email-masked]>
Date: Thu, 23 May 2013 06:04:40 +0200

> si "mavariable" est une chaîne de caractère il faudra utiliser "string=?" à

merci pour ta réponse mais ça ne passe pas, lily tousse et me dit que #(if 
(string?.....) n'est pas un markup.

> Juste par curiosité à quoi sert le Clef #'text ? je ne le vois pas dans la
Je ne me souviens plus de qui m'a donné le tuyau  mais avec ces deux lignes
	\override Clef #'stencil = #ly:text-interface::print
	\override Clef #'text = \markup{\raise #-1.1 \column { \bold { "P" "T"}}}
on affiche PT verticalement à la place de la clé.

-- 
Cordialement, Daniel Cartron
« Il ne faut jamais regarder quelqu'un qui dort. C'est comme si on ouvrait une 
lettre qui ne vous est pas adressée. »
Sacha Guitry

---

From: Daniel Cartron <[email-masked]>
Date: Thu, 23 May 2013 10:34:28 +0200

> si "mavariable" est une chaîne de caractère il faudra utiliser "string=?" à

après plusieurs essais ça marche avec :
	\override Clef #'text = 
			#(if (string=? mavariable "mavaleur")
				#{\markup{ "blabla"} #}
				#{\markup{ "beuleubeuleu"} #}
			)
sinon j'ai des messages disant soit que c'est pas un markup soit que je suis 
pas dans un contexte...

Maintenant que j'ai surmonté cet obstacle-ci, même si j'ai pas vraiment 
compris pourquoi ça marche (notamment l'intérêt des #{ #}) je passe au 
suivant...

Merci

-- 
Cordialement, Daniel Cartron
« En essayant continuellement on finit par réussir. Donc : plus ça rate, 
plus on a de chance que ça marche. »
Jacques Rouxel - Les shadoks