Subject: Re: placement automatique d'un markup

From: Jean-marc LEGRAND <[email-masked]>
Date: Wed, 11 Jul 2007 11:41:24 +0200

Bon. Je vais essayer d'avancer un peu, mais j'ai encore besoin d'aide.

Je me suis pastillé la doc sur les fonctions (chapitre 12. LE chapitre 12...), et notamment le
12.1.3 sur les fonctions à deux variables.

Je pars de l'exemeple de la doc :

   manualBeam =
     #(define-music-function (parser location beg end)
                             (number? number?)
     #{
       \once \override Beam #'positions = #(cons $beg $end)
     #})

     \relative {
       \manualBeam #3 #6 c8 d e f
     }

Mettons, pour aller vers mon besoin, que je souhaite fixer le beg à 2. Je change la fonction
(fonction à 1 variable) et la syntaxe d'appel dans le score :

   manualBeam =
     #(define-music-function (parser location end)
                             (number?)
     #{
       \once \override Beam #'positions = #(cons 2 $end)
     #})

     \relative {
       \manualBeam #6 c8 d e f
     }

Ca marche ! Il est donc possible, pour une fonction à 2 variables, d'en fixer une des deux de façon
définitive.

Donc je me dis : ça va faire pareil pour mon besoin.

Je pars donc de mon besoin initial (merci à Phil !), un peu modifié (je dédouble les deux variables
comme dans la doc) :

trille = \markup {\musicglyph #"scripts.rcomma" }
trtxt =    #(define-music-function (parser location x y) (number? number?)
    #{
        \once \override TextScript #'extra-offset = #'($x $y)
    #})

\score {
\relative c' {
\clef alto
c4 e \trtxt #2 #-3 d^\trille f
\bar "|."
}
}

Et là, vous allez rire, mais ça n'a aucun effet (pas de message d'erreur, mais aucun effet) : je
pense que je me trompe dans la syntaxe de la fonction...

Quelqu'un aurait-il une idée ?

Pour la suite, je pense que je peux faire comme ci-dessus, en fixant une des variables (le x).

Merci d'avance !

JMarc

             Jean-marc                                                                              
             LEGRAND/CRS/FR/RM/Corp                                                                 
                                                                                                  A 
             10/07/2007 11:49                    Philippe Hézaine <[email-masked]>@GROUP  
                                                                                                 cc 
                                                 Jean-marc LEGRAND <[email-masked]>,   
                 Veuillez répondre à             [email-masked]                           
                  Jean-marc LEGRAND                                                           Objet 
                                                 Re: placement automatique d'un markup(Document     
                                                 link: Jean-marc LEGRAND)                           

                                                                                                    

Super ! Ca commence à s'alléger : je me disais bien qu'il fallait un truc genre programmation en
local pour y arriver...

Bon : l'ennui, c'est que comme je ne maîtris epas le passage en chinois, je ne sais pas comment
faire pour fixer la valeur X dans la définition de trtxt.
Ce serait pratique : je n'aurais plus que des instructions du type :

\trtxt #'(-2.7) d^\trille

Là ce serait top !

J'ai essayé :
trtxt =   trtxt =    #(define-music-function (parser location shift) (pair?)
    #{    \once \override TextScript #'extra-offset = #'(2 . -$shift)    #})

avec

\trtxt #'(-2.7) d^\t

Pas de message d'erruer (c'est déjà ça !) mais aucun effet : le rcomma est placé au dessus de la
note, dans l'axe vertical d'icelle...

En tous les cas, merci Phil : c'est un grand pas pour moi !

En fait, il faudrait déjà que je me bouge le popotin pour aller dans la doc !

JMarc

             Philippe Hézaine                                                                       
             <[email-masked]>                                                             
                                                                                                  A 
             09/07/2007 18:11                    Jean-marc LEGRAND <[email-masked]>,   
                                                 [email-masked]                           
                                                                                                 cc 
                                                                                                    
                                                                                              Objet 
                                                 Re: placement automatique d'un markup              

                                                                                                    

