Subject: LilyPond encore plus facile avec EasyLilyPond !

From: "Valentin Villenave" <[email-masked]>
Date: Sun, 23 Dec 2007 19:21:16 +0100

Bonjour à tous,

Après trois semaines de boulot et ces trois derniers jours passés à
débugger mon code sans dormir ni manger, je suis assez soulagé de
pouvoir enfin vous présenter une petite initiative que j'ai entreprise
: EasyLilyPond.

Qu'est-ce qu'EasyLilypond ? C'est tout simplement un moyen de faire
davantage connaître et apprécier Lilypond autour de nous. Jusqu'ici
mes élèves m'apportaient leurs ordinateurs portables en me demandant
"comment ça marchait", et j'étais obligé d'installer, de configurer
tout ça, et de dépenser une énergie considérable à leur faire valoir
que "mais si, c'est simple".

D'où mon idée de regrouper, en un *même* installeur :
-LilyPond
-l'éditeur jEdit
-le plugin LilypondTool
-le Java Runtime Environment nécessaire pour jEdit
-un lecteur PDF libre

Le gros du travail a été de donner à tout ça une forme conviviale et agréable.

- Je suis parti du code source même de l'installeur "officiel" de
LilyPond, donc l'installation de lilypond est aussi fiable qu'une
installation standard.
- J'ai tout retravaillé pour lui donner un look ligne des installeurs
de jeux vidéos ou autres.
- J'ai "skinné" comme un malade l'éditeur jEdit
- J'ai également écrit une petite application, nommée EasyLauncher,
qui donne accès en un clic à toutes les ressources utiles : lancer
l'éditeur, voir des fichiers d'exemple, ouvrir la documentation,
lancer un fichier d'apprentissage, etc. Là encore, le Easylauncher est
skinné à outrance, avec un joli écran d'accueil transparent, une
petite musique d'ouverture,...
- *Tout* est (enfin) localisé : non seulement l'installeur et le
Launcher, mais même la partition de démarrage "welcome.ly", que vous
connaissez tous, apparaît automatiquement dans la langue de
l'utilisateur (y compris le choix du nom des notes : "italiano.ly"
pour un utilisateur français, et ainsi de suite).

C'est encore en état pré-pré-pré-alpha-truc, mais ça donne déjà une
idée. Mon propos était avant tout de voir jusqu'à quel point je
pouvais donner à Lilypond un aspect rassurant pour l'utilisateur
Windows de base.

Plus d'informations :
http://valentin.villenave.info/spip.php?article45

Merci beaucoup et joyeux Noël à tous !

Valentin

---

From: discussions-sur-forums <[email-masked]>
Date: Sun, 23 Dec 2007 20:55:26 +0100

Bonjour,

Dans un .ly multi-scores mais un seul pdf, il est possible de définir 
les en-têtes pairs et impairs en définissant oddHeaderMarkup et 
evenHeaderMarkup. Toutefois, ils semblent constants pour tout le pdf.

Or je voudrais mettre dans ces en-têtes le nom du score courant. Par 
exemple, dans un morceau avec plusieurs mouvements, mettre le nom du 
premier mouvement sur les pages de ce mouvement, puis automatiquement le 
nom du deuxième mouvement sur les pages de ce mouvement, etc... J'essaie 
donc de redéfinir les oddHeaderMarkup et evenHeaderMarkup pour chaque 
mouvement, mais sans succès.

Bonnes fêtes à tous.

En partant de l'exemple de la doc, voici mon code actuel (c'est 3 fois 
le même score pour faire 3 scores de test):

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.11.36"

\paper
{
    oddHeaderMarkup = \markup { "odd" }
    evenHeaderMarkup = \markup { "even" }
}
\header
{
    title = "Titre"
    subtitle = "Sous-Titre"
}

% Score 1
         \score { \new Staff {\repeat unfold 8 { c'8 c'8 c'8 c'8 } 
\pageBreak
\repeat unfold 8 { c'8 c'8 c'8 c'8 } \pageBreak
\repeat unfold 8 { c'8 c'8 c'8 c'8 } \pageBreak
\repeat unfold 8 { c'8 c'8 c'8 c'8 } \pageBreak
         } \layout
{
oddHeaderMarkup = \markup { "Mouvement 1" }
evenHeaderMarkup = \markup { "Mouvement 1" }
} }

% Score 2
         \score { \new Staff {\repeat unfold 8 { c'8 c'8 c'8 c'8 } 
\pageBreak
\repeat unfold 8 { c'8 c'8 c'8 c'8 } \pageBreak
\repeat unfold 8 { c'8 c'8 c'8 c'8 } \pageBreak
\repeat unfold 8 { c'8 c'8 c'8 c'8 } \pageBreak
         } \layout
{
oddHeaderMarkup = \markup { "Mouvement 2" }
evenHeaderMarkup = \markup { "Mouvement 2" }
} }

