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

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

Re: Affichage conditionnel (if / else)


From: Phil
Subject: Re: Affichage conditionnel (if / else)
Date: Thu, 24 Sep 2009 10:38:16 +0200
User-agent: Thunderbird 2.0.0.23 (Macintosh/20090812)

Hello Nicolas,

Merci pour ta réponse et l'élégance de ta solution.

Cela étant j'en reviens à ma question de départ, car ta solution (pour laquelle je te remercie encore) ne répond qu'à ces questions :
- 'eqv' est l'opération à utiliser pour comparer deux expressions
- on peut utiliser du code Scheme (?) à l'intérieur d'un contexte de lilypond (layout, score, TabStaff, etc.)
- true s'écrit #t et non pas ##t dans ce contexte-là
- et en bonus (ça c'est du grand art pédagogique de ta part ;-) ) : on peut utiliser une option de compilation dans le code lilypond pour faciliter les choses.

C'est déjà énorme, mais pour être tout à fait comblé, voilà ce que j'aimerais savoir (désolé pour la sémantique, je ne suis pas un "pur" informaticien) :

1/ Est-ce du "pur" Scheme qui est utilisé dans Lilypond ? ou est-ce un langage dérivé (de la même manière que Scheme est un langage dérivé de Lisp — du peu que j'en sache)

2/ Peut-on utiliser toutes les ressources (I mean : boucles, opérateurs, fonctions, etc. etc.) de Scheme dans le code Lilypond ? Ou y a-t-il d'importantes restrictions.

3/ Quelles sont les meilleures adresses pour apprendre les bases de ce langage ? (seulement si vous avez ces adresses sous la main bien entendu, sinon je demanderai à google)

Merci pour toute aide que vous pourriez m'apporter.

Bien à vous tous,

Phil


Nicolas Sceaux a écrit :
>
> Le 23 sept. 09 à 02:27, Phil a écrit :
>
>> Bonjour Nicolas,
>>
>> Merci pour ta réponse.
>>
>> Désolé de ne pas avoir été très précis, mais ce que je cherche n'est pas précis, je veux dire : ne se limite pas à un cas unique. C'est une information générale sur les ressources et la syntaxe de Scheme adaptée à Lilypond.
>
>>
>> Je vais prendre un exemple extrêmement précis (donc limitatif par rapport à l'aide que je cherche) :
>>
>> Je crée des tablatures pour la guitare pour des chansons de Ane Brun.
>> Dans son interprétation de plusieurs chansons, elle utilise un open-tuning (accord ouvert) de ré (c'est-à-dire un accordage non conventionnel de la guitare).
>>
>> Or, il se trouve que certains de ses morceaux ne nécessitent pas vraiment cet accordage, peuvent être joués avec un accordage traditionnel (e b g d a e).
>>
>> Donc, je voudrais à partir d'un seul fichier lilypond pouvoir sortir les deux versions de la tablature des-dits morceaux.
>> Version 1 : la tablature du morceau en accordage normal
>> Version 2 : la tablature du morceau en open-tuning
>>
>
> Selon les cas, la technique pourra être assez différente, et c'est
> toujours plus facile de partir d'un exemple concret.
>
> Dans le cas que tu décris, voici comment on peut faire les choses.
>
> %%%%%%%%%%%%%% open-tuning-test.ly %%%%%%%%%%%%%%
> \version "2.13.4"
>
> %% To switch to open tuning, either compile the file with
> %% -dopen-tuning option, or uncomment the following line:
> %%#(ly:set-option 'open-tuning #t)
>
> \layout {
> \context {
> \TabStaff
> stringTunings = #(if (eqv? (ly:get-option 'open-tuning) #t)
> '(+2 -3 -6 -10 -15 -22)
> '(+4 -1 -5 -10 -15 -20))
> }
> }
>
> \new TabStaff { c' d' e' f' }
> %%%%%%%%%%%%%% open-tuning-test.ly %%%%%%%%%%%%%%
>
> Les deux cas sont atteints de la manière suivante :
>
> lilypond open-tuning-test.ly
> ==> tablatures avec accordage normal
>
> lilypond -dopen-tuning open-tuning-test.ly
> ==> tablatures avec accordage open tuning
>
> Nicolas






reply via email to

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