Subject: Créer des abreviations pour les variables scheme

From: Seventies <[email-masked]>
Date: Sun, 10 Jan 2010 08:13:47 -0800 (PST)

Bonsoir à l'équipe ...

Je remarque que beaucoup des discussions sur le forum tendent à rendre le
code Lilypond compréhensible, ce qui n'était pas mon cas jusqu'à présent.
Des lignes de 150 caractères, des indentations fantaisistes, bref, je revois
un peu tout ça dans le sens de la simplification.

Mais toujours dans le sens de cette simplification, je voudrais affecter des
valeurs à des variables scheme, du genre :

\override DynamicLineSpanner #'staff-padding = #2.0
\override DynamicText #'self-alignment-X = #-1
...

C'est surtout la construction << {} \\ {} >> qui demande de réintroduire à
chaque fois ces longues instructions.

Etant donné que les variables Lilypond ne permettent pas de créer des macros
sur de telles instructions, n'y a-til pas moyen d'utiliser quelque chose :-D
comme :
DynamicTextAlignement = -1
ou autre expression semblable.

D'avance merci,

Jean-François
-- 
View this message in context: http://n2.nabble.com/Creer-des-abreviations-pour-les-variables-scheme-tp4281647p4281647.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Nicolas Sceaux <[email-masked]>
Date: Sun, 10 Jan 2010 21:48:34 +0100

> ou autre expression semblable.

Il est possible d'écrire par exemple

  \dynamicTextAlignment #LEFT

en définissant une fonction, avec `define-music-function'.
Dans ce cas c'est vraiment très facile :

%% attention tout de même, non testé, voir la doc qui va bien
dynamicTextAlignment =
#(define-music-function (parser location align) (number?)
  #{ \override DynamicText #'self-alignment-X = #$align #})

---

From: "j-f.lucarelli" <[email-masked]>
Date: Sun, 10 Jan 2010 23:08:00 +0100

>  #{ \override DynamicText #'self-alignment-X = #$align #})

Ok, merci, mais je n'ai pas encore utilisé les fonctions dans Lilypond.
J'ai bien vu quelques exemples, on va donc faire fonctionner les méninges pour comprendre, je crois que ça vaut la peine.

Et quelle serait alors la 'syntaxe' d'appel ? Simplement  \dynamicTextAlignment #LEFT   ?
Et ça fonctionnerait également avec des nombres ?

Amicalement,

Jean-François

---

From: John Mandereau <[email-masked]>
Date: Wed, 13 Jan 2010 10:56:41 +0100

Le dimanche 10 janvier 2010 à 08:13 -0800, Seventies a écrit : 
> sur de telles instructions,

Ce n'est pas vrai, on en trouve même des exemples dans la documentation,
en particulier
http://lilypond.org/doc/v2.13/Documentation/learning/saving-typing-with-variables-and-functions

(oups, je viens de voir que padText n'est pas tout le temps traduit)

> DynamicTextAlignement = -1

En ajoutant un '#' devant '-1', je suis sûr que c'est une définition de
variable valide.

Salutations lilyesques,
John

---

From: "j-f.lucarelli" <[email-masked]>
Date: Wed, 13 Jan 2010 18:03:35 +0100

== En réponse au message du 2010-01-13, 10:56:11 ==

>En ajoutant un '#' devant '-1', je suis sûr que c'est une définition de
Merci pour ce lien. Effectivement, j'utilise les variables pour toutes les indications  de nuance (du genre "cresc. poco a poco") ainsi que pour tous les tempi. Ceci assure que les tempi et changements de tempo seront correctement orthographiés sur chaque partie.

En ce qui concerne les fonctions (define-music-function), là je n'ai pas encore compris la syntaxe. Mais j'utilise sans toujours comprendre les exemples de la documentation.

Une difficulté suffit pour chaque jour ;-)

Amicalement,

Jean-François

---

From: Nicolas Sceaux <[email-masked]>
Date: Wed, 13 Jan 2010 20:57:08 +0100

> Et quelle serait alors la 'syntaxe' d'appel ? Simplement  \dynamicTextAlignment #LEFT   ?

oui

> Et ça fonctionnerait également avec des nombres ?

LEFT est une variable qui a la valeur -1, et RIGHT a la valeur 1.
C'est plus parlant que d'utiliser directement les nombres, mais bien sûr
on peut mettre des nombres à la place.

Nicolas

---

From: "j-f.lucarelli" <[email-masked]>
Date: Wed, 13 Jan 2010 22:36:22 +0100

>on peut mettre des nombres à la place.

À ce sujet, je viens de remarquer que le \once \override DynamicText #'self-alignment-X = #1 doit se situer IMMEDIATEMENT avant la note portant la nuance.

Ce code ne fonctionne pas :

	\once \override DynamicText #'self-alignment-X = #1
	r4 r  f \PocoF

Tandis que celui-ci fonctionne :
	r4 r  
	\once \override DynamicText #'self-alignment-X = #1
	f \PocoF

avec les définitions suivantes :

PocoF = #(make-dynamic-script DMPocoF)
et
DMPocoF = \markup {\normal-text \italic "poco " \dynamic f}

C'est un peu dommage et ça mériterait peut-être une révision du code.

En attendant, je me retrouve avec ±100 fichiers à revoir :-/