Extension:Score
Attention: Le code et la configuration décrites ici pose un problème de sécurité majeur Administrateurs de site: Il vous est déconseillé de l'utiliser jusqu'à ce que ce problème de sécurité soit résolu. Problème: Vulnérable à des attaques par injection de code, parce que l'entrée utilisateur est passée directement à l'exécutable, par exemple par l'intermédiaire d' exec(), passthru() ou include() par exemple. Cela rend possible l'exécution de code arbitraire sur votre serveur, entre autre. Solution: Validez rigoureusement les entrée utilisateur et/ou échappez tous les caractères et valeurs qui ont un sens particulier dans les commandes exécutables. |
Score État de la version : instable |
|
---|---|
![]() |
|
Implémentation | Balise |
Description | Permet l'affichage de partitions musicales à l'aide de LilyPond |
Auteur(s) | Alexander Klauer, Étienne Beaulé |
Dernière version | 0.3.0 (2019-03-23) |
MediaWiki | 1.31+ |
PHP | 5.3+ |
Licence | Licence publique générale GNU v3.0 ou supérieur |
Téléchargement | README |
|
|
score |
|
Traduire l’extension Score sur translatewiki.net | |
Problèmes | Tâches ouvertes · Signaler un bogue |
L'extension Score permet l'affichage 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 wikitext en l'entourant 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' { 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 format 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 | obsolete Ceci sert à contrôler que l'image de la partition générée et associée à un fichier MIDI. | |
override_midi | Nom de fichier connu, c'est à dire 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'attibut midi ci-avant, ou l'attribut sound 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 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/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 | 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 entièrement LilyPond. Utilisez cette option si vous voulez créer des partitions plus complexes. Si le format de la partition (attribut lang) n'est pas 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à donné.
|
sound | 0 (default), 1 | S'il est mis à 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/les image(s) de la partitions.
|
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
The following packages are recommended:
- LilyPond
- Ghostscript
- ImageMagick
- FluidSynth
- Firejail
Cette extension utilise Lilypond pour générer les images des partitions de musique, donc vous il faut que Lilypond soit installé et opérationnel (Special:Version affiche la version de LilyPond). If you install LilyPond from a package, Ghostscript will also be installed, since LilyPond depends on Ghostscript. ImageMagick should be installed to trim the images, otherwise they will contain an excessive amount of whitespace.
For security reasons, it is highly recommended to install firejail to further restrict what LilyPond and Ghostscript can do if untrusted users are allowed to edit your 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 is the preferred method to convert MIDI files to audio files, however TiMidity++ is also supported.
Installation
- Téléchargez et placez le(s) fichiers (s) dans un répertoire appelé
Score
dans votre dossierextensions/
. - Ajoutez le code suivant à la fin de votre fichier LocalSettings.php :
wfLoadExtension( 'Score' ); $wgScoreTrim = true; $wgImageMagickConvertCommand = '/usr/bin/convert'; $wgShellRestrictionMethod = 'firejail';
- Créez un sous-répertoire
lilypond
dans votre $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.
Pour les utilisateurs de MediaWiki 1.26 ou précédents :
Les instructions ci-dessus décrivent la nouvelle procédure pour installer cette extension en utilisant wfLoadExtension()
.
Si vous avez besoin d'installer cette extension sur les précédentes versions de MediaWiki (1.26 ou antérieur), à la place de wfLoadExtension( 'Score' );
, vous devez utiliser :
require_once "$IP/extensions/Score/Score.php";
Configuration
L'extension possède actuellement les paramètres de configuration globaux suivants.
$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 retaillées avec ImageMagick. Si vous ne désirez pas de recadrage ou ne désirez pas installer ImageMagick, réglez $wgScoreTrim
à false
(faux).
$wgScoreAbc2Ly
Initialisez $wgScoreAbc2Ly
avec le chemin de l'exécutable du convertisseur ABC vers 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
).
$wgScoreTimidity
Initialisez $wgScoreTimidity
avec le chemin de votre exécutable TiMidity++ (typiquement /usr/bin/timidity
ou /usr/local/bin/timidity
).
Si $wgScoreFluidsynth
n'existe pas, TiMidity++ sera alors utilisé comme repli.
$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 dans un shell. Si vous avez des erreurs de dépassement mémoire, 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 la Wikipédia anglophone).
Voir également
- Help:Score sur la Wikipedia anglophone et la Partition musicale sur Wikisource donnent plus d'exemples de syntaxe LilyPond.
- Vexflow Générateur de musique SVG/Canvas open source
- notation LilyPond
- notation ABC
- dépot github vexflow
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. |