Subject: Re: P'tit nouveau pour grande structure

From: "j-f.lucarelli" <[email-masked]>
Date: Thu, 18 Nov 2010 02:21:55 +0100

== En réponse au message du 17-11-2010, 23:53:50 ==

>Bonjour à toutes les grenouilles (si je puis me permettre) !
>
>Alors, euh... Ah oui, se présenter (version courte) :
>Bertrand, 21 ans, chanteur, organiste, claveciniste, continuiste et
>utilisateur intense de Lilypond depuis 4 ans.
>Également un petit passé d'ASM, C++, LaTeX, python etc. Utile pour rajouter
>à Lilypond des petites fonctions dès que j'en ai besoin :)
>
>
>J'aurais une question pour un "problème" récurent :
>Comment faites-vous pour créer l'arborescence de fichiers d'un long ensemble
>de partitions?
>Existe-t-il un script pour automatiser la création de fichiers suivant des
>modèles?
>
>Je m'explique :
>Par exemple, voilà comment je procède pour un livre de cantates :
>Le fichier principal contient certains paramètres globaux comme les
>définitions du \paper suivi d'un \book contenant des \include
>"bookpart_[nom_d'une_cantate].ly".
>Chaque bookpart contient donc la succession de scores qui constitue une
>seule cantate.
>Chaque score fait appel aux parties séparées par des \include.
>Et j'ai toujours plus ou moins cette structure pour mes recueils.
>
>Cependant il est très lourd, pour chaque nouveau livre, de recréer tout ce
>pseudo-bazar !
>Surtout quand on ne sait pas trop quelle taille il va faire et qu'on ajoute
>au fur et à mesure des copies de la structure préexistante.
>J'utilise Frescobaldi et LilypondTool. Sans m'être lancé dans leurs sources,
>j'imagine que ça doit être très faisable. D'autant que jEdit semble gérer
>les projets, avec les plugins adéquats.
>Ou alors pire, en bash ! ...Bon, je m'égare un peu...
>
>En espérant avoir été clair,
>Merci,
>Bertrand.

Comme disait Valentin, chacun sa sauce.

Personnellement, pour chaque oeuvre, un répertoire principal qui contient les seuls fichiers "compilables" : partition d'orchestre, parties séparées, et éventuellement, partition d'étude ou encore mouvements séparés.

Puis un répertoire "common" qui contient les fichiers de définitions générales :
- variables globales : compositeur, titres, références, opus, année, ...
- N° de version (à inclure uniquement dans les fichiers compilables, ainsi la 'compilation' d'un fichier impropre génère un avertissement de n° de version absente) 
- set-global-staff-size, différent selon le type de partition
- variables papier, différentes également selon le type de partition

Puis, pour chaque mouvement (s'il y en a), un répertoire différent avec
- les fichiers de notes pour chaque partie, commençant par une instruction de type
	voiceM1Flote = \new Voice { ...
- un fichier de variables reprenant les tempi, marques de reprises, et tout ce qui est commun à toutes les parties
- un fichier d'agencement des parties pour réaliser la 'directrice', du genre :
	staffM1Flote = \new Staff \with {
		\override VerticalAxisGroup #'next-staff-spacing =
		#'((space . 0.0) (padding . 0.0) (minimum-distance . 2.8) ( stretchability . 5.0))}
		{\voiceM1Flote}
	staffM1Oboe = \new Staff \with {
		...
                                     
Et accessoirement (personnellement je trouve ce point très important), chaque mouvement contient un sous-répertoire "quotation" qui reprend une copie des parties séparées. Ces fichiers sont ensuite modifiés pour servir aux citations (suppression des << \\ >>, utilisation de nombreux \tag, occasionnellement correction des enharmonies pour les instruments transpositeurs ...)

Lors de la conception d'une nouvelle pièce, on réalise un copy *.*, puis grâce aux puissantes fonctions de remplacement de jEdit, on crée en moins d'une heure le squelette de la nouvelle pièce.

Et ... à chaque fois, on améliore cette structure pour éviter les doublons, de sorte qu'une modification importante se traduise par un changement mineur dans un seul fichier.

Voilà, ce sont des pistes, un gros travail à réaliser une fois pour toutes, mais que de temps gagné pour la suite.

>_______________________________________________
>liste de diffusion lilypond-user-fr
>[email-masked]
>http://lists.gnu.org/mailman/listinfo/lilypond-user-fr
>

========================================

---

From: [email-masked]
Date: Thu, 18 Nov 2010 23:00:20 +0000

> Personnellement, pour chaque oeuvre, un répertoire principal qui contient  
> les seuls fichiers "compilables" : partition d'orchestre, parties  
> séparées, et éventuellement, partition d'étude ou encore mouvements  
> séparés.

> Lors de la conception d'une nouvelle pièce, on réalise un copy *.*, puis  
> grâce aux puissantes fonctions de remplacement de jEdit, on crée en moins  
> d'une heure le squelette de la nouvelle pièce.

Oui, je fais à peu près tout de la même façon, à quelques détails  
négligeables près.
Mais je trouve tout de même cela trop fastidieux et long pour une  
utilisation quotidienne de Lilypond sur des projets professionnels.

Et si on souhaite se servir d'OrchestralLily ou des travaux de Nicolas  
Sceaux (si c'est autorisé), on est nécessairement contraint à au moins deux  
choses :
*Apprendre toutes les nouvelles commandes à disposition (plutôt facile)
et soit :
*Être contraint dans une structure qui ne convient pas forcément à ce qu'on  
souhaite réaliser (surtout quand on a la fâcheuse manie d'utiliser toutes  
les bidouilles possibles de Lilypond)
ou
*Devenir un maître en Scheme (pour faire des fonctions ou des tweaks  
simples, ok, mais de là à comprendre et personnaliser les travaux cités  
plus haut...)

C'est pourquoi il me paraît plus accessible et plus maléable pour "le  
commun des grenouilles" de faire un script ne générant que du Lilypond dans  
une hiérarchie de fichiers s'accroissant automatiquement au fur et à mesure  
que progresse un projet.

Et oui, je sais, c'est facile de balancer une idée comme ça :D
Plus qu'à se mettre au boulot... C'est parti...