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

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

Re: \include in scheme fiunctions


From: Pierre-Yves Saumont
Subject: Re: \include in scheme fiunctions
Date: Sun, 27 Feb 2022 18:30:57 +0100

Je connaissais l'usage de \book et  \bookOutputSuffix (grâce à votre réponse dans la liste Frescobaldi !), mais mon problème est que je n'arrive pas à les utiliser dans ce cas précis.

J'ai essayé avec la fonction (avec un exemple minimal simplifié) :

#(let ((instruments '("AltoI"
                      "TenorI"
                       ))
       (titres '("AuClairDeLaLune"
                 "JAiDuBonTabac"
                 
                  )))
    (for-each
     (lambda (i)
          (ly:parser-include-string (format #f "\\book{\\bookOutputSuffix ~a" i))
       (for-each
        (lambda (t)
          (ly:parser-include-string
           (format #f
                   "\\include \"./~a/~a_music.ly\" \\include \"./_part~a.ly\""
                   t t i)))
        titres) (ly:parser-include-string(format #f "}")))
     instruments))

C'était un peu téméraire ! Et bien sûr, ça ne fonctionne pas!

J'ai également essayé sans la fonction:

book{
  \bookOutputSuffix AltoI
     
  \include "./AuClairDeLaLune/AuClairDeLaLune_music.ly"
  \include "./_partAltoI.ly"
 
  \include "./JAiDuBonTabac/JAiDuBonTabac_music.ly"
  \include "./_partAltoI.ly"
}

\book{
  \bookOutputSuffix TenorI
     
  \include "./AuClairDeLaLune/AuClairDeLaLune_music.ly"
  \include "./_partTenorI.ly"
 
  \include "./JAiDuBonTabac/JAiDuBonTabac_music.ly"
  \include "./_partTenorI.ly"
}

Cela ne fonctionne pas non plus, mais la raison semble différente. J'obtiens des message d'erreur du type :

./AuClairDeLaLune/AuClairDeLaLune_music.ly:3:1: error: syntax error, unexpected SYMBOL


title = "Au clair de la lune"


ou :


./_parts.ly:4:23: error: unknown escaped string: `\title'

title = \markup {

\title }


Il semble donc qu'en ajoutant \book { ... } la déclaration title = "Au clair de la lune" dans le fichier AuClairDeLaLune_music.ly n'est plus syntactiquement correcte. Je suppose qu'on ne peux pas déclarer des variables à l'intérieur de \book? Mais alors comment faire?


Cordialement,


Pïerre-Yves


On Sun, Feb 27, 2022 at 3:27 PM Jean Abou Samra <jean@abou-samra.fr> wrote:
Le 27/02/2022 à 14:53, Pierre-Yves Saumont a écrit :
> Merci ! Ca commence à fonctionner un peu mieux. J'ai toutefois encore
> plusieurs problèmes.
>
> 1) Les fichiers ne sont pas trouvés même s'il sont dans le même
> répertoire. La seule façon pour que ça fonctionne est d'indiquer le
> chemin d'accès complet depuis la racine. J'ai essayé avec ../ pour
> remonter d'un niveau, avec rien ou avec ./ en mettant les fichiers au
> même niveau que le programme exécuté, les fichiers ne sont pas
> trouvés. Seul le chemin complet fonctionne.


Je parie que vous avez édité votre fichier et ne l'avez pas sauvegardé
dans Frescobaldi, qui compile alors un fichier temporaire dans un autre
dossier. Essayez en sauvegardant d'abord.


> 2) Existe-t-il un moyen de placer les parties de chaque instrument
> (avec tous les titres) dans un fichier PDF séparé?


Oui, \book. Par exemple :

\version "2.22.1"

clarinette = { a'1 }
saxophone = { c'1 }

\book {
   \bookOutputSuffix clarinette
   { \clarinette }
}

\book {
   \bookOutputSuffix saxophone
   { \saxophone }
}

\book {
   <<
     \new Staff \clarinette
     \new Staff \saxophone
   >>
}


La documentation est ici :

http://lilypond.org/doc/v2.23/Documentation/notation/multiple-output-files-from-one-input-file.html


> 3) Que signifie rendre "les fichiers Truc_music.ly compilables,"? Lors
> de la saisie, j'ajoute à chaque fichier _music le code suivant:
>
> \score {
>   <<
>   \new Staff <<\altoIMusic>>
>   \new Staff <<\tenorIMusic>>
> . . .
>   >>
> }
>
> Ce qui me permet de voir ce que je saisi dans Frescobaldi. J'enlève
> ces lignes quand la saisie est terminée. Est-ce cela un fichier
> "compilable" ?


Non, oubliez, je me suis emmêlé les pinceaux avec
votre structure de fichiers.


> Merci pour votre aide.
>
> N.B. J'envoie ce message en faisant "Répondre à tous", est-ce la façon
> correcte de procéder? En faisant "Répondre", ça n'envoie pas à la liste.


Oui, c'est cela. Dans les destinataires (Pour ou CC), vous devez avoir au
minimum l'adresse de la liste, pour que tout le monde reçoive le message.
C'est une bonne pratique de garder aussi l'adresse des personnes à qui
vous répondez, car cela leur fera recevoir votre message plus vite (la
distribution à tous les membres peut prendre un peu de temps), et pour
certains cela fait atterrir le message dans un dossier prioritaire
ou leur accorde plus d'importance d'une manière ou d'une autre. Par exemple,
je suis abonné à la liste python-dev (sans aucun rapport avec LilyPond),
mais comme elle est à haut trafic, j'ai un filtre qui marque automatiquement
les messages de cette liste comme lus, et je la regarde seulement
une fois de temps en temps, donc si vous répondez à un message que
j'ai posté sur python-dev, je risque de ne pas le voir s'il ne m'est
pas aussi adressé directement. Pour les personnes qui sont actives
sur cette liste de la même manière que moi sur python-dev, c'est utile.

Cordialement,
Jean


reply via email to

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