Subject: Fonction avec argument pour la valeur d'un silence

From: Bernard-B <[email-masked]>
Date: Thu, 16 May 2019 07:50:21 -0700 (MST)

Bonjour à tous, En tant que chef de chœur, je suis souvent en train de graver
des partitions pour mes choristes... Et je sais que je ne suis pas le seul
!!! Bref ! Des cas comme ci-dessous, j'en ai des tonnes :Et pour éclaircir
la partition, je fais :Pour gagner du temps, j'ai tenté d'écrire une
fonction :Afin de factoriser un peu mon code source et pouvoir écrire :À la
compile (sous frescobaldi, nobody's perfect), j'ai :Je me doute bien que je
programme comme un noob... mais si quelqu'un avait la gentillesse de me dire
où est ma grosse bêtise, je lui en serais reconnaissant, et pourquoi pas une
p'tite bière !!! Un grand merci à tous ! Bernard. 

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

---

From: Jean ABOU SAMRA <[email-masked]>
Date: Thu, 16 May 2019 18:58:21 +0200

Bonjour,
Il y a deux problèmes dans votre code. Examinons la ligne :

\tweak #'Y-offset #0 r#(arg1)

D'une part, (arg1) signifie en Scheme « appeler la fonction arg1 sans argument » (pensez par exemple à « (newline) »). Une version plus correcte serait donc #arg1 tout simplement.
D'autre part, LilyPond ne supporte pas que l'on mélange ainsi la syntaxe Scheme et son propre mode de notes. Il faudrait faire tout cela en Scheme et ce serait un peu plus complexe.

Heureusement, rien de tout cela n'est nécessaire ici puisqu'il suffit d'ajouter en tête de fichier :

\layout {
	\context {
		\Staff
		% fusionner automatiquement les silences identiques entre les voix
		\consists "Merge_rests_engraver"
	}
}

La documentation est ici : http://lilypond.org/doc/v2.19/Documentation/notation/multiple-voices#merging-rests <http://lilypond.org/doc/v2.19/Documentation/notation/multiple-voices#merging-rests>
Cordialement,
Jean Abou Samra.

> Le 16 mai 2019 à 16:50, Bernard-B <[email-masked]> a écrit :
> 
> Bonjour à tous, En tant que chef de chœur, je suis souvent en train de graver des partitions pour mes choristes... Et je sais que je ne suis pas le seul !!! Bref ! Des cas comme ci-dessous, j'en ai des tonnes :
> \version "2.19.80"
> \language "italiano"
> 
> \score {
>   \new ChoirStaff <<
>     \new Staff <<
>       \new Voice = "S" { \voiceOne \relative do'' { r4 fa mi re }}
>       \new Voice = "A" { \voiceTwo \relative do'' { r4 re do si }}
>     >>
>     \new Staff <<
>       \clef bass
>       \new Voice = "T" { \voiceOne \relative do { r4 fa mi re }}
>       \new Voice = "B" { \voiceTwo \relative do { r4 re do si }}    
>     >>
>   >>
> }
> Et pour éclaircir la partition, je fais :
> \version "2.19.80"
> \language "italiano"
> \score {
>   \new ChoirStaff <<
>     \new Staff <<
>       \new Voice = "S" { \voiceOne \relative do'' { \tweak #'Y-offset #0 r4 fa mi re }}
>       \new Voice = "A" { \voiceTwo \relative do'' { s4 re do si }}
>     >>
>     \new Staff <<
>       \clef bass
>       \new Voice = "T" { \voiceOne \relative do { \tweak #'Y-offset #0 r4 fa mi re }}
>       \new Voice = "B" { \voiceTwo \relative do { s4 re do si }}    
>     >>
>   >>
> }
> Pour gagner du temps, j'ai tenté d'écrire une fonction :
> BBrest = 
> #(define-music-function
>      (parser location arg1)
>      (number?)
>    #{
>         \tweak #'Y-offset #0 r#(arg1) }
>    #})
> Afin de factoriser un peu mon code source et pouvoir écrire :
> \version "2.19.80"
> \language "italiano"
> \score {
>   \new ChoirStaff <<
>     \new Staff <<
>       \new Voice = "S" { \voiceOne \relative do'' { \BBrest #4 fa mi re }}
>       \new Voice = "A" { \voiceTwo \relative do'' { s4 re do si }}
>     >>
>     \new Staff <<
>       \clef bass
>       \new Voice = "T" { \voiceOne \relative do { \BBrest #4 fa mi re }}
>       \new Voice = "B" { \voiceTwo \relative do { s4 re do si }}    
>     >>
>   >>
> }
> À la compile (sous frescobaldi, nobody's perfect), j'ai :
> /tmp/frescobaldi-dgs6e0a8/tmp95fxsx8p/document.ly:9:28: Avertissement : Expression non musicale ignorée
>      \tweak #'Y-offset #0 r
>                            #arg1 }
> /tmp/frescobaldi-dgs6e0a8/tmp95fxsx8p/document.ly:9:34: Erreur : syntax error, unexpected '}'
>      \tweak #'Y-offset #0 r#arg1 
>                                  }
> /tmp/frescobaldi-dgs6e0a8/tmp95fxsx8p/document.ly:43:53: Erreur : erreur dans #{ ... #}
>       \new Voice = "S" { \voiceOne \relative do'' { 
>                                                     \BBrest #4 fa mi re }}
> Je me doute bien que je programme comme un noob... mais si quelqu'un avait la gentillesse de me dire où est ma grosse bêtise, je lui en serais reconnaissant, et pourquoi pas une p'tite bière !!! Un grand merci à tous ! Bernard. 
> Sent from the LilyPond French Users mailing list archive <http://lilypond-french-users.1298960.n2.nabble.com/> at Nabble.com.
> _______________________________________________
> liste de diffusion lilypond-user-fr
> [email-masked]
> https://lists.gnu.org/mailman/listinfo/lilypond-user-fr

---

From: Jean ABOU SAMRA <[email-masked]>
Date: Thu, 16 May 2019 19:30:35 +0200

Au fait, pour être complet, mentionnons également une solution plus évidente (je ne conserve qu'une portée) :

\language "français"
\new Staff <<
	\new Voice = "S" { \relative do'' { \oneVoice r4 \voiceOne fa mi re }}
	\new Voice = "A" { \relative do'' { \voiceTwo s4 re do si }}

Cordialement,
Jean Abou Samra

> Le 16 mai 2019 à 18:58, Jean ABOU SAMRA <[email-masked]> a écrit :
> 
> Bonjour,
>> Le 16 mai 2019 à 16:50, Bernard-B <[email-masked] <mailto:[email-masked]>> a écrit :
>> 
>> /tmp/frescobaldi-dgs6e0a8/tmp95fxsx8p/document.ly <http://document.ly/>:9:28: Avertissement : Expression non musicale ignorée
>>      \tweak #'Y-offset #0 r
>>                            #arg1 }
>> /tmp/frescobaldi-dgs6e0a8/tmp95fxsx8p/document.ly <http://document.ly/>:9:34: Erreur : syntax error, unexpected '}'
>> /tmp/frescobaldi-dgs6e0a8/tmp95fxsx8p/document.ly:43 <http://document.ly:43/>:53: Erreur : erreur dans #{ ... #}
>> Sent from the LilyPond French Users mailing list archive <http://lilypond-french-users.1298960.n2.nabble.com/> at Nabble.com <http://nabble.com/>.
>> [email-masked] <mailto:[email-masked]>

---

From: "[email-masked]" <[email-masked]>
Date: Thu, 16 May 2019 18:17:53 +0200

>         \tweak #'Y-offset #0 r#(arg1) }

Bonsoir,
Pour que votre fonction se compile chez moi il faut remplacer enlever les parenthèses 
————
  \tweak #'Y-offset #0 r#arg1
—————

En revanche, <arg1> est toujours évalué à 4 (noire) dans mes essai.

Bon courage,
Philippe

---

From: "[email-masked]" <[email-masked]>
Date: Thu, 16 May 2019 22:32:08 +0200

> En revanche, <arg1> est toujours évalué à 4 (noire) dans mes essai.

Désolé, je suis arrivé après la superbe réponse de Jean
Mais le courriel est partie en fin d’après-midi et arrive vers 21h …
Philippe

---

From: Christophe Pochon <[email-masked]>
Date: Thu, 16 May 2019 22:52:35 +0200

Ok, je profite de ce message pour informer Bernard que j'ai dû valider
manuellement son message car l'adresse [email-masked] n'est pas
abonnée à la liste.  Je ne sais pas si Bernard y est abonné avec une autre
adresse mail, ni s'il a reçu vos réponses.
Merci à Bernard de remédier à la situation.

Christophe Pochon

---

From: Christophe Pochon <[email-masked]>
Date: Thu, 16 May 2019 22:53:43 +0200

Oups, je renvoie en ajoutant l'adresse de Bernard aux destinataires.

Christophe Pochon

Le jeu. 16 mai 2019 à 22:52, Christophe Pochon <[email-masked]>
a écrit :

> manuellement son message car l'adresse [email-masked] n'est
> pas abonnée à la liste.  Je ne sais pas si Bernard y est abonné avec une
> autre adresse mail, ni s'il a reçu vos réponses.

---

From: Bernard-B <[email-masked]>
Date: Fri, 17 May 2019 00:59:52 -0700 (MST)

Bonjour à tous !

Un grand merci pour tout.

Et dans l'ordre, 3 choses :

*1. Une b'tite bière pour Jean ! *
Merci de cette réponse lumineuse. En tant qu'informaticien, j'ai honte :
/Read the Friendly Manual/... Je m'y attelle ! 
Et j'ajoute dans mon include perso ses lignes magiques :

*2. Merci à Philippe*
Pour avoir tenté de compiler, débuger, et comprendre mon bout de code... 

*3. Pour les messages en diffusion multiples et autres carabistouilles de
mon fait :*
Merci à Christophe pour le soin qu'il porte à la gestion de la liste. 
Je suis bien abonné, mais n'ayant jamais posté auparavant, je ne connaissais
pas les temps de réponse du serveur. 
Donc, donc, donc... j'ai posté, effacé, reposté, re-effacé... ne recevant
rien, j'ai encore re-posté...
Toutes mes excuses, je le saurai pour la prochaine fois !

Pour me faire pardonner, un p'tit lien sur ce que font mes choristes, pas
toujours très justes, 100% amateurs, 1% lecteurs et 1000% bonne volonté :
chœur Liturgique de Saint-Claude de Tassin
<http://choeur.liturgique.free.fr>   (69)

Bien cordialement,
Bernard.

---

From: "[email-masked]" <[email-masked]>
Date: Fri, 17 May 2019 10:54:15 +0200

> <http://choeur.liturgique.free.fr>   (69)

Bravo Bernard de nous partager ton travail.

Crois-tu pouvoir ajouter les partition sur votre site ou mettre un lien vers un git-lab/hub de vos partitions ?

Choriste mois aussi, chantant de la musique liturgique (chantre assez souvent), je suis assez fan de partitions.

Comme exemple, tu trouveras derrière ce lien une partition de l’Agnus Dei de Charles GOUNOD tirée de sa messe aux chapelles n°7 (il faut recopier les fichiers)
Mon idée principale dans cette ré-écriture était d’optimiser sur deux pages la partition en supprimant l’accompagnement instrumentale, puis de grossir ma voix (tenor) et pour terminer de lui ajouter des couleurs. Tout un programme !

https://github.com/papilip/mylilyscore/tree/master/chorale_de_laguiole/charles_gounod-agnus_dei-messe_chapelle_no7

À bientôt sur la liste,
Philippe

---

From: Christophe Pochon <[email-masked]>
Date: Fri, 17 May 2019 10:56:30 +0200

Bonjour,

Il y a visiblement quand même un souci, car j'ai dû valider ce message
aussi. Peut-être êtes-vous abonné avec une autre adresse que
[email-masked] ?

Bonne journée,

Christophe Pochon

---

From: Bernard Barbier <[email-masked]>
Date: Fri, 17 May 2019 14:42:50 +0200

Avec tous les soucis de transmission de messages, je reposte un super 
merci à Jean !

On va voir (merci Christophe) si ça passe mieux sans utiliser nabble !

( 
http://lilypond-french-users.1298960.n2.nabble.com/Re-Fonction-avec-argument-pour-la-valeur-d-un-silence-tp7587661p7587670.html 
)

Bernard.

On 16/05/2019 18:58, Jean ABOU SAMRA wrote:
> D'une part, (arg1) signifie en Scheme « appeler la fonction arg1 sans 
> argument » (pensez par exemple à « (newline) »). Une version plus 
> correcte serait donc #arg1 tout simplement.
> D'autre part, LilyPond ne supporte pas que l'on mélange ainsi la 
> syntaxe Scheme et son propre mode de notes. Il faudrait faire tout 
> cela en Scheme et ce serait un peu plus complexe.
>
> La documentation est ici : 
> http://lilypond.org/doc/v2.19/Documentation/notation/multiple-voices#merging-rests
> Cordialement,
> Jean Abou Samra.
>
>> Le 16 mai 2019 à 16:50, Bernard-B <[email-masked] 
>> <mailto:[email-masked]>> a écrit :
>>
>> Bonjour à tous, En tant que chef de chœur, je suis souvent en train 
>> de graver des partitions pour mes choristes... Et je sais que je ne 
>> suis pas le seul !!! Bref ! Des cas comme ci-dessous, j'en ai des 
>> tonnes :
>> \version "2.19.80"
>> \language "italiano"
>>
>> \score {
>>    \new ChoirStaff <<
>>      \new Staff <<
>> /tmp/frescobaldi-dgs6e0a8/tmp95fxsx8p/document.ly  <http://document.ly>:9:28: Avertissement : Expression non musicale ignorée
>>       \tweak #'Y-offset #0 r
>>                             #arg1 }
>> /tmp/frescobaldi-dgs6e0a8/tmp95fxsx8p/document.ly  <http://document.ly>:9:34: Erreur : syntax error, unexpected '}'
>> /tmp/frescobaldi-dgs6e0a8/tmp95fxsx8p/document.ly:43  <http://document.ly:43>:53: Erreur : erreur dans #{ ... #}
>> Je me doute bien que je programme comme un noob... mais si quelqu'un 
>> avait la gentillesse de me dire où est ma grosse bêtise, je lui en 
>> serais reconnaissant, et pourquoi pas une p'tite bière !!! Un grand 
>> merci à tous ! Bernard.
>> ------------------------------------------------------------------------
>> Sent from the LilyPond French Users mailing list archive 
>> <http://lilypond-french-users.1298960.n2.nabble.com/> at Nabble.com 
>> <http://Nabble.com>.

---

From: Christophe Pochon <[email-masked]>
Date: Fri, 17 May 2019 15:21:41 +0200

Bonjour,

Non, même problème, même sans passer par nabble.

Valentin, tu crois que tu peux faire quelque chose ? Bernard Barbier s'est
bien abonné à la liste avec l'adresse [email-masked] , mais je
dois quand même valider à chaque fois ses messages.

Christophe Pochon

Le ven. 17 mai 2019 à 14:42, Bernard Barbier <[email-masked]> a
écrit :

> argument » (pensez par exemple à « (newline) »). Une version plus correcte
> serait donc #arg1 tout simplement.
> D'autre part, LilyPond ne supporte pas que l'on mélange ainsi la syntaxe
> Scheme et son propre mode de notes. Il faudrait faire tout cela en Scheme
> et ce serait un peu plus complexe.
>
> Bonjour à tous, En tant que chef de chœur, je suis souvent en train de
> graver des partitions pour mes choristes... Et je sais que je ne suis pas
> le seul !!! Bref ! Des cas comme ci-dessous, j'en ai des tonnes :
>
> \version "2.19.80"
> \language "italiano"
>
> \score {
>   \new ChoirStaff <<
>     \new Staff <<
> Je me doute bien que je programme comme un noob... mais si quelqu'un avait
> la gentillesse de me dire où est ma grosse bêtise, je lui en serais
> reconnaissant, et pourquoi pas une p'tite bière !!! Un grand merci à tous !
> Bernard.
> ------------------------------
> <http://lilypond-french-users.1298960.n2.nabble.com/> at Nabble.com.

---

From: Valentin Villenave <[email-masked]>
Date: Sat, 18 May 2019 00:06:28 +0200

> dois quand même valider à chaque fois ses messages.

Je ne comprends pas très bien, je ne trouve aucun "barbier" dans la
liste des adresses inscrites. (Je viens de l'inscrire à la main, on
verra si ça marche.) Bernard, êtes-vous sûr que vous n'avez pas
confondu l'inscription auprès de Nabble avec l'abonnement à la liste
proprement dite ?

En tout cas avec un peu de chance c'est réglé. Merci Christophe !

V.