SourceForge.net Logo OOoLilyPond

Utiliser la notation musicale dans OpenOffice.org et LibreOffice

Choisissez une langue : español português english français

Avec OOoLilyPond (OLy) vous pouvez utiliser une notation musicale dans OpenOffice.org et LibreOffice. Utilisez-le pour écrire un livre de théorie musicale, ou pour écrire des exercices pour instruments de musique ou voix qui nécessitent des commentaires ou du texte. OLy n'est pas limité à la notation de musique classique, vous pouvez également créer des diagrammes d'accords de guitare.

Vous entrez vos notes de musique comme du texte avec le langage de LilyPond et OLy le convertit en image dans votre document. Vous aurez besoin d'un peu de temps pour vous familiariser avec le langage de Lilypond mais une fois que vous l'aurez appris vous pourrez taper de petits morceaux de musique plus rapidement qu'avec n'importe quel autre programme.

Samuel Hartmann, July 2009

Table des matières

Actualité

Exemple et copie d'écran

Téléchargement

Installation

Premiers pas

Les modèles

Obtenir de l'aide

Problèmes connus

FAQ

Actualité

2009-06-13: Nouvelle version 0.4.0

OOoLilyPond a beaucoup changé avec cette nouvelle version. Il est maintenant plus facile à utiliser et a de nombreuses nouvelles fonctionnalités :

2009-01-10: Nouvelle version 0.3.3

L'installation de OOoLilyPond est maintenant beaucoup plus facile, merci à Goran Rakic qui a fourni l'empaquetage de l'extension. La nouvelle version utilise maintenant LilyPond 2.12. Les caractères spéciaux dans les paroles tels que l'Umlaute allemand sont maintenant possibles sous Windows.

2007-07-20: Nouvelle version 0.3.2

C'est une version de correction de bug. Il n'y a pas de nouvelles fonctionnalités. This is a bug fix release. There are no new features. Le système de gestion d'exceptions a été amélioré.

Exemple et copie d'écran

Voici un exemple avec des exercices vocaux pour un chœur d'hommes pour commencer à pratiquer.

Sous forme d'open document (OpenOffice.org ou LibreOffice): Einsingen_fuer_Maennerchor.odt
Il n'est pas nécessaire d'avoir installé OOoLilyPond pour simplement ouvrir le document dans le traitement de texte.

Sous forme de PDF : Einsingen_fuer_Maennerchor.pdf

Téléchargement

Vous pouvez télécharger la dernière version de OOoLilyPond sur sourceforge.net:

http://sourceforge.net/project/showfiles.php?group_id=177831

SourceForge.net Logo

Vous aurez aussi besoin de :

OpenOffice.org ou LibreOffice

LilyPond

Installation

Installation sous Windows et Linux

Installation sous Mac OS X

La version courrante de OOoLilyPond n'a pas été testée sur Mac OS X mais elle devrait marcher comme sur les machines Linux. OLy peut également être utilisé dans NeoOffice.

Premiers pas

Placer le curseur dans un document Writer. Cliquer sur le bouton “OLy” dans la barre d'outil pour ouvrir l'éditeur OOoLilyPond.

Selectionner un modèle (template) - vous pouvez aussi garder le modèle par défaut.

Saisir la taille de portée (Staff Size) souhaitée.

Ajuster la largeur de ligne (LineWidth) à la valeur correspondant à votre document. La valeur par défaut devrait être OK pour du A4.

Cliquer sur le bouton “LilyPond”. Ceci convertit le code d'exemple du modèle et l'insère dans le document Writer.

Selectionner l'objet de notation musicale nouvellement créé et cliquer à nouveau sur le bouton “OLy”.

L'éditeur OOoLilyPond s'ouvre à nouveau avec tous les réglages de la fois précédente. Dans le champ de saisie principal, vous pouvez changer les notes (éventuellement, faire défiler le texte vers le bas pour voir le code des notes). Pour apprendre la syntaxe du langage Lilypond, lire la documentation LilyPond. Il est recommandé de commencer par le chapitre Notation sur une seule portée.

Les modèles

Section ajoutée par Daniel Cartron, et n'existant pas dans la documentation originale.

Bien qu'il soit possible d'écrire la totalité du code Lilypond dans la fenêtre de l'éditeur de OOoLilyPond (c'est d'ailleurs le cas avec le modèle Direct to LilyPond), étant donné que généralement on cherche à ce que toutes les parties musicales présentent le même aspect, tout ce qui ne concerne pas directement l'expression musicale peut être externalisé dans un modèle. En réalité on disposera de plusieurs modèles, et l'on choisira celui qui convient à l'objet OOoLilyPond dans une liste déroulante de la fenêtre de l'éditeur.

Les variables

Pour que Lilypond puisse compiler correctement le code de l'expression musicale saisie dans l'éditeur, il faut que celui-ci soit inséré dans le modèle. Tout ce qui est saisi dans l'éditeur est par conséquent stocké dans une variable nommée OOoLilyPondCode, et le modèle contiendra donc les balises ouvrantes et fermantes suivantes :

