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 no te


From: Xavier Scheuer
Subject: Re: markup positionné par rapport à une no te
Date: Wed, 5 May 2010 20:43:26 +0200

2010/5/4 Editions IN NOMINE <address@hidden> :

> Ub9.04+2.13
>
> Bonjour à tous !

Salut !


> 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


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


> 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


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




reply via email to

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