Je souhaite me lancer dans la transcription d'une pièce pour viole de gambe. L'objectif n'est pas que musical (car je ne suis pas violiste) mais aussi technique lilypondienne. Je voudrais m'améliorer en programmation de fonctions.
En effet, cette pièce contient de nombreux signes d'articulation/interprétation qui ne sont pas connus de lilypond.
J'ai essayé de trouver dans l'arborescence de LP un fichier où était codé un signe d'articulation (comme 'upprall') pour comprendre, mais je n'ai pas trouvé...
Aussi, l'un de vous aurait-il écrit une fonction (avec define-music-function, peut-être) avec comme propriété/variable, la possibilité de positionner un glyphe à l'endroit voulu et que ce glyphe soit codé dans cette fonction à priori.
J'imagine qq chose du genre : \tremblement( #'( 0 . 2) ). Le tremblement possède la forme d'une virgule.
L'un de vous pourrait-il éclairer ma lanterne ?
Merci énormément de votre aide et bon WE !
Rémy
PS : On pourrait peut-être organiser un café Lily sur la programmation Scheme/LP en visio ?? Cela pourrait intéresser d'autres utilisateurs.
Ce sont des glyphes qui font partie de la police Emmentaler (les fichiers emmentaler-<taille>.otf qui se trouvent quelque part dans l'arborescence). Ils sont codés en METAFONT, un langage créé par Donald Knuth en même temps que TeX, qui lui a servi à créer sa police Computer Modern. Tout ça est dans le dossier mf/ du code source de LilyPond. Honnêtement, ce n'est pas spécialement lisible, et de tout façon, c'est compilé en amont pour créer ces fichiers de police OpenType (OTF), on ne peut pas s'en servir à l'intérieur de LilyPond.
Je pense que le plus simple est de le faire avec \markup \path, en définissant tremblement = \markup \path ... et en utilisant ensuite \tremblement comme un markup normal (par exemple { c'^\tremblement }).
Une autre option, c'est d'éditer le glyphe dans un logiciel comme Inkscape, puis de l'exporter en EPS et de l'inclure avec \epsfile (mais tu ne pourras plus compiler le fichier LilyPond en SVG).
Encore merci pour vos réponses. J'avance. Tout doucement, mais j'avance.
J'avais une question avant de continuer : si je veux positionner une des marques (comme le tremblement) à gauche de la tête de note, est-ce que 'define-markup-command' est bien adapté ?
Merci !!
Rémy
Il suffit de positionner où bon vous sembleavec \tweak extra-offset
dans l'exemple ci-dessous "pos" est juste une astuce pour éviter d'écrire \tweak extra-offset
\version "2.24.3"
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% on crée un markup pour n'importe quel glyph
#(define-markup-command (glph layout props glyph) (markup?)
"Entrée de glyph"
(interpret-markup layout props
(markup
#:musicglyph glyph )
))
%on crée n glyph tramblement
gTremble= \tweak layer -1 -\markup\glph "flags.mensuralu25"
% on fait un raccourci de position
pos= \tweak extra-offset \etc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\fixed c' {
\time 4/4
g c g \tweak extra-offset #'(-1 . 5)\gTremble^"gauche" c
e c \pos #'(-1 . 5) \gTremble^"gauche"
e c\pos #'(2 . 5) \gTremble ^"droite"
e c\pos #'(1 . 10) \gTremble \pos #'(0 . 16)_"dessus"
}
Bah non, ca marche pas : "gauche", "droite" et "dessus" ne sont pas à coté des têtes de notes.
Si je défini un nouveau markup avec "define-markup-command", comment puis-je faire dans la fonction suivante pour le posittioner où je veux ?
Merci Martial,
En fait, le but est d'appendre et de comprendre la programmation Scheme pour Lilypond, je ne cherche pas à trouver une solution à un pb technique. En l’occurrence, je ne trouve pas comment déplacer le markup en Scheme dans la commande que j'ai donné plus haut.
En tous cas, merci de te pencher sur cette question !
Merci Pierre !
Il faut que je m'habitue aux () en Scheme !
Pourrais-je abuser et demander de m'aiguiller sur la dimension nulle pour le glyph : à quoi ça sert et comment on la positionne ?
Merci de ton aide !
Amitiés,
Rémy
La dimension nulle permet au glyphe de lui éviter de buter sur les figures environnantes.
Son implémentation est limpide dans ton code (à toi de tester, c'est plus parlant) :