%{OOoLilyPondCode%}
%{OOoLilyPondEnd%}
lesquelles seront placées à l'endroit du code Lilypond où devra être insérée l'expression musicale, donc entre {} comme l'exige la syntaxe Lilypond. Tout ce qui sera saisi dans le champ principal de l'éditeur OOoLilyPond sera stocké dans cette variable, et inversement tout ce qui est stocké dans cette variable sera affiché dans ce champ. Lorsqu'on crée un nouvel objet OOoLilyPond, ce sera le code éventuellement écrit dans le modèle entre ces deux balises qui sera affiché. Tous les modèles de base comportent quelques lignes de code d'exemple, qui sont donc affichées lors du choix du modèle, mais que l'on pourra supprimer une fois que l'on aura assimilé le fonctionnement tant de OOoLilyPond que de Lilypond.

Outre cette variable, qui est tout simplement indispensable, OOoLilyPond utilise quatre autres variables :

Ces variables s'utilisent de la façon suivante dans un modèle : %{NomDeLaVariable%}ValeurDeLaVariable%{OOoLilyPondEnd%}. Exemple :

  %{OOoLilyPondStaffSize%}20%{OOoLilyPondEnd%}

La balise fermante %{OOoLilyPondEnd%} est commune à toutes les variables. Il faut faire attention à ne pas omettre cette balise fermante sous peine d'obtenir une erreur the selected Template does not have an NomDeLaVariable tag. Il ne faut pas non plus laisser d'espaces avant ou après les balises autres que ceux admis dans la syntaxe Lilypond.

Comme la variable du code, celles-ci seront affichées et modifiables dans l'éditeur. Si les deux premières contiennent des valeurs numériques, les suivantes peuvent contenir absolument n'importe quelle chaîne de caractères, mais la taille du champ n'en affichera que 14 environ, il faudra ensuite utiliser les flèches de direction pour faire défiler le contenu. La variable OOoLilyPondLineWidth contient en réalité, dans les modèles de base, une chaîne de caractères, telle que 17\cm, ce qui permet de modifier non seulement la valeur de la largeur, mais aussi son unité. Dans vos modèles personnalisés, vous préférerez certainement écrire :

  line-width = %{OOoLilyPondLineWidth%}17%{OOoLilyPondEnd%}\cm

ce qui évite de devoir tenir compte de cette unité. Comme indiqué plus haut, il ne faut pas d'espaces avant ni après 17.

Éditer un modèle

Pour éditer un modèle on peut utiliser l'éditeur intégré à OOoLilyPond, mais il n'offre évidemment pas la vraie puissance d'un éditeur externe, comme par exemple la coloration syntaxique, la correction orthographique ou l'auto-complètement. Par contre il permet d'édite rapidement et facilement un modèle existant. Quel que soit l'éditeur qui sera utilisé pour personnaliser un modèle, une seule chose est indispensable : respecter les règles d'écriture des variables.

Sous linux, les modèles de base sont installés par défaut dans un répertoire /home/user/OOoLilyPond-Templates. Il peut être judicieux de les déplacer dans un répertoire dédié à Lilypond, dans ce cas il suffira d'indiquer le chemin d'accès correct dans la fenêtre de configuration de OOoLilyPond.

Le simple fait de créer un nouveau modèle monModèle.ly dans ce répertoire le fera apparaître dans la liste déroulante de choix des modèles, sans même qu'il soit besoin de relancer la macro.

Pour écrire votre propre modèle, vous pouvez partir d'un modèle existant, ou, si vous êtes familier de Lilypond, d'un de vos fichiers habituels. Comme dit plus haut, la seule variable indispensable est OOoLilyPondCode, vous pouvez ignorer les autres, bien qu'elles apportent une flexibilité intéressante. En effet, le fait de pouvoir modifier par exemple la taille de la portée sans devoir écrire la ligne de code complète dans votre expression musicale vous permet d'adapter un même modèle à plusieurs objets différents.

Lorsqu'on utilise une ou les deux variables personnalisables, il est judicieux d'indiquer leur utilisation sous forme de commentaire au début de la variable OOoLilyPondCode. Par exemple, si on utilise Custom1 pour enregistrer l'intervale de transposition ainsi :

   \transpose %{OOoLilyPondCustom1%}c c%{OOoLilyPondEnd%}

on prendra soin d'écrire (par exemple) :

   % Custom1 : valeur de l'intervalle de transposition (c c par défaut)

ou autre indication utile au tout début du contenu de la variable OOoLilyPondCode, afin de faciliter l'utilisation ultérieure de votre modèle.

Nota : si deux variables personnalisables ne vous suffisent pas, vous pouvez très bien détourner l'une ou les deux variables prédéfinies, en écrivant en dur leurs valeurs :

  line-width = 17\cm

et en utilisant OOoLilyPondLineWidth pour enregistrer toute autre information. Dans ce cas il est vraiment important de mettre une ligne explicative en début de variable OOoLilyPondCode. L'inconvénient de cette astuce est que la largeur de ligne n'est plus modifiable, mais selon le type de document où vous insérerez les objets OOoLilyPond, cela peut ne pas être génant.

