1.4 Quelques erreurs des plus courantes

Les conditions amenant aux erreurs qui suivent sont fréquentes, bien qu’elles ne soient pas évidentes ni facilement localisables. Nous espérons que ces explications vous aideront à les résoudre plus facilement.


La musique déborde de la page

Lorsque la musique s’épanche au delà de la marge droite ou bien semble anormalement comprimée, la raison en est le plus souvent une note à la durée erronée ; cela finit par provoquer le débordement de la dernière note d’une mesure. Rien ne s’oppose à ce que la dernière note d’une mesure ne s’arrête avant la barre de mesure ; on considère simplement qu’elle se prolonge sur la mesure suivante. Des débordements à répétition finissent par générer une musique comprimée ou qui sort de la page, pour la simple et bonne raison que les sauts de ligne automatiques ne peuvent intervenir qu’à la fin d’une mesure complète, autrement dit lorsque toutes les notes sont terminées avant la fin de la mesure.

Note : Une durée erronée peut empêcher les sauts de ligne, ce qui conduit à une musique compressée, voire à un débordement de la page.

Une erreur de durée sera bien plus facilement localisable si vous positionnez régulièrement des contrôles de barre de mesure – voir Vérification des limites et numéros de mesure.

Si vous tenez absolument à enchaîner de tels débordements, vous devrez insérer des barres de mesure invisibles là où vous souhaitez positionner un saut de ligne. Consultez le chapitre Barres de mesure pour plus de détails.


Apparition d’une portée supplémentaire

Lorsque les contextes ne sont pas créés explicitement par la commande \new, ils le seront si la commande à exécuter n’est pas censée s’appliquer au contexte en cours. Pour des partitions simples, le fait que les contextes soient automatiquement créés rend bien des services, et c’est d’ailleurs le cas pour la majorité des exemples contenus dans les manuels de LilyPond. Cependant, la création implicite d’un contexte peut aboutir à l’apparition d’une portée « parasite ». On s’attend par exemple, en lisant le code qui suit, à ce que toutes les têtes de note soient en rouge, alors que le résultat nous présente deux portées et que les notes, placées sur la portée inférieure, restent en noir.

\override Staff.NoteHead #'color = #red
\new Staff { a }

[image of music]

Étant donné qu’aucun contexte Staff n’existe lorsque la dérogation est introduite, LilyPond le crée implicitement pour lui appliquer la directive considérée. Survient alors la commande \new Staff qui, à son tour, crée une nouvelle portée pour contenir les notes qui suivent. Voici la syntaxe correcte pour obtenir ces notes en rouge :

\new Staff {
  \override Staff.NoteHead #'color = #red
  a
}

[image of music]

Autre exemple : la présence d’une commande \relative à l’intérieur d’une section \repeat générera obligatoirement une portée intempestive. Cela tient au fait que la commande \repeat va créer deux blocs \relative qui, chacun à leur tour, créeront implicitement un bloc Staff assorti d’un bloc Voice.

\repeat unfold 2 {
  \relative c' { c4 d e f }
}

[image of music]

La manière adéquate de procéder consiste à inverser les commandes \repeat et \relative, comme ceci :

\new Voice {
  \repeat unfold 2 {
    \relative c' { c4 d e f }
  }
}

[image of music]


Erreur renvoyant à ../ly/init.ly

Certains messages d’erreur relatifs à une erreur de syntaxe dans le fichier ‘../ly/init.ly’ peuvent survenir lorsque le fichier est mal formaté. Cela se produit notamment lors d’un défaut de parité de bornages ou de guillemets.

L’erreur la plus courante est la simple omission d’une accolade fermante (}) à la fin du bloc Score. La solution est évidente en pareil cas : il suffit de vérifier que le bloc Score est bien clôturé. La structure des fichiers LilyPond est abordée plus en détails au chapitre Organisation des fichiers LilyPond. C’est la raison pour laquelle nous vous invitons à utiliser un éditeur de texte qui prenne en charge le contrôle de parité des parenthèses, crochets et accolades afin de vous éviter de telles erreurs.

Autre erreur courante, l’absence d’espace entre la dernière syllabe et l’accolade (}) clôturant un bloc de paroles. Lorsqu’il n’y a pas séparation, l’accolade est considérée comme faisant partie intégrante de la syllabe. C’est la raison pour laquelle nous vous invitons à insérer une espace avant et après chaque accolade. D’autres informations à ce sujets sont mentionnées au chapitre Saisie des paroles.

Lorsqu’il s’agit d’un guillemet fermant (") omis, le message d’erreur devrait vous indiquer un numéro de ligne avoisinant. L’erreur se situe la plupart du temps une ou deux lignes au-dessus de celle indiquée.


Message d’erreur Unbound variable %

Ce message d’erreur, qu’il apparaisse sur le terminal ou en fin de fichier journal, est associé à un message du type « GUILE a signalé une erreur… ». Il survient à chaque fois qu’un commentaire LilyPond est indûment placé dans une routine Scheme.

Un commentaire LilyPond est introduit par le signe pourcent (%) et ne doit en aucun cas se trouver dans une routine Scheme. En Scheme, les commentaires s’introduisent par un point-virgule (;).


Message d’erreur FT_Get_Glyph_Name

Ce message d’erreur, qu’il apparaisse sur le terminal ou en fin de fichier journal, survient lorsqu’un fichier source contient des caractères non ASCII et qu’il n’a pas été enregistré avec un encodage UTF-8. Pour plus de détails, reportez-vous au chapitre Caractères spéciaux.


staff-affinities devraient aller en ordre décroissant

Cet avertissement est émis lorsque la partition ne comporte pas de portée, comme par exemple une feuille de chant avec un contexte ChordName et un contexte Lyrics. Ce message disparaîtra dès lors que autoriserez l’un de ces contextes à se comporter comme une portée, à l’aide de l’instruction

\override VerticalAxisGroup #'staff-affinity = ##f

que vous insérerez dès sa création. Pour plus d’information, reportez-vous à la rubrique Espacement des lignes rattachées à des portées.


Autres langues : English, deutsch, español, magyar, italiano, 日本語.
About automatic language selection.

LilyPond — Utilisation des programmes

inserted by FC2 system