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

From: Remy Palezis <[email-masked]>
Date: Mon, 8 Jun 2009 13:07:04 -0700 (PDT)

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.
-- 
View this message in context: http://n2.nabble.com/lilypond-book-ou-comment-automatiser-la-cr%C3%A9ation-d%27un-r%C3%A9pertoire---tp3045254p3045254.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: "Gilles THIBAULT" <[email-masked]>
Date: Wed, 10 Jun 2009 21:29:16 +0200

>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

---

From: Frédéric Bron <[email-masked]>
Date: Thu, 11 Jun 2009 09:08:58 +0200

> !/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

---

From: Remy Palezis <[email-masked]>
Date: Fri, 12 Jun 2009 03:42:42 -0700 (PDT)

> mais là il faut que tu dises ce que tu veux en sortie.

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.
-- 
View this message in context: http://n2.nabble.com/lilypond-book-ou-comment-automatiser-la-cr%C3%A9ation-d%27un-r%C3%A9pertoire---tp3045254p3066980.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Frédéric Bron <[email-masked]>
Date: Fri, 12 Jun 2009 12:50:45 +0200

> 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

---

From: Remy Palezis <[email-masked]>
Date: Fri, 12 Jun 2009 07:34:09 -0700 (PDT)

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.
   
-- 
View this message in context: http://n2.nabble.com/lilypond-book-ou-comment-automatiser-la-cr%C3%A9ation-d%27un-r%C3%A9pertoire---tp3045254p3067979.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Remy Palezis <[email-masked]>
Date: Fri, 12 Jun 2009 07:52:57 -0700 (PDT)

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.
-- 
View this message in context: http://n2.nabble.com/lilypond-book-ou-comment-automatiser-la-cr%C3%A9ation-d%27un-r%C3%A9pertoire---tp3045254p3068073.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Frédéric Bron <[email-masked]>
Date: Sat, 13 Jun 2009 14:57:59 +0200

> savoir comment trier par ordre (alphabétique par exemple) la liste de mes

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

---

From: Remy Palezis <[email-masked]>
Date: Sat, 13 Jun 2009 14:52:25 -0700 (PDT)

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
> ../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.
-- 
View this message in context: http://n2.nabble.com/lilypond-book-ou-comment-automatiser-la-cr%C3%A9ation-d%27un-r%C3%A9pertoire---tp3045254p3073703.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.