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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: override line-width dans une fonction


From: Loïc Chahine
Subject: Re: override line-width dans une fonction
Date: Sat, 22 Sep 2012 17:54:40 +0200
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:15.0) Gecko/20120824 Thunderbird/15.0

Merci encore, Mike, c’est vraiment bien comme ça !
Et je vais lire le passage de la doc que tu m’indiques !

Dernier petits problèmes, je pense bien illustrés par l’illustration ci-jointe.
Alors j’imagine qu’il y a un moyen d’override quelque chose pour avoir la portée sur la clef et l’armature au début même si elle s’en va ensuite, et pour ne pas avoir les barres de mesures toutes seules à la fin ?
Pour la partie de basse, je fais juste \stopStaff s1 \startStaff, comme dans le modèle qui m’a été donné.

Et question subsidiaire : est-ce que je pourrai pas mettre un tout petit peu d’espace entre le texte et la barre de mesure qui est à sa droite ?

Cordialement,
L.C.

Le 22/09/12 17:42, address@hidden a écrit :

On 22 sept. 2012, at 17:06, Loïc Chahine <address@hidden> wrote:

Le 22/09/12 16:52, address@hidden a écrit :
%{
C'est un problème d'espace de noms (namespace en anglais). Il faut que tu mettes une commande de markup dans la fonction de musique:
%}

Merci, Mike !
Mais j’ai pas tellement compris en fait… surtout ça :

#(define-markup-command (melo-text layout props linewidth text)
 (number? string?)
 (interpret-markup layout props
   (markup #:override '(font-name . "Didot")
           #:override `(line-width . ,linewidth)
           (make-column-markup (list (make-justify-markup (string-split text #\space)))))))

Pourquoi est-ce qu’à l’avant-dernière ligne on met un accent grave au lieu de l’apostrophe et une virgule ?

C'est une convention de Scheme qui s'appelle quasiquote. Tu peux également faire (cons 'line-width linewidth) sans accent et sans virgule - ça revient au même.

Bon la dernière ligne j’imagine que c’est des propriétés spéciales pour que ça aille à la ligne etc.

C'est une copie du markup tel que tu l'avais écrit mais en Scheme. Les commandes make-X-markup n'acceptent que des listes. Le column est facultatif dans les exemples que tu as fournis - tu peux le supprimer et le résultat visuel ne changerait pas. J'évoque string-split pour éclater le string en une liste de plusieurs strings (et donc plusieurs markups) en utilisant l'espace comme séparateur.



Pour ton autre mail :

Petit commentaire supplémentaire - au lieu d'utiliser extra-offset, tu peux changer la valeur de Y-offset en fonction de la hauteur du stencil pour que le texte soit centré dans la portée.

J’ai pas trop compris non plus.


Je ne me suis pas bien exprimé. En gros tu voudras chopper la valeur de la hauteur du stencil et la manipuler. Je ne l'ai pas bien utilisé ci-dessous mais tu pourras l'adapter. Essaie :

\version "2.17.0"

#(define-markup-command (melo-text layout props linewidth text)
  (number? string?)
  (interpret-markup layout props
    (markup #:override '(font-name . "Didot")
            #:override `(line-width . ,linewidth)
            (make-column-markup (list (make-justify-markup (string-split text #\space)))))))

meloText =
#(define-music-function
(parser location Largeur Texte)
(number? string?)
#{\stopStaff
\once \override TextScript #'Y-offset =
#(lambda (grob)
  (cdr (ly:stencil-extent (ly:grob-property grob 'stencil) Y)))
s1-\markup \melo-text #Largeur #Texte
\startStaff
#}
)

textA = \meloText #30 #"Il n'y a point là d'âme ni de vie… Ce n'est que de la pierre"
textB = \meloText #18 #"Tout mon feu s’est éteint… mon imagination s’est glacée, le marbre sort froid de mes mains…"

\score {
\new Staff {
\relative d' {
\textLengthOn

\tempo "Largo"
\key es \major
<bes es g>4 <bes es g>8. <bes es g>16 <bes es g>2-\fermata \bar "||"

\textA

\tempo "Adagio"
r8 bes( ces a) << { bes f'~ f16 d es ges, ges8 f16. ges32 d8 } \\
{ s8 as'~ as16 f ges es es8 d16. es32 bes8 } >> r8 r2 |

\textB

s8 f''(-\p ges e) << { f es~ es16 c des bes' | bes8 a16. bes32 a8 } \\
{ s8 c,~ c16 a bes des | des8 c16. des32 c8 } >> r8 r2 |

}}}

%Cordialement,
%~Mike

Attachment: Capture d’écran 2012-09-22 à 17.50.22.png
Description: PNG image


reply via email to

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