Texte aligné sur dynamic (was: Utilisation de la commande make-dynamic-script)

  \override DynamicText #'self-alignment-X = #LEFT
ou
  \override DynamicText #'self-alignment-X = #-1

Certes, mais malheureusement ils ne sont pas centrés sur le 'p', 'f'
(je veux dire que le 'p', 'f', n'est pas centré en-dessous de la note
comme dans le cas d'un "simple" \p ou \f ).

Est-il possible de justifier ces expressions à gauche au lieu de les
centrer ?

Il y a un snippet (d'ailleurs repris dans la documentation)
concernant "l'alignement horizontal des dynamics personnalisés" :
http://lsr.dsi.unimi.it/LSR/Item?id=393

Ou alors, utilisation du hshift, encore fort sombre pour moi ?

C'est ce que j'utilise — "#:hspace 0 #:translate '(8.5 . 0)" pour
être précis (solution n°5 dans le snippet).

Avantage : On peut aligner le dynamic exactement comme on le souhaite
(et pas de drawback, i.e. pas "d'effet de bord").

(Énormes) inconvénients :
  – il faut jouer – *manuellement* – sur la valeur dans le translate
    (pas de "procédure automatique").
  – *chaque* dynamic-script créé doit faire l'objet de ce "traitement".

Je rêve d'un moyen plus simple pour aligner ce genre de dynamics mêlant
l'indication proprement dite ('p', 'f') et le texte associé ("dolce",
"più").

Quelque chose comme
  c4\p\dynamicText "dolce"
qui l'alignerait /comme il faut/.[1]

@Valentin
Tu sais s'il y a une issue dans ce style sur le tracker (ou si ça a
déjà été discuté) ?
Je suis prêt à proposer un "bounty" de 50€ pour ce genre de
fonctionnalité.[2]

Xavier

···

Le Thu, 3 Dec 2009 11:25:54 +0100, Valentin Villenave <****@****> a écrit :
________

[1] Et un idéalement aussi un c4\preDynamicText "più"\f pour le cas où
    le texte est avant le dynamic.
[2] Même si je dois bien avouer que je ne sais pas trop comment
fonctionne ce système de "fonctionnalités sponsorisées".

--
Xavier Scheuer <****@****>

Quelque chose comme
c4\p\dynamicText "dolce"
qui l'alignerait /comme il faut/.[1]

Quelque chose comme:

%%% This function was provided by Graham Percival.
#(define (make-dynamic-extra dynamic string)
     (make-music
       'AbsoluteDynamicEvent
       'tweaks
         ;; calculate centering for text
         (list (cons (quote X-offset)
           (+ -0.5 (* -0.5 (string-length dynamic)))))
       'text
         (markup #:whiteout
           #:line (
               dynamic
               #:hspace -0.3
               #:normal-text #:italic string))
      ))

ffdolce = #(make-dynamic-extra "ff" "dolce")

{ a1 a\ffdolce a }
%%%%%%%%%%%%%%
http://repo.or.cz/w/opera_libre.git/blob/HEAD:/definitions/text-functions.ly#l135

[1] Et un idéalement aussi un c4\preDynamicText "più"\f pour le cas où
le texte est avant le dynamic.

Voir ma commande make-extra-dynamic.

[2] Même si je dois bien avouer que je ne sais pas trop comment
fonctionne ce système de "fonctionnalités sponsorisées".

Pour l'instant : pas.

Cordialement,
Valentin

···

2009/12/3 Xavier Scheuer <****@****>:

Quelque chose comme:

[...]

ffdolce = #(make-dynamic-extra "ff" "dolce")

{ a1 a\ffdolce a }
%%%%%%%%%%%%%%
Public Git Hosting - opera_libre.git/blob - definitions/text-functions.ly

Aaah[1], mais pourquoi ce n'est pas :
  – sur le LSR,
  – dans la Doc,
  – directement implémenté dans LilyPond ?!?

Ça rend complètement[2] obsolète le snippet
http://lsr.dsi.unimi.it/LSR/Item?id=393
non ?[3]

