Subject: \include "common.ily"

From: Jean-Jacques Gerbaud <[email-masked]>
Date: Wed, 19 Jan 2011 14:11:52 +0100

Bonjour à tous,

J'ai fait un fichier "common.ily" (ci-dessous)  que j'ai placé dans lilypond.

ten = -\markup \italic "ten."
app = \appoggiatura
acc = \acciaccatura
agr = \afterGrace
gr = \grace
su = \stemUp
sd = \stemDown
sn = \stemNeutral

J'ai placé \include "common.ily" dans le code de ma partition, entre \header 
et \paper, au début.

Lorsque j'appelle certaines variables telles que ten, su ou sd la 
compilation se passe normalement mais pour
ou app ou agr

j'obtiens des erreurs.

Voici d'abord le code de ma partition :
\version "2.13.46"
.........

    	\time 2/4
          \clef "treble"
          \key a \minor

          a'4\f e'
          e8. f16 d8. \su e16
          c8. e16 d8. f16
          \sn e4 a,
          d8. e16 d8. \app e16
          d8. f16 e8. d16
          e4.-+ (b16 c)
(un peu simplifié et les \su \app  ou \sn sont placés au hasard

Et voici le résultat de la compilation :
"/home/viejo/Musique/fichiers_lilypond/Boismortier/sonate37_5_Allegro.ly"
Traitement de « 
/home/viejo/Musique/fichiers_lilypond/Boismortier/sonate37_5_Allegro.ly »
Analyse...
/home/viejo/lilypond/usr/share/lilypond/current/ly/common.ily:3:0: Erreur : 
syntax error, unexpected STRING

acc = \acciaccatura
/home/viejo/lilypond/usr/share/lilypond/current/ly/common.ily:4:0: Erreur : 
syntax error, unexpected STRING

agr = \afterGrace
/home/viejo/lilypond/usr/share/lilypond/current/ly/common.ily:5:0: Erreur : 
syntax error, unexpected STRING

gr = \grace
/home/viejo/lilypond/usr/share/lilypond/current/ly/common.ily:6:0: Erreur : 
syntax error, unexpected STRING

su = \stemUp
Interprétation en cours de la musique...[8][8]
Pré-traitement des éléments graphiques...
Interprétation en cours de la musique...
Sortie MIDI vers « sonate37_5_Allegro.midi »...
Détermination du nombre optimal de pages...
Répartition de la musique sur une page...
Dessin des systèmes...
Avertissement : pas de configuration initiale viable repérée :
la pente du lien pourrait être inesthétique.
Sortie mise en page vers « sonate37_5_Allegro.ps »...
Conversion à « ./sonate37_5_Allegro.pdf »...
Erreur : erreur sur les fichiers 
"/home/viejo/Musique/fichiers_lilypond/Boismortier/sonate37_5_Allegro.ly"
Durée totale du traitement : 2 secondes

A noter que lorsque j'écris \appoggiatura, la compilation aboutit 
normalement (heureusement !:-)

A noter également que si je mets les indications du fichiers du même fichier 
entre \header et \paper, seules les su, sd et sn sont reconnues.

Voilà, un petit problème à résoudre.

Merci pour vos réponses

-- 
JJG
(En raison du degré important de mon "oublitude", je demande à mes
correspondants de me prévenir à l'approche d'un rendez-vous prochain)

---

From: Xavier Scheuer <[email-masked]>
Date: Wed, 19 Jan 2011 15:11:44 +0100

2011/1/19 Jean-Jacques Gerbaud <[email-masked]>:
> [...]

En voyant les messages d'erreur je dirais que c'est parce les commandes
 \appoggiatura ,  \acciaccatura ,  \afterGrace  ou encore  \grace
requièrent _toutes_ un argument sous forme d'une expression musicale.
Donc c'est ce qui empêche de les "variabliser" comme tes "su" ou "ten".

Remplacer leur définition par une "music-function" résout le problème.

app = #(define-music-function (parser location expr) (ly:music?)
    #{ \appoggiatura $expr #})

(idem pour "acc", "agr", etc.)

D'ailleurs cela te permet de les utiliser pour plus d'une note :
  \app { f16[ g] } e8

Cordialement,
Xavier

PS : D'ailleurs dans le code de ta partition il manque la note
appogiaturée, non ?

-- 
Xavier Scheuer <[email-masked]>

---

From: Jean-Jacques Gerbaud <[email-masked]>
Date: Wed, 19 Jan 2011 19:14:16 +0100

Le 19/01/2011 15:11, Xavier Scheuer a écrit :

> 2011/1/19 Jean-Jacques Gerbaud<[email-masked]>:
>>
>> Bonjour à tous,
>>

Merci Xavier
(j'ai laissé tout le texte pour que les éventuels visiteurs aient le 
problème en entier et, surtout, la solution !)

Oui, vraiment merci, je n'ai pas encore essayé ta solution mais je ne doute 
pas de tes capacités et de don résultat.

Si je comprends bien, ce fichier peut être amélioré au fur et à mesure des 
besoin et on peut le mettre une fois pour toutes dans toutes les partition...

C'est quand même plus facile (et plus court) de taper \app plutôt que 
appoggiatura (surtout qu'on oublie toujours un p ou un g !

> PS : D'ailleurs dans le code de ta partition il manque la note

Aahhh l'oeil du maître !  je n'avais marqué \app que pour l'exemple. Mais je 
vois que tu vois tout !

Merci encore et j'ai encore un autre problème à soumettre. Je prends un 
autre fil.
-- 
JJG
(En raison du degré important de mon "oublitude", je demande à mes
correspondants de me prévenir à l'approche d'un rendez-vous prochain)

---

From: Jean-Jacques Gerbaud <[email-masked]>
Date: Thu, 20 Jan 2011 16:14:07 +0100

> 2011/1/19 Jean-Jacques Gerbaud<[email-masked]>:
........
> D'ailleurs cela te permet de les utiliser pour plus d'une note :

Merci Xavier, ça fonctionne pour \app et \acc mais pas pour \agr
La compilation ne passe pas pour \afterGrace.

Voici le message d'erreur :
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Analyse...
<string>:1:60: Erreur : syntax error, unexpected '}'
parseStringResult = \notemode {  \afterGrace \lilyvartmpba
 
}/home/viejo/Musique/fichiers_lilypond/Boismortier/sonate37_5_Allegro.ly:471:2: 
Erreur : suite à des erreurs répétées, l'expression musicale sera ignorée

   <<
Succès de Compilation menée à son terme, avec succès.
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

La fin de mon fichier ==============================

       } % pour les "unfold 20
     >> % fin voix invisible
} % fin "relative { voix 3
  %%%%%%%%%% fin de la musique

