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

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

Re: Re:_Introduction_à_la_personnal isation_de_LilyPond


From: j-f.lucarelli
Subject: Re: Re:_Introduction_à_la_personnal isation_de_LilyPond
Date: Thu, 1 Apr 2010 04:25:50 +0200

>> J'ai récupéré dans un fichier la commande "tempoMark" définie comme suit :
>> tempoMark = #(define-music-function (parser location markp) (string?)
>> #{
>>   \once \override Score.RehearsalMark #'self-alignment-X = #left
>>   \once \override Score.RehearsalMark #'extra-spacing-width = #'(+inf.0 . 
>> -inf.0)
>>   \mark \markup { \italic $markp }
>> #})
>
>Avec `define-music-function', on définit une fonction qui construit de la 
>musique,
>ce qu'on appelle plus précisément : une expression musicale.
>`define-music-function' est une construction en langage Scheme, en effet on 
>voit
>qu'elle est introduite par # : le dièse indique qu'on passe du langage LilyPond
>au langage Scheme.  Alors, à l'intérieur de la construction 
>`define-music-function',
>il faut construire une expression musicale en Scheme.  Sans entrer dans les 
>détails,
>il y a quelques années c'était très compliqué.  On était obligé de passer par 
>les
>primitives de fabrication des expression musicales, telles que `make-music', et
>c'était très verbeux.  À présent, c'est beaucoup plus simple : on peut utiliser
>la syntaxe LilyPond à l'intérieur de la syntaxe Scheme, en utilisant  #{ ... 
>#}.
>Tout ce qui se trouve entre #{ et #} sera traité comme une expression en 
>langage
>LilyPond habituel.  Mieux : on peut faire référence à des variables scheme, 
>tels
>que les paramètres de `define-music-function' par exemple, dans l'expression
>LilyPond à l'intérieur des #{ #}, en les précédant du caractère `$'.
>
>Donc, l'expression suivante :
>
>   #{ \mark \markup { \italic $markp } #}
>
>où `markp' est l'argument de la commande, est interprétée comme si on écrivait 
>en
>langage LilyPond :
>
>  \mark \markup { \italic \markp }
>
>et c'est cette expression musicale qui est placée là où la function musicale
>est appelée.
>
>Voir <http://lilypond.org/doc/v2.13/Documentation/extending/music-functions>
>
>Une note au passage : cette commande \tempoMark est obsolète, depuis que la
>commande \tempo accepte un markup en argument.
>
>Nicolas

Merci pour ces éclaircissements, car le passage du Lilypond "classique" au 
Lilypond "intelligent" se faisait jusqu'à présent par essais aléatoires, et 
souvent échecs et abandon.

Mais à la réflexion, c'est vrai, il y a là un fossé difficile à franchir. 
Comment aborder Scheme ? Où trouver un tutoriel basique, puis le minimum pour 
l'utiliser avec Lilypond.

Pour celui qui a abandonné la programmation depuis plusieurs années, et resté 
au stade des langages rigoureux tels le C, la difficulté est grande.

En tout cas, il y a des promesses de belles réalisations après le B-A-BA du 
tutoriel de base Lilypond.

Bonne fin de nuit à tous,

Jean-François

reply via email to

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