Jean-marc LEGRAND a écrit :
>
>
> XP +  lily 2.10
>
> Bonjour.
>
> Dans la musique pour viole de gambe, le trille apr le haut est souvent représenté par le signe
> rcomma, placé au même niveau que la tête de la note.
> D'un côté c'est cool, pârce que le signe existe dans Feta Font, mais de l'autre j'ai le problème
> suivant : il me faut placer à la main tous les signes rcomma, comme dans l'exemple ci-dessous :
>
> \version "2.10"
>
> trille = \markup {\musicglyph #"scripts.rcomma" }
>
> \score {
> \relative c' {
> \clef alto
> c4 e \once \override TextScript #'extra-offset = #'(2 . -2.7) d^\trille f
> \once \override TextScript #'extra-offset = #'(2 . -2.2) e^\trille g
> \once \override TextScript #'extra-offset = #'(2 . -4.7) b,^\trille c
> d8 e f4 \once \override TextScript #'extra-offset = #'(2 . -2.2) e2^\trille
> \bar "|."
> }
> }
>
> Ca alourdit méchamment le code !
>
> J'aimerais intégrer à ma définition de trille le déclage de 2 vers la droite. Mais le top, ce
serait
> que le trille se positionne automatiquement à 2 vers la droite, et au niveau exact de la tête.
>
> Au pire, il serait possible de créer un signe de trille par note, ça ne me dérange pas : trillea,
> trillebes, trillec...
> MA vraie question est en fait : comment insérer le \once \override TextScript #'extra-offset = #'
(X
> . Y) dans la définition du trille ?
>
> Bravo par avance !
>
> A bientôt
>
> JMarc
>
Je ne pense pas que ce soit ce que tu cherches, mais enfin voilà
peut-être une proposition
à enrichir.

 \version "2.10"

trille = \markup {\musicglyph #"scripts.rcomma" }
trtxt =    #(define-music-function (parser location shift) (pair?)
    #{
    \once \override TextScript #'extra-offset = $shift
    #})

\score {
\relative c' {
\clef alto
c4 e \trtxt #'(2 . -2.7) d^\trille f
\trtxt  #'(2 . -2.2) e^\trille g
\trtxt  #'(2 . -4.7) b,^\trille c
d8 e f4 \trtxt  #'(2 . -2.2) e2^\trille
\bar "|."
}
}

                            Phil.

---

From: Philippe Hézaine <[email-masked]>
Date: Wed, 11 Jul 2007 13:59:28 +0200

> d8 e f4 \trtxt  #'(2 . -2.2) e2^\trille
A chercher la petite bête, j'ai fini par trouver ça:

 \version "2.10-25"

trille = \markup {\musicglyph #"scripts.rcomma" }
trtxt =    #(define-music-function (parser location shift) (number?)
    #{
    \once \override TextScript #'extra-offset = #(cons 2.4 $shift)
    #})

\score {
\relative c' {
\clef alto
c4 e \trtxt #'-2.7 d^\trille f
\trtxt  #'-2.2 e^\trille g
\trtxt  #'-4.7 b,^\trille c
d8 e f4 \trtxt  #'-2.2 e2^\trille
\bar "|."
}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
il ne faut pas mettre la   '   pour #'(cons 2.4 $shift)  donc:   #(cons 
2.4 $shift)

Dans le score cela ne semble pas important,  tu peux aussi bien écrire 
\trtxt #'-2.7  ou  \trtxt #-2.7 
Je n'en sais pas plus.
                                                       Phil.

---

From: Jean-marc LEGRAND <[email-masked]>
Date: Wed, 11 Jul 2007 14:24:26 +0200

Phil, tu es TROP fort, comme disent mes gones !

Un triple BRAVO : 1. pour avoir trouvé LA solution (et tu ne peut t'imaginer comment mes fichiers
vont maigrir avec cette trouvaille !) ; 2. pour m'avoir fait plonger la tête dans le chapitre 12 d
ela doc ; 3. pour le plaisir d'un bis !

A bientôt

JMarc

             Philippe Hézaine                                                                       
             <[email-masked]>                                                             
                                                                                                  A 
             11/07/2007 13:59                    Jean-marc LEGRAND <[email-masked]>,   
                                                 [email-masked]                           
                                                                                                 cc 
                                                                                                    
                                                                                              Objet 

                                                                                                    

A

cc

>                   Jean-marc LEGRAND
Objet

A

cc

Objet

 \version "2.10-25"

\score {
\relative c' {
\clef alto

---

From: Philippe Hézaine <[email-masked]>
Date: Wed, 11 Jul 2007 14:40:21 +0200

> ela doc ; 3. pour le plaisir d'un bis !
Je ne suis pas du tout TROP fort. J'ai surtout eu un peu d'intuition et 
beaucoup de chance.
Et, si je peux me permettre un conseil, fais tout de même très attention 
à ces cures d'amaigrissements. Comme je dis souvent:
"Il suffit d'une banane du régime pour m'aigrir"
                                                                   Phil.