lilypond-book ou comment automatiser la création d'un répertoire ?

9 messages Options
Embed this post
Permalink
Remy Palezis

lilypond-book ou comment automatiser la création d'un répertoire ?

Reply Threaded More More options
Print post
Permalink
Bonsoir à tous,

   Je me présente rapidement : je suis à la fois chanteur (occasionnel et amateur) très porté sur la musique de la renaissance française, et aussi musicien traditionnel (northumbrian smallpipes par exemple).

   Concernant la musique renaissance, Lilypond m'a apporté toute satisfaction, en farfouillant dans la doc (très sympathique depuis les dernières versions, en plus). Je me demande d'ailleurs si les utilisateurs francophones de Lilypond n'auraient pas créé un espace où s'échanger de telles partitions,... mais c'est une autre histoire.

   Mon souci est de créer un pdf de répertoire de musique traditionnelle anglaise (northumberland), dont les morceaux sont écrits au format lilypond bien sûr.
   Lilypond-book marche bien chez moi (passons sur les problèmes d'espacement, vive la doc), mais j'aimerais savoir s'il est possible de faire chercher à lilypond-book tous les fichiers .ly dans une arborescence donnée, histoire d'éviter d'éditer longuement le fichier .lytex...
   Est-ce possible, ou faut-il passer par un script ? Dans ce cas-là, un petit coup de main (au moins un lien vers une page expliquant tous ces !/bin/bash etc serait bienvenu...

   Merci d'avance !
Rémy Palézis.
Gilles THIBAULT

Re: lilypond-book ou comment automatiser la création d'un répertoire ?

Reply Threaded More More options
Print post
Permalink


>   Je me présente rapidement : je suis à la fois chanteur (occasionnel et
>amateur) très porté sur la musique de la renaissance française, et aussi
>musicien traditionnel (northumbrian smallpipes par exemple).

Bienvenue sur la liste francophone !

>   Lilypond-book  [..] éviter
>d'éditer longuement le fichier .lytex...
J'aurai bien voulu t'aider mais je ne connais rien à Lilypond-book.
Mais je pense qu'il y a effectivement quelques spécialistes ici.

Peut-être une prochaine fois te serai-je plus util.

Gilles





_______________________________________________
liste de diffusion lilypond-user-fr
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-user-fr
Frédéric Bron

Re: lilypond-book ou comment automatiser la création d'un répertoire ?

Reply Threaded More More options
Print post
Permalink
In reply to this post by Remy Palezis
>   Lilypond-book marche bien chez moi (passons sur les problèmes
> d'espacement, vive la doc), mais j'aimerais savoir s'il est possible de
> faire chercher à lilypond-book tous les fichiers .ly dans une arborescence
> donnée, histoire d'éviter d'éditer longuement le fichier .lytex...
>   Est-ce possible, ou faut-il passer par un script ? Dans ce cas-là, un
> petit coup de main (au moins un lien vers une page expliquant tous ces
> !/bin/bash etc serait bienvenu...


lilypond-book ça m'étonnerait. Par contre c'est assez simple :

find -type f -name "*.ly" > liste.txt

Si tu veux formater les noms de fichiers il faut combiner avec sed
mais là il faut que tu dises ce que tu veux en sortie.

Frédéric



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

Re: lilypond-book ou comment automatiser la création d'un répertoire ?

Reply Threaded More More options
Print post
Permalink
Frédéric Bron wrote:
find -type f -name "*.ly" > liste.txt

Si tu veux formater les noms de fichiers il faut combiner avec sed
mais là il faut que tu dises ce que tu veux en sortie.

Frédéric
Voilà, c'est ce genre de petits renseignements qu'il me fallait ! Merci.

Pour préciser (même si je n'ai pas d'idée définitive), j'aimerais que mon script remplisse le fichier .lytex avec les emplacements des fichiers .ly par ordre alphabétique (par exemple).

Je vais chercher de mon côté, car il me paraît maintenant nécessaire de fouiller dans sed, find et autres grep !

À plus et merci, j'essaierai de poster le résultat de mes recherches si c'est probant.

Rémy.
Frédéric Bron

Re: lilypond-book ou comment automatiser la création d'un répertoire ?

Reply Threaded More More options
Print post
Permalink
> Pour préciser (même si je n'ai pas d'idée définitive), j'aimerais que mon
> script remplisse le fichier .lytex avec les emplacements des fichiers .ly
> par ordre alphabétique (par exemple).

Si tu donnes un exemple du fichier .lytex, je peux peut-être t'écrire
un bout de script.

Frédéric



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

Re: lilypond-book ou comment automatiser la création d'un répertoire ?

Reply Threaded More More options
Print post
Permalink
Voilà où je suis arrivé :

#!/bin/bash
cd ../Northumberland
find -type f -name "*.ly" | sed -e 's/^..//g' | sed -e 's/.*/\\lilypondfile[noindent,line-width=18\\cm]{..\/Northumberland\/&}\n/' > ../Lilybook/liste.txt
cd ../Lilybook
cat repdebut.txt liste.txt repfin.txt > repertoire_nsp.lytex
lilypond-book --output=out repertoire_nsp.lytex
cd out
latex repertoire_nsp.tex
dvips repertoire_nsp.dvi
ps2pdf repertoire_nsp.ps
evince repertoire_nsp.pdf



   J'ai mis le préambule de mon fichier .lytex dans repdebut.txt, et un bête \end{document} dans repfin.txt, puis j'ai concaténé.
   C'est sans doute barbare, mais comme je n'avais jamais fait ça...!
   J'ai eu un souci car find renvoyait l'emplacement des fichiers sous la forme ./blabla d'où le premier sed. Et aussi, je mets mes fichiers Lilypond chacun dans un répertoire, d'où une arborescence un peu moche.


   Maintenant, de ce côté-là, c'est bon ! En revanche, je me rends compte que lilypond-book (ou plutôt LaTeX) coupe les morceaux entre deux portées si ça lui chante, voire carrément entre le titre et la musique !!! C'est, me semble-t-il, dû au fait que lilypond-book découpe chaque portée en un fichier image.
   Me reste plus qu'à trouver LA commande permettant d'empêcher un saut de page sur un bloc du type :

{%
\parindent 0pt%
\ifx\preLilyPondExample \undefined%
 \relax%
\else%
 \preLilyPondExample%
\fi%
\def\lilypondbook{}%
\input c2/lily-de09e647-systems.tex%
\ifx\postLilyPondExample \undefined%
 \relax%
\else%
 \postLilyPondExample%
\fi%
}


Et j'aurai un fichier pdf sans coupures inopinées...

Rémy

PS : Merci pour ton aide, Frédéric ; je ne refuse pas un coup de pouce pour savoir comment trier par ordre (alphabétique par exemple) la liste de mes fichiers .ly.
   
Remy Palezis

Re: lilypond-book ou comment automatiser la création d'un répertoire ?

Reply Threaded More More options
Print post
Permalink
Je me réponds à moi-même : il doit suffire d'encapsuler les blocs dans un environnement figure :

\begin{figure}[htbp]
...
\end{figure}

sed n'a pas fini de servir.

Ceci dit, je vais essayer d'obliger LaTeX à placer les "figure" en haut de page.
Frédéric Bron

Re: lilypond-book ou comment automatiser la création d'un répertoire ?

Reply Threaded More More options
Print post
Permalink
In reply to this post by Remy Palezis
> PS : Merci pour ton aide, Frédéric ; je ne refuse pas un coup de pouce pour
> savoir comment trier par ordre (alphabétique par exemple) la liste de mes
> fichiers .ly.

Pour l'ordre alphabétique, tu peux piper le résultat de find sur sort:

find -type f -name "*.ly" | sed -e 's/^..//g' | sort | sed -e
's/.*/\\lilypondfile[noindent,line-width=18\\cm]{..\/Northumberland\/&}\n/'
> ../Lilybook/liste.txt

man sort pour le détail des options.

Frédéric



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

Re: lilypond-book ou comment automatiser la création d'un répertoire ?

Reply Threaded More More options
Print post
Permalink
Merci !

   J'avais effectivement déniché sort, mais sans me rendre compte que je pouvais l'intégrer entre find et sed (les pipe, c'est un peu inédit pour moi). Ton post me permet de simplifier mon script, qui devient :

#!/bin/bash
cd ../Northumberland
find -type f -name "*.ly" | sed -e 's/^..//g' | sort | sed -e 's/.*/\\lilypondfile[noindent,line-width=18\\cm]{..\/Northumberland\/&}\n/' > ../Lilybook/listeNorthumberland.txt
cd ../Irish
find -type f -name "*.ly" | sed -e 's/^..//g' | sort | sed -e 's/.*/\\lilypondfile[noindent,line-width=18\\cm]{..\/Irish\/&}\n/' > ../Lilybook/listeIreland.txt
cd ../Lilybook
cat repdebut.tex listeNorthumberland.txt listeIreland.txt repfin.tex > repertoire_nsp.lytex
lilypond-book --output=out repertoire_nsp.lytex
#lilypond-book --output=out --pdf repertoire_nsp.lytex
cd out
sed -i 's/{%/&\n\\begin{figure}\[htbp\]/g' repertoire_nsp.tex
sed -i '/\\postLilyPondExample%/,/\\fi%/ s/\\fi%/\\fi%\n\\end{figure}/g' repertoire_nsp.tex
latex repertoire_nsp.tex
dvips repertoire_nsp.dvi
ps2pdf repertoire_nsp.ps
#evince repertoire_nsp.ps
#pdflatex repertoire_nsp.tex
evince repertoire_nsp.pdf &


J'ai ajouté un autre répertoire (musique irlandaise). Ça marche nickel. Il faut maintenant que je demande sur un forum LaTeX comment s'occuper des "figure".
   Ce qui serait fantastique, ce serait de pouvoir capter le nom de chaque morceau et de nommer la figure avec (sans que ça apparaisse dans le répertoire), pour pouvoir obtenir une liste grâce à \listoffigures.