Obtenir de l'aide

Pour obtenir de l'aide sur la façon d'utiliser ou installer OOoLilyPond visitez le forum .

Pour apprendre la syntaxe du langage de LilyPond language lisez la documentation LilyPond. Le meilleur point de départ est ce chapitre : Notation sur une seule portée.

Problèmes connus

FAQ

Quand je compile le code j'obtiens l'erreur suivante :
lilypond: /usr/lib/openoffice/program/libstdc++.so.6: version
'CXXABI_1.3.1' not found (required by lilypond)

Éditer le code de la macro lilypond comme suit :

Dans OpenOffice.org ou LibreOffice, sélectionner dans la barre de menus :
Outils --> Macros --> Gérer les macros --> OpenOffice.org Basic... ou LibreOffice Basic...
Selectionner dans "Macro de" : Mes macros --> OOoLilyPond --> Lilypond
Selectionner la macro "CallLilyPond"
Cliquer sur Éditer

Chercher la ligne (ligne 17 normalement) :
& Chr(34) & sLilyPondExecutable & Chr(34)

La changer en :
& "env LD_LIBRARY_PATH= " & Chr(34) & sLilyPondExecutable & Chr(34)

Revenir au Writer, démarrer la macro.

Depuis OSX 10.11 (El Capitan) la création des png ne fonctionne pas :
Library not loaded: ./bin/../sobin/libgs.8.70.dylib
Referenced from: /Applications/LilyPond.app/Contents/Resources/bin/../bin/gs
Reason: image not found

C'est en réalité Lilypond qui plante en générant le fichier png.
Il y a une commande à lancer dans le terminal (une fois uniquement) pour résoudre le problème :
install_name_tool -change ./bin/../sobin/libgs.8.70.dylib @executable_path/../lib/libgs.8.70.dylib gs

Astuce proposée par Christophe Pochon qui a longuement fouillé le Web pour la trouver.

Quand je veux compiler mon code avec mon modèle personnel j'ai l'erreur suivante :
Valeur ou type de données incorrect(e). Index hors de la plage définie.
puis la fenêtre d'édition des macro de LibreOffice s'ouvre, positionnée sur
la macro ParseOutput du répertoire Lilypond, ligne 152
sErrMsg(iNErr) = vArray(LBound(vArray)+4)

C'est tout simplement parce que l'instruction suivante :
\include "lilypond-book-preamble.ly"
est absente du modèle. Elle peut se situer à l'intérieur ou avant le bloc %{OOoLilyPondCode%}%{OOoLilyPondEnd%}

Solution proposée par Daniel Cartron.

Quand je veux compiler mon code avec mon modèle personnel j'ai l'erreur suivante :
The selected Template does not have an OOoLilyPondCode tag.
Please correct the template.

C'est tout simplement parce que le bloc :
%{OOoLilyPondCode%}%{OOoLilyPondEnd%} est absent du modèle. Or il est indispensable.

Solution proposée par Daniel Cartron.

Quand je veux compiler mon code avec mon modèle personnel j'ai l'erreur suivante :
The selected Template does not have an OOoLilyPondCode tag.
Please correct the template.

C'est tout simplement parce que le bloc :
%{OOoLilyPondCode%}%{OOoLilyPondEnd%} est absent du modèle. Or il est indispensable.

Solution proposée par Daniel Cartron.

Quand je veux compiler mon code avec mon modèle personnel j'ai l'erreur suivante :
Template error: missing end tag
"%{OOoLilyPondEnd%}"
for tag
"%{OOoLilyPondEnd%}".

Il y a quelque part une balise fermante :
%{OOoLilyPondEnd%} qui ne correspond à aucune balise ouvrante.
Vérifier que chaque balise ouvrante a sa balise fermante et réciproquement.

Solution proposée par Daniel Cartron.

Quand je veux compiler mon code avec mon modèle personnel j'ai l'erreur suivante :
Template error: missing end tag
"%{OOoLilyPondEnd%}"
for tag
"%{OOoLilyPondCode%}".

Il manque la balise fermante :
%{OOoLilyPondEnd%} correspondant à la balise ouvrante %{OOoLilyPondCode%}.
Ajouter celle-ci à la fin de la partie devant contenir le code.

Solution proposée par Daniel Cartron.

Crédits

OOoLilyPond n'existerait pas sans deux superbes logiciels, LilyPond et OpenOffice.org (ou LibreOffice). Par conséquent je tiens à remercier tous les développeurs de ces logiciels. Un grand merci également à Geoffroy Piroux qui a écrit la macro OOoLaTeX dont dérive OOoLilyPond. Merci également à Andy May pour les instructions d'installation pour Mac OS X, à Goran Rakic pour l'empaquetage sous forme d'extension et à Hugo Ribeiro et Francisco Villa pour la traduction de cette page Web en portugais et en espagnol.

Traduction française : Daniel Cartron.