Plugin Lilyspip

Insérer des notations musicales dans vos articles

Le plugin Lilyspip permet d’insérer des notations musicales dans les articles et les forums d’un site sous SPIP en utilisant le logiciel libre Lilypond.

Site exemple : Musicorum.

Ce plugin est développé sur la zone et donc disponible par svn ou dans les snapshots.

Inspiré de la gestion des formules mathématiques de SPIP, il fonctionne en client/serveur avec un système de double cache.

Le serveur

Pour une question de sécurité la commande Lilypond est exécutée en mode safe ce qui en limite les fonctionnalités (include et importations de variables impossibles).

Le serveur ainsi que la procédure d’installation sont disponibles dans le dossier « install_server » du plugin. Si vous mettez en place votre propre serveur et souhaitez le rendre public, merci de le signaler sur le forum ci-dessous.

Les fichiers images PNG et MIDI sont générés par la commande puis sauvegardés dans le dossier cache du serveur.

Le client

Il faut spécifier l’adresse du serveur dans les paramètres du plugin et une image de test avec la version de Lilypond installée sur le serveur doit s’afficher :

Le code doit être saisi de la façon suivante :

<lilypond>
\score{
{a b c d}
\layout{}
\midi{}
}
</lilypond>

Si le serveur est installé en mode safe, il est nécessaire d’utiliser la notation anglaise pour le nom des notes :

Do Mi Fa Sol La Si
c d e f g a b

Une documentation partiellement traduite de Lilypond est accessible ici.

L’image apparait avec un lien vers le fichier MIDI et le code lilypond dans la description de l’image (attribut alt). Tous les fichiers sont conservés dans le dossier « local/cache-Lilypond » pour que le plugin ne fasse pas appel au serveur à chaque actualisation.


Pour encadrer et centrer l’image obtenue vous pouvez ajouter à votre feuille de style les lignes suivantes :

.lilypond {
	text-align:center;
	padding: 5px; 
	}
			
.lilypond img{
	border: 1px solid #BFBFBF;
	} 

Discussion

4 discussions

  • Alexandre

    Bonjour,

    je souhaiterai utiliser lilyspip mais je n’ai pas la possibilité d’installer de serveur pour faire tourner lilypond : est-ce qu’il en existe un public actuellement en fonction ?

    merci d’avance !

    Répondre à ce message

  • 6

    Bonjour,

    J’ai essayé d’installer un serveur en local, mais je n’arrives pas à m’en sortir, en gros ça donne rien.

    Je suis sous Ubuntu, j’ai installé lilypond à partir du script, imagemagick par les dépôts. J’ai copié server.php dans www/lilypond/ et créé le fichier www/lilypond/CACHE/lilyspip. Pour le fichier server.php j’ai modifié ces lignes :

    	$convert_bin = "/usr/bin/convert" ; // j'ai vérifié il est bien là
    	$lilypond_bin = "/usr/local/bin/lilypond" ; // lui aussi j'ai vérifié qu'il était là
    	$lilypond_version = "2.10.33" ; // j'ai changé le numero de version

    Mais quand je rentre http://127.0.0.1/lilypond/server.php dans le plugin ça n’affiche rien dans Prévisualisation.

    Que faire ?

    • chris28

      Bonjour,

      J’ai testé et cela a fonctionné en local (SPIP 1.9.2d, xampp, php5, server.php).
      Cela peut être un problème de droit sur le dossier CACHE/lilyspip qui doit être ouvert en écriture pour tous. Ce dossier doit aussi se situer au même niveau que votre fichier server.php. Ensuite si vous voyez des fichiers dans votre dossier CACHE/lilyspip vous pouvez débugger en commentant les lignes

      	//efface fichiers ly log et ps du CACHE
      
      	//if (@file_exists($fichier_ps) && chmod($fichier_ps,0777)) unlink($fichier_ps);
      
      	//if (@file_exists($fichier_source) && chmod($fichier_source,0777)) unlink($fichier_source);	
      
      	//if (@file_exists($fichier) && chmod($fichier,0777)) unlink($fichier);

      Christophe

    • nickel chrome !

      ça devait être l’histoire des droits. Je suis bête de pas y avoir pensé !

      Juste une petite chose Dans le readme.txt il est indiqué « Créer le dossier « CACHE/lilyserv/ » à la racine du dossier Web. » alors que c’est plutôt CACHE/lilyspip/

    • Bon apprement, j’ai crié victoire bien trop vite :(

      J’ai bien l’image prévisualisation dans la apge de configuration, mais c’est une fois dans un article que ça se gate.

      En essayant J’ai du bon tabac :

      <lilypond>
      \relative c' {
      \time 2/4
      c8 d e c d4 d8 e f4 f e e c8 d e c d4 d8 e f4 g c,2
      }
      </lilypond>

      En effet, cela affiche une image blanche avec juste le texte /CACHE/lilyspip/6b9130afac9b6af5a3cd03e4100133e4.

      Quand le vais dans CACHE/lilyspip, je trouves bien 6b9130afac9b6af5a3cd03e4100133e4.png mais aussi un fichier 6b9130afac9b6af5a3cd03e4100133e4.ly contenant :

      \version "2.10.33"
      	\header {
      		tagline= ""
      	}
      	\paper {
      		ragged-right = ##t
      	}
      	
      \relative c' {
      \time 2/4
      c8 d e c d4 d8 e f4 f e e c8 d e c d4 d8 e f4 g c,2
      }

      Actuellement, j’ai installé lilypond chez moi et je teste avec un site en ligne (par mon ip). Si vous voulez voir, je peux vous indiquer l’ip de mon serveur.

    • chris28

      J’ai essayé le code lilypond « j’ai du bon tabac » en local sans problème.

      Quelle version du serveur utilisez-vous ? J’ai eu moi aussi le texte /CACHE/lilyspip/... en utilisant la version bashserver car il n’arrivait pas à exécuter lilypond (donc pas de log et insertion du nom dans l’image).

      Je n’ai plus aucun accès à un serveur dédié et ne peux donc plus utiliser lilyspip. Si vous (ou quelqu’un d’autre passant sur ce forum) montez un serveur web lilypond merci de me contacter.

      Christophe

    • J’ai la même chose en bashserver et en server...

      J’ai lilypond 2.10.33. Installé par les depots.

    • chris28

      Peut-être encore un problème de droits. Le script lilypond.sh est-il exécutable et en lecture pour tous. Si PHP est mode safe il faut placer le script dans un dossier spécifique safe_mode_exec_dir (configuration dans php.ini). Le fichier bashserver.php est-il accessible de l’extérieur ?

    Répondre à ce message

  • Bonjour,

    Apparemment http://www.lilyserv.net/bashserver.php n’est plus dispo :-(
    Existe-t-il d’autres serveurs lilypond pour faire tourner cette belle contrib ?
    J’ai cherché en vain et n’ai malheureusement pas la possibilité de l’installer sur un serveur dédié.

    fred

    Répondre à ce message

  • 1

    bonjour
    je suis en spip 1.9.2 et j’utilise lily 1.1 stable

    Il faut spécifier l’adresse du serveur

    mais où est il ?

    -  http://monsite.com/plugins/lilyspip/install_server/server.php
    -  http://monsite.com/plugins/lilyspip/install_server/bashserver.php

    faut il déplacer le fichier server.php à la racine ?

    merci à quelqu’un.
    je suis en spip 1.9.2 et j’utilise lily 1.1 stable

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom