[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: markup positionné par rapport à une note
From: |
Editions IN NOMINE |
Subject: |
Re: markup positionné par rapport à une note |
Date: |
Thu, 06 May 2010 10:00:55 +0200 |
User-agent: |
Thunderbird 2.0.0.24 (X11/20100411) |
Avant toute chose : bravo et merci ! Je faisais chauffe rla gomme depuis
un bon moment sur ce casse-tête, et là, je peux enfin partir comme une
flèche !
En préambule, ce code tout simple :
trille = \markup {\fontsize #2 {\musicglyph #"scripts.rcomma" }}
\relative c' {\clef alto e2 d4.^\trille c8 c1}
Comme indiqué dans le titre, mais plus explicitement, je cherche à
faire 3 choses en une :
1. étirer le rcomma dans l'axe Y pour qu'il soit un peu plus élancé
Désolé, je crains que cela ne soit pas possible, pour le moment.
http://code.google.com/p/lilypond/issues/detail?id=888
Pas grave : je vais me débrouiller en modifiant la fonte si besoin.
Merci pour l'info.
2. faire en sorte que quelle que soit la note à qui je colle ^\trille
ce trille soit toujours placé identiquement relativement à sa note
(avec anchor ?)
Dans ce cas, se baser sur une solution à base de Script, plutôt que
d'utiliser des TextScripts. En effet, par définition les Scripts sont
"ancrés" à la tête de note alors que les TextScript sont par définition
des éléments "outside-staff".
Enfin, il me semble...
Ceci me fait donc comprendre que je n'arrive pas à abaisser les
TextScripts dans les lignes de Staff !
3. encapsuler tous les override que je pressens dans la définition
de trille
Dans ce cas je conseillerais d'utiliser -\tweak dans la définition, car
la commande -\tweak se place après la note alors que les \override
doivent nécessairement être placés avant.
Or vous voulez utiliser \trille * après*, n'est-ce pas ?
http://lilypond.org/doc/v2.12/Documentation/user/lilypond/The-tweak-command
Tout à fait : je n'avais pas capté correctement la différence. Non, en
réalité, je n'ai jamais correctement lu ces deux dernières grosses
parties de la doc : il me semble que le temps est venu que je m'y plonge
gouluement...
Voici une solution à mon pb.
Je crée un éléemnt trille :
trille = \markup {\musicglyph #"scripts.rcomma" }
Ce trille est par défaut centré au dessus de la note.
Je crée alors une fonction "bouge" qui a pour but de fixer le
décalage vers la droite (ici +3) et de laisser le choix pour
l'ajustement vertical :
bouge = #(define-music-function (parser location shift) (number?)
#{
\once \override TextScript #'extra-offset = #(cons 3 $shift)
#})
Et je l'insère dans mon code au bon endroit :
\score {
\relative c' {\clef alto
c2 d4.^\trille c8 c1 \break %%%position par défaut
c2 \tra #-2.4 d4.^\trille c8 c1 %%%ajustement vertical pile poil à droite
du .
g2 \tra #-2.4 a4.^\trille g8 g1 %%%cet ajustement de -2.4 ne convient pas
pour d'autres notes
\bar "|."}}
Bon alors, plusieurs remarques/questions :
a. je suppose que la fonction "bouge" du dessus correspond à "tra"
en dessous, juste ?
Tout à fait : mille excuses !
b. votre commande \trille indique bien, * intrinsèquement*, une
indication de trille (i.e. le musicien jouera un trille) ?
Dans ce cas, pourquoi ne pas redéfinir le Script "trill" pour qu'il
corresponde à ce que vous souhaitez faire, en élaborant une solution
sur base du code de Cécile ?
@Cécile : c'est brillant, j'ai appris plein de choses grâce à votre
code, merci !
J'y vois 2 avantages :
1. solution basée sur Script et non TextScript (voir plus haut) ;
2. si votre indication "comma" après la note correspond bien à un
trille, alors il vous sera très aisé de produire une version
"ancienne" (trill = "comma" à droite de la note) et "moderne"
(trill = "tr" au-dessus de la note) à partir d'une même source :
il suffit de supprimer votre redéfinition de "trill".
Problème : le "X-offset" oblige une distance fixe entre la tête de
note et le "trill" (donc ne tient pas compte s'il y a un '.' ou non).
#(define my-script-alist
(append '(
("trill" . (
(script-stencil . (feta . ("rcomma" . "rcomma")))
(avoid-slur . around)
(padding . -2)
(quantize-position . #t)
(side-relative-direction . -1)
(X-offset . 3)
) )
) default-script-alist)
)
\layout {
\context {
\Score
scriptDefinitions = #my-script-alist
}
}
\score {
\relative c' {
\clef alto
c2 d4.\trill c8 c1 \break %% OK
c2 d4.\trill c8 c1 %% OK
g2 a4.\trill g8 g1 %% OK, pile poil à droite du .
\bar "|."
}
}
--
Xavier Scheuer <address@hidden>
Ca maaaaarche ! Au pire, je créerai une autre définition pour les notes
sans point, maintenant que je maîtrise totalement (hum)...
Bon ! A la lumière de vos éclaircissements, je me rends compte être
rentré dans le domaine de la gravure proprement dite, bien plus complexe
à appréhender que la "simple" saisie de notes... Ce qui est parfaitement
passionnant, d'ailleurs.
Merci encore et certainement à bientôt !
JMarc