Subject: Commandes non documentées

From: Yann Morin <[email-masked]>
Date: Thu, 10 May 2007 20:32:54 +0200

Bonjour,

En adaptant le modèle de partition pour piano fourni dans la 
documentation pour en faire un modèle de partition pour clavecin, je 
m'interroge sur les commandes suivantes se trouvant en début de source:

dump-extents

force-assignment

\sourcefileline

A quoi servent-elles ? Elles ne sont même pas documentées. J'ai fait 
pourtant une recherche avec l'outil Recherche de Windows.

Yann

-- 
Yann Morin
LilyPond 2.10.20 sous WinXP
Partitions pour clavecin & tutoriels LilyPond sur ymorin.club.fr

---

From: "Valentin Villenave" <[email-masked]>
Date: Thu, 10 May 2007 23:47:04 +0200

> m'interroge sur les commandes suivantes se trouvant en début de source:

Pour autant que je sache, ces commandes sont générées automatiquement,
et ne font pas à proprement parler partie des exemples LilyPond. Elles
sont relatives à leur intégration dans la documentation (qui est au
format TexInfo), au moyen de l'outil lilypond-book. (je crois qu'il
s'agit ici du "préambule" de lilypond-book).

D'ailleurs, si tu as tenté de les enlever, tu auras pu constater
qu'aucune différence ne se produit, à part éventuellement de petits
détails de mise en forme (que tu pourras compenser en écrivant
toi-même ton propre bloc \paper ou \layout si nécessaire).

Les deux premières sont relatives à la taille et la disposition de
l'image produite par LilyPond; quant à la commande \sourcefileline, ce
n'est pas une commande LilyPond comme les autres, je crois qu'il
s'agit d'un repère pour lilypond-book par rapport aux fichiers source
de la documentation (les fichiers .itely, dont sont extraits tous les
exemples). Il est donc normal que tu n'aies pas trouvé de
documentation spécifique.

En général, la partie véritablement utile du code commence justement
en-dessous de la ligne \sourcefileline. C'est à partir de là qu'il
faut copier et coller.

> J'ai fait pourtant une recherche avec l'outil Recherche de Windows.

Quel sens de l'humour :-)

Cordialement,
Valentin

---

From: denis queffeulou <[email-masked]>
Date: Fri, 18 May 2007 15:16:26 +0200

Bonjour,