% Score 3
         \score { \new Staff {\repeat unfold 8 { c'8 c'8 c'8 c'8 } 
\pageBreak
\repeat unfold 8 { c'8 c'8 c'8 c'8 } \pageBreak
\repeat unfold 8 { c'8 c'8 c'8 c'8 } \pageBreak
\repeat unfold 8 { c'8 c'8 c'8 c'8 } \pageBreak
         } \layout
{
oddHeaderMarkup = \markup { "Mouvement 3" }
evenHeaderMarkup = \markup { "Mouvement 3" }
} }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

---

From: discussions-sur-forums <[email-masked]>
Date: Mon, 24 Dec 2007 08:44:55 +0100

Est-ce qu'il serait possible de définir en Scheme une variable dans 
chaque score (ou changer la valeur d'une même variable), puis l'utiliser 
avec \on-the-fly dans les en-têtes?

discussions-sur-forums a écrit :
> premier mouvement sur les pages de ce mouvement, puis automatiquement 
> le nom du deuxième mouvement sur les pages de ce mouvement, etc... 
> J'essaie donc de redéfinir les oddHeaderMarkup et evenHeaderMarkup 
> pour chaque mouvement, mais sans succès.
>
> Bonnes fêtes à tous.
>
>
> _______________________________________________
> liste de diffusion lilypond-user-fr
> [email-masked]
> http://lists.gnu.org/mailman/listinfo/lilypond-user-fr
> --------------------------------------------------------------------------------------- 
>
> Orange vous informe que cet  e-mail a ete controle par l'anti-virus 
> mail. Aucun virus connu a ce jour par nos services n'a ete detecte.
>
>
>

---

From: Nicolas Sceaux <[email-masked]>
Date: Mon, 24 Dec 2007 12:19:45 +0100

Le 23 déc. 07 à 20:55, discussions-sur-forums a écrit :

> Bonjour,
>
> Dans un .ly multi-scores mais un seul pdf, il est possible de  
> définir les en-têtes pairs et impairs en définissant oddHeaderMarkup  
> et evenHeaderMarkup. Toutefois, ils semblent constants pour tout le  
> pdf.
>
> premier mouvement sur les pages de ce mouvement, puis  
> automatiquement le nom du deuxième mouvement sur les pages de ce  
> mouvement, etc... J'essaie donc de redéfinir les oddHeaderMarkup et  
> evenHeaderMarkup pour chaque mouvement, mais sans succès.

J'ai réalisé à peu près ce que tu souhaites pour mes partitions :
sur les pages de gauche (paires) le nom de l'œuvre apparaît, et sur les
pages de droites (impaires) le nom du mouvement. Les sources se situent
par exemple ici :
  <http://nicolas.sceaux.free.fr/clavecin/ArtDeToucherLeClavecin.tar.gz>
dans le fichier titling-commands.ily

Le rendu :
  <http://nicolas.sceaux.free.fr/clavecin/ArtDetoucherLeClavecin-new-clefs.pdf 

L'astuce consiste à ajouter des marqueurs à chaque début de section dont
on veut voir le titre en tête de page, et d'ajouter ce même marqueur  
ainsi
que le titre correspondant dans une table. Ensuite, les commandes de  
textes
générant les en-têtes, en fonction de la page sur laquelle on se trouve,
vont piocher le titre qui va bien, connaissant pour chaque marqueur le
numéro de page sur lequel il survient.

Il y a un prix à payer pour cette technique, à savoir que l'en-tête est
généré très tard, au moment de la génération du code PostScript, et donc
pour le calcul des sauts de pages un gabarit est utilisé à la place de
l'en-tête, pour estimer la place qu'il occupera. On doit donc avoir
une bonne idée a priori de la taille de l'en-tête. Dans le cas de titres
ce n'est pas grave (on aura une ligne de texte quoi qu'il arrive), mais
ça empêche d'utiliser cette technique par exemple pour des notes de bas
de page, dont la hauteur peut varier de n'importe quoi entre 0 et n
lignes.

nicolas

---

From: moebius <[email-masked]>
Date: Mon, 24 Dec 2007 16:17:41 +0100

Beau travail, mais bon, pour un linuxien comme moi, l'intérêt reste 
hélas limité :)
Heureusement, il reste vos conseils avisés !

bonnes fêtes

---

From: "Valentin Villenave" <[email-masked]>
Date: Tue, 25 Dec 2007 10:40:00 +0100

> Beau travail, mais bon, pour un linuxien comme moi, l'intérêt reste

Confidence pour confidence, c'est aussi mon cas :)

Il y a encore un méchant bug (il faut enregistrer les fichiers .ly à
la racine du dossier d'installation pour que la compilation puisse se
faire). Je le corrigerai d'ici quelques jours (fêtes obligent)...

Cordialement,
Valentin

---

From: "Valentin Villenave" <[email-masked]>
Date: Thu, 27 Dec 2007 18:25:50 +0100

> faire). Je le corrigerai d'ici quelques jours (fêtes obligent)...

Nouvelle version : 10 Mo de moins grâce à la compression LZMA, bugs de
chemins corrigés, et code source inclus dans l'installeur.

En revanche, un nouveau bug : il semble que l'interface se mette en
Français par défaut... :)

Cordialement,
Valentin