Extension:Score

From mediawiki.org
This page is a translated version of the page Extension:Score and the translation is 100% complete.
Manuel des extensions MediaWiki
Score
État de la version : stable
Implémentation Balise
Description Permet le rendu de partitions musicales à l’aide de LilyPond
Auteur(s) Alexander Klauer, Étienne Beaulé
Dernière version 0.3.0 (2019-03-23)
MediaWiki 1.36+
PHP 5.3+
Licence Licence publique générale GNU v3.0 ou supérieur
Téléchargement
README.md
  • $wgScorePath
  • $wgScoreAbc2Ly
  • $wgScoreFluidsynth
  • $wgScoreLame
  • $wgScoreEnvironment
  • $wgScoreLilyPond
  • $wgWikibaseMusicalNotationLineWidthInches
  • $wgScoreImageMagickConvert
  • $wgScoreLilyPondFakeVersion
  • $wgScoreFileBackend
  • $wgScoreDirectory
  • $wgScoreTrim
  • $wgScoreGhostscript
  • $wgMusicalNotationEnableWikibaseDataType
  • $wgScoreOfferSourceDownload
  • $wgScoreMaxLength
  • $wgScoreDebugOutput
  • $wgScoreUseSvg
  • $wgScoreDisableExec
  • $wgScoreSafeMode
  • $wgScoreSoundfont
score
Téléchargements trimestriels 25 (Ranked 125th)
Utilisé par les wikis publics 918 (Ranked 265th)
Traduire l’extension Score sur translatewiki.net si elle y est disponible
Problèmes Tâches ouvertes · Signaler un bogue

L’extension Score permet le rendu de partitions musicales en tant qu’images PNG en utilisant LilyPond et peut aussi les transformer en fichier audio ou MIDI.

Remerciements

Utilisation

Après l’installation, vous pouvez intégrer du code LilyPond simple dans votre wikicode en l’encadrant avec des balises ‎<score>...‎</score>. Par exemple :

<score>\relative c' { f d f a d f e d cis a cis e a g f e }</score>

donne :

\relative c' { f d f a d f e d cis a cis e a g f e }

Vous pouvez aussi préciser les attributs dans les balises score, sous la forme générale

<score attribute1="value1" attribute2="value2"></score>.

Par exemple :

<score sound="1">\relative c' { f d f a d f e d cis a cis e a g f e }</score>

donne :

\relative c' { f d f a d f e d cis a cis e a g f e }

Les attributs suivants sont disponibles :

Attribut Valeurs autorisées Effet
lang ABC, lilypond (default) Définit le langage de la partition. Par exemple, pour fournir une partition en notation ABC, vous pouvez utiliser :
<score lang="ABC">
X:1
M:C
L:1/4
K:C
C, D, E, F,|G, A, B, C|D E F G|A B c d|
e f g a|b c' d' e'|f' g' a' b'|]
</score>
midi (supprimé) Ceci sert à contrôler si l’image de la partition générée est associée à un fichier MIDI.
override_midi Nom de fichier connu, c’est-à-dire que si override_midi="name" est fourni, [[File:name]] n’affiche pas de lien en rouge. (obsolète) Vous pouvez à la place ajouter un lien wiki [[File:superior midi filename.mid]] après la balise fermante ‎</score>.
Utilise le fichier MIDI spécifié au lieu d’en générer un avec LilyPond. Utilisez cet attribut avec l’attribut midi (voir ci-avant) ou l’attribut sound (voir ci-après). Cet attribut est utile si vous avez déjà un fichier MIDI dont la qualité est supérieure à ce que LilyPond peut générer.
override_audio Nom de fichier connu, c’est-à-dire que si override_audio="name" est fourni, [[File:Name]] n’affiche pas de lien en rouge. (obsolète) Vous pouvez à la place ajouter un lien wiki [[File:superior audio filename.oga]] après la balise fermante ‎</score>.
Inclure le média spécifié par le nom de fichier dans le HTML après la (ou les) image(s) de la partition. Ceci est une alternative de l’attribut sound (voir ci-après). Cela peut être utile par exemple si vous avez un fichier audio convenable de qualité supérieure, comparé au fichier audio généré automatiquement. Bien sûr si vous préférez, vous pouvez encore omettre les deux attributs dans ce cas, et ajouter le fichier manuellement à la page.
override_ogg (obsolète) Alias doublement obsolète pour override_audio.
raw 0 (default), 1 S’il vaut 1, le format de la partition est interprété comme un fichier LilyPond complet. Utilisez cette option si vous voulez créer des partitions plus complexes. Si le langage de la partition (attribut lang) n’est pas défini comme lilypond, cet attribut est ignoré. Par défaut (quand raw=0), le code fourni est contenu dans un bloc \score{...}, en même temps que les blocs par défaut \layout{...} et \midi{...}, s’il n’est pas déjà fourni.
sound 0 (default), 1 S’il est défini à 1, un fichier audio sera généré pour la partition si vous avez installé et configuré Extension:TimedMediaHandler . Un lecteur audio sera inséré dans le HTML après la (ou les) image(s) de la partition.
vorbis 0 (default), 1 (obsolète) Alias pour sound.

Le langage LilyPond

Les paroles peuvent être ajoutées de cette manière :

<score>
\relative c'' { \time 4/4 \key c \major 
c4 g8 g a4 g r b^> c^> r \bar "|." } 
\addlyrics { Shave and a hair -- cut: two bits. }
</score>
\relative c'' { \time 4/4 \key c \major 
  c4 g8 g a4 g r b^> c^> r \bar "|." } 
  \addlyrics { Shave and a hair -- cut: two bits. }