j'essaye de faire une partoche avec 2 voix sur la même portée, en  
gros il y a 2 blanches et en même temps 8 croches.

		<<
		{r8 c'8\3  e'\2 a'\1 b'\1 e'\2 c'\3 b'\1} \\
		{a2\4 gis\4}

ça marche sauf que chaque note est doublée !
Un autre problème est que la tablature guitare est vide.

Des idées ?

Merci

-- 
Denis

---

From: Gilles THIBAULT <[email-masked]>
Date: Fri, 18 May 2007 16:25:05 +0200

.

>Un autre problème est que la tablature guitare est vide.

La syntaxe pour les doigtés c'est avec - et non avec \
Ce qui donne

<<
{r8 c'8-3  e'-2 a'-1 b'-1 e'-2 c'-3 b'-1} \\
{a2-4 gis-4}

Les doigtés apparaissent.
Ceci dit chez moi , les notes n'apparaissaient pas doublées dans la code 
initial.
Versions différentes de lilypond ?

Gilles
Version 2.10.20

---

From: denis queffeulou <[email-masked]>
Date: Fri, 18 May 2007 17:47:20 +0200

en fait ce ne sont pas les doigtés mais le numéro de la corde sur la  
guitare

j'ai la 2.10.16, je vais essayer d'installer la dernière version...

> Ceci dit chez moi , les notes n'apparaissaient pas doublées dans la  
> code initial.

---

From: John Mandereau <[email-masked]>
Date: Sat, 19 May 2007 00:05:22 +0200

> Un autre problème est que la tablature guitare est vide.

Oui, j'ai déjà eu ce problème de notes doublées (pour chaque note, une
hampe et deux têtes de note), ça vient d'une mauvaise structure de
musique (emboîtement d'expressions musicales << >> {} avec \new
<contextes>, le tout dans le bloc \score).  Si la tablature de guitare
est vide, c'est sûrement un problème du même type.

Pour répondre précisément à ta question, il nous faut donc la structure
du fichier .ly, c'est-à-dire le fichier .ly de ta partition dans lequel
tu as enlevé 90% de la musique pour ne garder qu'un exemple minimal,
assez fourni quand même pour nous permettre de le compiler et voir ton
problème.

Bon week-end
-- 
John Mandereau <[email-masked]>

---

From: denis queffeulou <[email-masked]>
Date: Sat, 19 May 2007 10:09:44 +0200

j'utilise désormais la 2.10.23 mais ça ne change rien,
voici la structure générale du morceau :

melody = {
	\key a \minor
	\time 4/4
	\repeat volta 2
	{
		<<
		<<g8\4 c''\1>> e'\2 c'\3 c''\1 <<fis\4 fis'\1>> d'\2 a\3 fis'\1 |
		<<f\4 e'\1>> c'\2 a\3 c'\2~ c'\2 e'\1  c'\2 a\3
	}
	\alternative {
		{<<b,\5 g\3>> <<a,\5 a\3>> <<a,4\5 a4\3>> r8 a,8\5 f\5 e\5 }
		{<<b,\5 g\3>> <<a,\5 a\3>> <<a,4\5 a4\3>> r4 a,8\5 b,\5}		
	}
}

\book
{
	\header{
	  title = "Stairway to heaven - IV"
	  composer = "Led Zeppelin"
	}
	\score
	{
		<<
		\new Voice =  "melody"
		{
			\clef "G_8"
			\melody
		}
		\new TabStaff {
			\melody
		}
	}
}

La tablature n'est vide que sur la première mesure.

---

From: John Mandereau <[email-masked]>
Date: Sat, 19 May 2007 14:45:38 +0200

> La tablature n'est vide que sur la première mesure.

Le problème est que tu définis le contexte de Voix "mélody", et
qu'ensuite tu veux y mettre deux contextes de Voix simultanés avec << \\
>>, ce qui n'est pas logique, et donc fait faire des bizarreries à
LilyPond.  Entre les contextes de Partition (Score) et de Voix, il y a
un intermédiaire essentiel : la Portée (Staff), qui devrait toujours
être définie explicictement pour plus de clarté.

Concrètement, cela signifie qu'il faut replacer

\new Voice =  "melody"

par

\new Staff =  "melody"

dans le bloc \score

---

From: denis queffeulou <[email-masked]>
Date: Sat, 19 May 2007 18:23:56 +0200

bon ça ne marche pas non plus avec new Staff,
en fait je me demande si la notation à plusieurs voix est supportée  
par TabStaff parce que à aucun moment je n'ai vu une tablature  
apparaître pour la première mesure.
Si je met une version différente de notes pour Staff et TabStaff ça  
marche, mais bon, c'est moyen comme solution...

j'ai essayé aussi sans succès :

	\score
	{
		\new StaffGroup <<
		\new Staff
		{
			\clef "G_8"
			\melody
		}
		\new TabStaff {
			\melody
		}
	}

merci quand même

-- 
Denis

---

From: John Mandereau <[email-masked]>
Date: Mon, 21 May 2007 23:42:48 +0200

> apparaître pour la première mesure.

Oui, le contexte TabStaff peut contenir plusieurs voix, mais ces voix ne
sont pas des contextes Voice mais plutôt des contextes TabVoice (cf.
manuel "7.5.2 Tablatures basic").

La syntaxe << \\ >> sous-entend deux contextes Voice implicites, ce qui
ne convient pas au contextes Tab{Staff,Voice}.

> marche, mais bon, c'est moyen comme solution...

C'est la solution pourtant, avec différentes posssibilités.  La pire
étant de copier-coller les notes pour avoir deux versions complètement
indépendantes : lorsqu'on veut faire des modifications, il faut les
répercuter à la main sur l'autre copie, ce qui est barbant et source
d'erreurs.

Voici un code qui fonctionne, avec les mêmes notes pour la portée et la
tablature.  La solution envoyée par "leyoy" convient très bien, je
propose celle-ci dans un but pésagogique, pour montrer l'utilisation des
tags:

melodyA = {r8 c'8\3  e'\2 a'\1 b'\1 e'\2 c'\3 b'\1}

melodyB = {a2\4 gis\4}

melody = {
  \key a \minor
  \time 4/4
  \repeat volta 2
  {
    <<
      \tag #'melody << \melodyA \\ \melodyB >>
      \tag #'tab <<
\new TabVoice { \voiceOne \melodyA }
\new TabVoice { \voiceTwo \melodyB }
    <g\4 c''\1>8 e'\2 c'\3 c''\1 <fis\4 fis'\1> d'\2 a\3 fis'\1 |
    <f\4 e'\1> c'\2 a\3 c'\2~ c'\2 e'\1  c'\2 a\3
  }
  \alternative {
    {<b,\5 g\3> <a,\5 a\3> <a,\5 a\3>8 r8 a,8\5 f\5 e\5 }
    {<b,\5 g\3> <a,\5 a\3> <a,\5 a\3>8 r4 a,8\5 b,\5}                
  }
}

\score
{
  \new StaffGroup <<
    \new Staff
    {
      \clef "G_8"
      \keepWithTag #'melody \melody
    }
    \new TabStaff {
      \keepWithTag #'tab \melody
    }
}

Bien cordialement