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

[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




reply via email to

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