lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: placement automatique d'un markup


From: Jean-marc LEGRAND
Subject: Re: placement automatique d'un markup
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 
<address@hidden>@GROUP
                                                                                
                 cc
                                                 Jean-marc LEGRAND 
<address@hidden>,
                 Veuillez répondre à             address@hidden
                  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                                        
             <address@hidden>                                
                                                                                
                  A
             09/07/2007 18:11                    Jean-marc LEGRAND 
<address@hidden>,
                                                 address@hidden
                                                                                
                 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.







reply via email to

[Prev in Thread] Current Thread [Next in Thread]