\score {
	
   <<		 %-----> ligne 471
   \new StaffGroup <<  % pour grouper les 3 voix

   {
          \override Score.BarNumber  #'break-visibility =#end-of-line-invisible
          \override Score.RehearsalMark  #'padding = #2.5
          \resetBarnum
   }

   \new Staff  {\voixI }
   \new Staff  {\voixII }

   \new Staff  { \voixIII }		

  >>   % ---> fin du "groupage" des trois voix

  >>  %  (début : ligne 471)

  \layout { }
  	
  \midi { }
} % ---> fin du score
  %%%%%%
========================================

je ne comprends pas le message d'erreur

Et toi ?

Il ne faut pas faire une priorité de mon problème. Tu dois en avoir 
certainement d'autres de plus importants !

---

From: Mike Solomon <[email-masked]>
Date: Thu, 20 Jan 2011 10:17:48 -0500

Essaie de mettre des accolades autour de $expr dans ta définition de agr.

~Mike

On Jan 20, 2011, at 10:14 AM, Jean-Jacques Gerbaud wrote:

> }/home/viejo/Musique/fichiers_lilypond/Boismortier/sonate37_5_Allegro.ly:471:2: Erreur : suite à des erreurs répétées, l'expression musicale sera ignorée
> 
>  <<
> Il ne faut pas faire une priorité de mon problème. Tu dois en avoir certainement d'autres de plus importants ! 
> 
> 
> -- 
> JJG
> _______________________________________________
> liste de diffusion lilypond-user-fr
> [email-masked]
> http://lists.gnu.org/mailman/listinfo/lilypond-user-fr

---

From: Jean-Jacques Gerbaud <[email-masked]>
Date: Thu, 20 Jan 2011 18:28:58 +0100

>>> 2011/1/19 Jean-Jacques Gerbaud<[email-masked]>:

........
Merci Mike, j'ai essayé et ça ne marche toujours pas mais le message a changé :

Analyse...
<string>:1:61: Erreur : syntax error, unexpected $end
parseStringResult = \notemode {  \afterGrace {\lilyvartmpba
 
}/home/viejo/lilypond/usr/share/lilypond/current/scm/ly-syntax-constructors.scm:47:12: 
In expression (apply fun (cons* parser loc ...)):
/home/viejo/lilypond/usr/share/lilypond/current/scm/ly-syntax-constructors.scm:47:12: 
Unbound variable: }

C'est curieux car pour app et acc ça marche, et pas pour agr

any other idea ?

---

From: Mike Solomon <[email-masked]>
Date: Thu, 20 Jan 2011 12:58:21 -0500

