[ << Exécution de lilypond ] | [Racine][Table des matières][Index] | [ Mise à jour avec convert-ly >> ] |
[ < Messages d'erreur ] | [Plus haut: Exécution de lilypond ] | [ La musique déborde de la page > ] |
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' }
É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' }
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 vous 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.
Message d’erreur unexpected \new
Un bloc \score
ne peut contenir qu’une seule expression
musicale. Si, par contre, il comporte plusieurs \new Staff
,
\new StaffGroup
ou autres contextes introduits par une commande
\new
qui ne seraient pas bornés par des accolades
{ … }
ou des doubles chevrons << … >>
comme
ici :
\score { % Invalide ! Génère l'erreur : syntax error, unexpected \new % en français : erreur de syntaxe : \new inattendu \new Staff { … } \new Staff { … } }
vous obtiendrez ce message d’erreur.
Cette erreur sera évitée dès lors que toutes les instances de
\new
sont bornées par des accolades ou des doubles chevrons.
Des accolades placeront ces clauses \new
en séquence :
\score { { \new Staff { a' a' a' a' } \new Staff { g' g' g' g' } } }
alors que des doubles chevrons les placeront en parallèle ; autrement dit, LilyPond les traitera simultanément :
\score { << \new Staff { a' a' a' a' } \new Staff { g' g' g' g' } >> }
Cette voix requiert un \voiceXx
ou un réglage \shiftXx
Lorsque des notes affectées à des voix différentes et ayant la même
orientation de hampe interviennent au même instant musical et qu’aucun
décalage spécifique à la voix n’a été spécifié, LilyPond émet
Avertissement : Cette voix requiert un voiceXx ou un réglage
shiftXx
(warning: this voice needs a \voiceXx or \shiftXx
setting). Cet avertissement est émis même lorsque ces notes n’ont pas
de hampe visible, comme par exemple des rondes, si les hampes des durées
inférieures à ces mêmes hauteurs avaient la même orientation.
N’oublions pas que l’orientation des hampes dépend de la position des
notes sur la portée à moins que cette orientation n’ait été spécifiée,
par exemple à l’aide d’un \voiceOne
ou autre clause. En pareil
cas, l’avertissement ne sera émis que lorsque les hampes auront la même
orientation, autrement dit lorsque les notes seront dans la même moitié
de la portée.
Le fait de placer les notes dans des voix auxquelles sont attachés
orientation de hampe et décalage, comme \voiceOne
ou autre, peut
permettre d’éviter ces avertissements.
Les notes se trouvant dans des voix au numéro plus élévé –
\voiceThree
ou \voiceFour
– sont automatiquement décalées
pour éviter que les empilements se chevauchent. Ceci aura pour résultat
de visuellement décaler les notes affublées de hampe sans toutefois
bouger les rondes, hormis dans le cas d’un réel chevauchement ou lorsque
ces voix se croisent (\voiceThree
au dessus de\voiceOne
).
Voir aussi
Manuel d’initiation : Instanciation explicite des voix, Exemple concret.
Manuel de notation : Polyphonie sur une portée, Résolution des collisions.