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: Philippe Hézaine
Subject: Re: placement automatique d'un markup
Date: Wed, 11 Jul 2007 13:59:28 +0200
User-agent: Thunderbird 2.0.0.4 (X11/20070615)

Jean-marc LEGRAND a écrit :


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.
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.





reply via email to

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