Pour les utilisateurs avancés, la commande \set Staff.midiInstrument peut être utilisée pour faire jouer un autre instrument MIDI.

Pré-requis

Les paquets suivants sont recommandés :

  • LilyPond
  • Ghostscript
  • ImageMagick
  • FluidSynth
  • Firejail

Cette extension utilise Lilypond pour effectuer le rendu des images des partitions musicales, donc il faut que Lilypond soit installé et opérationnel (Special:Version affiche la version de LilyPond). Si vous installez LilyPond depuis un paquet logiciel, Ghostscript sera également installé puisque LilyPond dépend de Ghostscript. ImageMagic devrait être installé pour rogner les images, sinon elles contiendront des marges blanches excessives.

Pour des raisons de sécurité, il est vivement recommandé d’installer firejail pour restreindre davantage ce que peuvent faire LilyPond et Ghostscript si des utilisateurs non approuvés sont autorisés à modifier votre wiki.

L’extension est également capable de créer des fichiers audio à partir des fichiers MIDI générés par Lilypond. Si vos souhaitez utiliser cette fonctionnalité, vous devez installer Extension:TimedMediaHandler .

FluidSynth est la méthode préférée pour convertir des fichiers MIDI en fichiers audio, cependant TiMidity++ est également pris en charge.

Problèmes de sécurité

Utilisez Shellbox pour sécuriser LilyPond et protéger votre wiki !

Score utilise LilyPond en mode sûr, cependant il existe des vulnérabilités connues non résolues d’échappement au mode sûr, pouvant conduire à une exécution arbitraire.

Si vous ne pouvez faire confiance à quiconque qui dispose de privilèges de modification sur votre wiki, il est vivement recommandé de configurer le confinement de LilyPond en utilisant Shellbox . Voir Shellbox#Server setup pour les détails sur la façon de configurer le serveur confiné et ci-dessous pour configurer MediaWiki afin qu’il l’utilise. Également, assurez-vous que vous utilisez une version récente de LilyPond (2.22.0+) ou un paquet de distribution (par exemple de Debian) qui fournit des correctifs de sécurité. Garder activé le mode sûr, même avec le confinement ajouté comme une couche supplémentaire de défense. Certaines fonctionnalités ne marcheront pas avec le mode sûr, le moyen de le corriger est de modifier LilyPond pour autoriser ces fonctionnalités en mode sûr.

Installation

See the extension's README.md for detailed installation instructions.
  • Téléchargez et placez le(s) fichier(s) dans un répertoire appelé Score dans votre dossier extensions/.
    Les développeurs et les contributeurs au code doivent à la place installer l'extension à partir de Git en utilisant:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Score
  • Ajoutez le code suivant à la fin de votre fichier LocalSettings.php  :
    wfLoadExtension( 'Score' );
    $wgScoreTrim = true;
    $wgImageMagickConvertCommand = '/usr/bin/convert';
    $wgShellboxUrl = '... address to Shellbox ...';
    $wgShellboxSecretKey = '... your secret key ...';
    
  • Créez un sous-répertoire lilypond dans le répertoire des téléversements indiqué par votre paramètre $wgUploadDirectory (habituellement images dans votre répertoire MediaWiki). Assurez-vous que le répertoire est accessible en écriture par votre serveur web.
  • Yes Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.

Configuration

Voici quelques un des paramètres globaux de configuration de l’extension :

$wgScoreLilyPond

Initialisez la variable $wgScoreLilyPond avec le chemin de votre exécutable LilyPond (typiquement /usr/bin/lilypond ou /usr/local/bin/lilypond).

$wgScoreTrim

La variable $wgScoreTrim est un booléen qui a par défaut la valeur de $wgUseImageMagick. S’il est à true (vrai), les images PNG de la partition résultante sont rognées avec ImageMagick. Si vous ne désirez pas ce rognage ou ne désirez pas installer ImageMagick, réglez $wgScoreTrim à false (faux).

$wgScoreAbc2Ly

Initialisez $wgScoreAbc2Ly avec le chemin de l’exécutable du convertisseur de notation ABC en LilyPond (typiquement /usr/bin/abc2ly ou /usr/local/bin/abc2ly).

$wgScoreFluidsynth

Initialisez $wgScoreFluidsynth avec le chemin de votre exécutable Fluidsynth (typiquement /usr/bin/fluidsynth ou /usr/local/bin/fluidsynth).

$wgScoreSoundfont

Initialisez $wgScoreSoundfont avec le chemin de votre fichier SoundFont (typiquement /usr/share/sounds/sf2/FluidR3_GM.sf2 ou /usr/share/sounds/sf2/FluidR3_GS.sf2).

$wgScoreLame

Initialisez $wgScoreLame avec le chemin de votre exécutable LAME (typiquement /usr/bin/lame ou /usr/local/bin/lame). Nécessaire si le fichier audio généré doit être au format MP3.

Remarques

Cette extension exécute divers binaires en les confinant avec Shellbox, qui fournit plus de sécurité. Si vous avez des erreurs de « mémoire insuffisante », il faudra peut-être augmenter la valeur de $wgMaxShellMemory .

Rechercher des partitions

Les pages incluant des partitions ont la propriété de page « score » activée. Vous pouvez rechercher les pages incluant une partition en utilisant la Special:PagesWithProp (Exemple de recherche pour l’édition anglophone de Wikipédia).

Voir également