Extension:Score
L’extension Score requière la configuration d’un service externe, Shellbox , pour traiter de manière sécurisée les partitions musicales avec LilyPond. Veuillez passer en revue les informations données dans #Problèmes de sécurité et dans l’Avis de sécurité 2021 avant d’installer cette extension. |
![]() É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 |
|
|
score |
|
Téléchargements trimestriels | 23 (Ranked 117th) |
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
- La version originale de Extension:LilyPond a été écrite par Johannes E. Schindelin.
- Cette extension est basée sur une revue du code de l’Extension:LilyPond par Tim Starling.
- La version originale de Extension:ABC a été écrite par River Tarnell.
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 :
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' { \set Staff.midiInstrument = "tenor sax" f d f a d f e d cis a cis e a g f e }</score>
donne :
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>
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é
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 dossierextensions/
.
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 (habituellementimages
dans votre répertoire MediaWiki). Assurez-vous que le répertoire est accessible en écriture par votre serveur web. - 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
Pages containing <score>
tags are in the tracking category with message name 'score-use-category'.
Visit Special:TrackingCategories to find the localized title of this category on your wiki and show the pages in it, for example w:Category:Pages using the Score extension on the English Wikipedia.
Voir également
- Aide:Partitions sur Wikipédia et Wikisource:Partitions sur Wikisource donnent davantage d’exemples de la syntaxe LilyPond.
- notation LilyPond
- notation ABC
Cette extension est utilisée par au moins un des projets Wikimédia. Cela signifie probablement que l’extension est assez stable et fonctionnelle pour être utilisée sur des sites à fort trafic. Recherchez le nom de cette extension dans le CommonSettings.php de Wikimédia et dans le fichier de configuration InitialiseSettings.php pour situer les endroits où elle est installée. Une liste complète des extensions installées sur un Wiki donné peut être visualisée sur la page Special:Version de ce wiki. |
Cette extension est incluse dans les fermes de wikis ou les hôtes suivants et / ou les paquets : Cette liste ne fait pas autorité. Certaines fermes de wikis ou hôtes et / ou paquets peuvent contenir cette extension même s'ils ne sont pas listés ici. Vérifiez toujours cela avec votre ferme de wikis ou votre hôte ou votre paquet avant de confirmer. |