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

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

[RÉSOLU] Re: Sauts de pages et compilation conditionnelle - SOS !!!!


From: Bernard Barbier
Subject: [RÉSOLU] Re: Sauts de pages et compilation conditionnelle - SOS !!!!
Date: Tue, 31 Jan 2023 10:20:37 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2

Bonjour, et merci à tous.

Les solutions que vous m'avez proposées sont différentes et toutes deux dignes d’intérêt.

Je remercie la communauté qui a eu la gentillesse de ne pas me renvoyer dans les cordes avec un RTFM, alors que la solution était bien documentée mais que je n'ai pas su chercher.

J'ai toute fois très très apprécié les exemples idéalement adaptés à mon, problème, donc, merci, encore une fois.

Alors petit cadeau de la nuit, le résultat de la compilation, version chef !

C'est ce que le chœur, au service duquel je suis, chantera pour la liturgie de ce Vendredi Saint.

Ref. IMSLP  : https://imslp.org/wiki/Popule_meus_(Vallotti%2C_Francesco_Antonio)

Belle journée à tous.

Bernard.

http://choeur.liturgique;free.fr


Le 30/01/2023 à 22:18, Jean Abou Samra a écrit :
On 30/01/2023 20:06, Ben wrote:
Bonjour Bernard, 

Pour ma part, je ferais un break conditionnel de cette manière:

je définis une variable modepartition qui contient le mode actuel, puis j'ai une fonction scheme qui interroge la variable et imprime l'instruction \break:

\version "2.25.0"

modepartition = "ac"  % ac pour accompagnateur

fonctionbreak = 
#(define-void-function ()()
   ( if ( string=? modepartition "ac" ) ( ly:parser-include-string (format #f "\\break"))) 
   )

\relative c' { c4 d \fonctionbreak e f }


Ensuite, il suffit de changer la variable avant de compiler et le tour est joué…

Pour le faire depuis la ligne de commande, je sais qu'il existe une possibilité, mais je n'ai pas réussi à la mettre en œuvre, j'ai alors fait un bête script qui modifie la variable dans le fichier .ly puis qui lance la compilation…



Bonjour,

Si je puis me permettre, pour le coup, je ne recommanderais vraiment pas le
ly:parser-include-string. C'est une fonction avancée qui peut être utile
dans de rares cas, mais qui peut vous jouer de vilains tours si vous ne
comprenez pas la manière exacte dont LilyPond analyse le fichier d'entrée
(les différences entre \, # et $, et ce genre de subtilités). Surtout qu'il
y a beaucoup plus simple et commun ici :

fonctionbreak = #(if (string=? modepartition "ac") #{ \break #} #{ #})

Au passage, commentaire pédant mais peut-être instructif : pour une valeur
de "mode de partition", comme il n'y a que quelques valeurs possibles,
un symbole est plus approprié qu'une chaîne de caractères. Ce qui donne :

fonctionbreak = #(if (eq? modepartition 'ac) #{ \break #} #{ #})

Et en poussant encore un peu, LilyPond dispose d'une fonctionnalité prévue
précisément pour ce genre de cas, les tags :

https://lilypond.org/doc/v2.24/Documentation/notation/different-editions-from-one-source#using-tags

Bernard : vous pouvez vous en sortir avec la syntaxe ci-dessus. Cela
étant dit, est-ce qu'il ne serait pas encore mieux d'avoir, en compilant
le fichier une seule fois, les trois versions du PDF directement ? Pour
cela, les tags sont un moyen très pratique. Exemple simple :

\version "2.24.0"

\tagGroup choeur,chef,accompagnateur

choeurBreak = \tag choeur \break
chefBreak = \tag chef \break
accompagnateurBreak = \tag accompagnateur \break

musique = {
  c'1
  \choeurBreak
  c'1
  \chefBreak
  c'1
  \accompagnateurBreak
  c'1
}

\book {
  \bookOutputSuffix "choeur"
  \keepWithTag choeur \musique
}
\book {
  \bookOutputSuffix "chef"
  \keepWithTag chef \musique
}
\book {
  \bookOutputSuffix "accompagnateur"
  \keepWithTag accompagnateur \musique
}



En mettant cela dans partition.ly, vous vous retrouvez avec trois fichier
PDF, partition-choeur.pdf, partition-chef.pdf et partition-accompagnateur.pdf,
chacun avec les \break qui vont bien.

Cordialement,
Jean

Attachment: Francesco-Antonio-Vallotti-1697-1780-Improperi-per-l-Adorazione-della-S-Croce - V4.1-Coro_e_continuo.pdf
Description: Adobe PDF document


reply via email to

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