Je me suis trompé...il faut que tu fasses un truc du style:

afg = #(define-music-function (parser location expr1 expr2) (ly:music? ly:music?)
    #{ \afterGrace $expr1 $expr2 #})

\relative c' { a4 \afg a { b8 c } d4 }

afterGrace prend deux arguments.

Cordialement,
Mike

On Jan 20, 2011, at 12:28 PM, Jean-Jacques Gerbaud wrote:

> }/home/viejo/lilypond/usr/share/lilypond/current/scm/ly-syntax-constructors.scm:47:12: In expression (apply fun (cons* parser loc ...)):
> /home/viejo/lilypond/usr/share/lilypond/current/scm/ly-syntax-constructors.scm:47:12: Unbound variable: }
>

---

From: Jean-Jacques Gerbaud <[email-masked]>
Date: Thu, 20 Jan 2011 22:37:37 +0100

> afterGrace prend deux arguments.

Merci Mike, ça marche ! Autrement dit, s'il faut deux arguments, on met
#(define-music-function (parser location expr1 expr2) (ly:music? ly:music?)
      #{ \afterGrace $expr1 $expr2 #})

Et s'il n'en faut qu'un seul :
#(define-music-function (parser location expr) (ly:music?)
       #{ \afterGrace $expr #})

Y a-t-il d'autres expressions qui utilisent des trucs imbriqués ? de manière 
à ne pas avoir à reposer la question dans quelque temps ?

Merci quand même à tous.

En ce moment, je suis en train de revoir les archives de la liste, histoire 
d'en apprendre un peu plus sur Lilypond. (Une de mes connaissance m'a dit :
moi, je préfère Finale, c'est WYSIWYG alors que Lilypond... des lignes de 
code... très peu pour moi ! (j'ai cru entendre comme une sorte de dédain !

j'ai même pas répondu... na !!!
-- 
JJG
(En raison du degré important de mon "oublitude", je demande à mes
correspondants de me prévenir à l'approche d'un rendez-vous prochain)

---

From: Mike Solomon <[email-masked]>
Date: Thu, 20 Jan 2011 19:42:27 -0500

On Jan 20, 2011, at 4:37 PM, Jean-Jacques Gerbaud wrote:

> Y a-t-il d'autres expressions qui utilisent des trucs imbriqués ? de manière à ne pas avoir à reposer la question dans quelque temps ?
> 
> Merci quand même à tous.
> 
> En ce moment, je suis en train de revoir les archives de la liste, histoire d'en apprendre un peu plus sur Lilypond. (Une de mes connaissance m'a dit :
> moi, je préfère Finale, c'est WYSIWYG alors que Lilypond... des lignes de code... très peu pour moi ! (j'ai cru entendre comme une sorte de dédain !
> 

Je connais très bien snobisme Finale.  J'y ai même adhéré à un moment donné (c'était ma période bleue...j'étais jeune...).
Il y a une page sur ça, mais c'est en anglais: http://lilypond.org/doc/v2.12/Documentation/user/lilypond/Overview-of-music-functions#Overview-of-music-functions
Dis-moi si tu as du mal à t'en sortir et je peux te donner des explications supplémentaires.

~Mike

---

From: Xavier Scheuer <[email-masked]>
Date: Fri, 21 Jan 2011 10:41:13 +0100

> j'ai même pas répondu... na !!!

Tu n'as qu'à lui montrer le résultat sous forme de PDF et comparer avec
rendu Finale !  ;D

2011/1/21 Mike Solomon <[email-masked]>:
>
> Je connais très bien snobisme Finale.  J'y ai même adhéré à un moment donné
> (c'était ma période bleue...j'étais jeune...).
> Il y a une page sur ça, mais c'est en
> anglais: http://lilypond.org/doc/v2.12/Documentation/user/lilypond/Overview-of-music-functions#Overview-of-music-functions

C'est parfait parce que je suis une bille en Scheme.
D'ailleurs j'en profite, puisqu'on a la chance d'avoir un développeur en
puissance parmi nous, elles te viennent d'où tes connaissances
"Schematoires" ?

Cordialement,
Xavier

---

From: Mike Solomon <[email-masked]>
Date: Fri, 21 Jan 2011 08:44:06 -0500

> puissance parmi nous, elles te viennent d'où tes connaissances

Je les ai acquis de manière pénible - en écrivant des tas de lignes de code (tu peux consulter les fichiers scm/define-woodwind-diagrams.scm et scm/display-woodwind-diagrams.scm dans la version de développement la plus récente) et en échouant avec presque chaque ligne avant d'y arriver.  Copier et coller était (et toujours est) mon meilleur ami.

~Mike