Petite question supplémentaire : est-ce que ça tiens compte du dynamic
renseigné pour la sortie MIDI ? (oui, c'est un petit détail)
En tout cas chapeau à Graham (et merci à Valentin).

Voir ma commande make-extra-dynamic.

Mmh, elle ne donne pas le résultat escompté (pas celui que j'espérais
en tout cas).

J'ai changé le (markup #:rounded-whiteout 1 en (markup #:whiteout
(sinon j'avais une erreur, et puis j'ai vu que c'est ce que tu avais
fait également dans celui que tu as envoyé).
C'est centré sur le texte alors que j'aimerais que ce soit toujours
centré sur le dynamic, mais avec le texte à gauche (au lieu de à droite
précédemment).

piuff = #(make-extra-dynamic "più" "ff")
% centré sur le "ff" et pas sur le "più"

Malheureusement mes (ou plutôt mon absence de) connaissances en Scheme
me permettent tout juste de modifier en surface une fonction existante
mais pas d'en comprendre le fonctionnement afin de créer les fonctions
que je souhaiterais.[4]

> Même si je dois bien avouer que je ne sais pas trop comment
> fonctionne ce système de "fonctionnalités sponsorisées".

Pour l'instant : pas.

Ah OK, dommage.

Merci beaucoup,
Xavier

···

Le Thu, 3 Dec 2009 13:19:44 +0100, Valentin Villenave <****@****> a écrit :
________

[1] Cri de surprise, joie mais aussi de ne pas avoir eu connaissance de
    cette fonction plus tôt.
[2] En partie seulement ?
[3] Ou au moins ça mérite d'y figurer en bonne place !
[4] En attentant le tutoriel vidéo de Valentin Villenave.

--
Xavier Scheuer <****@****>

Aaah[1], mais pourquoi ce n'est pas :
– sur le LSR,
– dans la Doc,
– directement implémenté dans LilyPond ?!?

Parce qu'une toute nouvelle infrastructure pour les nuances composites
a été implémentée qui n'oblige plus à ce genre de hack:
http://code.google.com/p/lilypond/issues/detail?id=817

Ça rend complètement[2] obsolète le snippet
http://lsr.dsi.unimi.it/LSR/Item?id=393
non ?[3]

Non, mais comme partout dans le monde Libre tu as le choix entre
différentes implémentations. Reinhold, Nicolas, et (dans une moindre
mesure) moi-même avons chacun éprouvé le besoin de réinventer la roue
à notre façon :slight_smile:

Au demeurant, n'hésite pas à ajouter ce que tu veux au LSR, y compris
ces fonctions.

Petite question supplémentaire : est-ce que ça tiens compte du dynamic
renseigné pour la sortie MIDI ? (oui, c'est un petit détail)

Je crois que oui.

En tout cas chapeau à Graham (et merci à Valentin).

En fait, il m'a plus ou moins piqué une idée que j'avais utilisée de
façon beaucoup plus tordue (ligne 315 du même fichier). Mais je la lui
ai piquée en retour, na.

Voir ma commande make-extra-dynamic.

Mmh, elle ne donne pas le résultat escompté (pas celui que j'espérais
en tout cas).

J'ai changé le (markup #:rounded-whiteout 1 en (markup #:whiteout
(sinon j'avais une erreur, et puis j'ai vu que c'est ce que tu avais
fait également dans celui que tu as envoyé).

Oui. La commande rounded-whiteout est une coquetterie personnelle.

C'est centré sur le texte alors que j'aimerais que ce soit toujours
centré sur le dynamic, mais avec le texte à gauche (au lieu de à droite
précédemment).

Remplace la ligne
(+ -0.5 (* -0.5 (string-length dynamic)))))
par
(- 0.5 (* 1.5 (string-length string)))))

(perso ça ne me dérange pas car je préfère que ce soit toujours centré
sur le premier mot quel qu'il soit).

Malheureusement mes (ou plutôt mon absence de) connaissances en Scheme
me permettent tout juste de modifier en surface une fonction existante
mais pas d'en comprendre le fonctionnement afin de créer les fonctions
que je souhaiterais.[4]

Ça viendra en bidouillant...

[4] En attentant le tutoriel vidéo de Valentin Villenave.

Oui bin hein bon. J'ai passé les derniers jours à mettre en ligne 30
minutes de vidéo de mon opéra, je peux pas être au four et au moulin
non plus :slight_smile:

Valentin

···

2009/12/3 Xavier Scheuer <****@****>:

Parce qu'une toute nouvelle infrastructure pour les nuances composites
a été implémentée qui n'oblige plus à ce genre de hack:
http://code.google.com/p/lilypond/issues/detail?id=817

Ah bon, j'avais cru comprendre que Reinhold travaillait sur la syntaxe
des cresc/dim, mais j'ignorais que cela aurait une incidence sur les
nuances composites. Je vais regarder ça plus en profondeur, merci.

Non, mais comme partout dans le monde Libre tu as le choix entre
différentes implémentations. Reinhold, Nicolas, et (dans une moindre
mesure) moi-même avons chacun éprouvé le besoin de réinventer la roue
à notre façon :slight_smile:

Au demeurant, n'hésite pas à ajouter ce que tu veux au LSR, y compris
ces fonctions.

Je vais y penser, en effet.

Remplace la ligne
(+ -0.5 (* -0.5 (string-length dynamic)))))
par
(- 0.5 (* 1.5 (string-length string)))))

Merci beaucoup* !

(perso ça ne me dérange pas car je préfère que ce soit toujours centré
sur le premier mot quel qu'il soit).

Mouais, ça dépend peut-être des éditions. En tout cas maintenant je
suis armé que je veuille centrer sur l'un ou sur l'autre. :wink:

Oui bin hein bon. J'ai passé les derniers jours à mettre en ligne 30
minutes de vidéo de mon opéra, je peux pas être au four et au moulin
non plus :slight_smile:

Il manquait le ";-)" à la fin de ma petite pique.
Chouette, ça a l'air bien foutu, avec les sous-titres et les petits
effets (non, je n'ai pas encore regardé, peut-être ce w-e).

Bonne continuation,
Xavier

···

Le Thu, 3 Dec 2009 19:51:59 +0100, Valentin Villenave <****@****> a écrit :

--
Xavier Scheuer <****@****>