Subject: placement automatique d'un markup

From: Jean-marc LEGRAND <[email-masked]>
Date: Mon, 9 Jul 2007 15:56:59 +0200

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

---

From: Philippe Hézaine <[email-masked]>
Date: Mon, 09 Jul 2007 18:11:06 +0200

> . Y) dans la définition du trille ?
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: Jean-marc LEGRAND <[email-masked]>
Date: Tue, 10 Jul 2007 11:49:53 +0200

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              

                                                                                                    

 \version "2.10"

\score {
\relative c' {
\clef alto

                            Phil.