Extension:Score

This page is a translated version of the page Extension:Score and the translation is 100% complete.
MediaWiki 拡張機能マニュアル
OOjs UI icon advanced-invert.svg
Score
リリースの状態: 安定
Lilytest1.png
実装 タグ
説明 LilyPond で楽譜をレンダリングできるようにする
作者 Alexander Klauer, Étienne Beaulé
最新バージョン 0.3.0 (2019-03-23)
MediaWiki 1.36+
PHP 5.3+
ライセンス GNU 一般公衆利用許諾書 3.0 以降
ダウンロード
README.md
  • $wgScoreShell
  • $wgScorePath
  • $wgScoreAbc2Ly
  • $wgScoreFluidsynth
  • $wgScoreLame
  • $wgScoreEnvironment
  • $wgScoreLilyPond
  • $wgWikibaseMusicalNotationLineWidthInches
  • $wgScoreImageMagickConvert
  • $wgScoreLilyPondFakeVersion
  • $wgScoreFileBackend
  • $wgScoreTrim
  • $wgScoreGhostscript
  • $wgMusicalNotationEnableWikibaseDataType
  • $wgScoreOfferSourceDownload
  • $wgScoreMaxLength
  • $wgScoreDirectory
  • $wgScoreDisableExec
  • $wgScoreSafeMode
  • $wgScoreSoundfont
score
translatewiki.net で翻訳を利用できる場合は、Score 拡張機能の翻訳にご協力ください

使用状況とバージョン マトリクスを確認してください。

問題点 未解決のタスク · バグを報告

Score 拡張機能は、LilyPond を使用して楽譜を PNG 画像としてレンダリングできるようにします。またそれらを音声ファイルや MIDI ファイルに変換することもできます。

謝辞

使用法

設定の後、‎<score>...‎</score> タグ内に簡単な LilyPond 記法をウィキテキストに埋め込むことができます。例えば:

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

変換結果:

 

一般的な形式でscoreタグに属性を指定することもできます

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

例えば:

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

変換結果:

 

使用できる属性は次の通りです。

属性 許容される値 効果
lang ABC, lilypond (default) 楽譜の言語を設定します。例えばABC記譜法を提供するには以下を使用します:
<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 これを使い、レンダリングした楽譜の画像を MIDI ファイルとリンクするかどうかコントロール。
override_midi 既知のファイル名、たとえば override_midi="name"と入力すると、[[File:name]] は赤リンクを回避 (廃止予定) 代わりに閉じる‎</score>タグの後に[[File:superior midi filename.mid]]タグを追加してください。
LilyPond で音声ファイルを作成せず、指定した MIDI ファイルを使用。 midi 属性(前述を参照)または音声属性(後述を参照)とともにこの属性を使います。 この属性が役に立つのは、既に MIDI ファイルがあり、LilyPond が生成するはずのものよりも質が高い場合です。
override_audio 既知のファイル名、たとえば override_audio="name"と入力すると、[[File:Name]] は赤リンクを回避 (廃止予定) 代わりに閉じる‎</score>タグの後に[[File:superior audio filename.oga]]タグを追加してください。
楽譜の(複数の)画像に続き、HTMLコードに指定したファイル名のメディアを埋め込みます。 音声属性の代用に使えます。(下記を参照) これはたとえば自動生成した音声ファイルよりも質が高く適応する音声ファイルがある場合に、役に立ちます。 もちろん、この事例では両方の属性を除去することも可能で、ご希望ならページには手動でファイルを追加してください。
override_ogg override_audioに対してダブルに非推奨のエアリアス。
raw 0 (default), 1 設定値を 1 にすると、楽譜のコードは完成した LilyPond 形式のファイルとして認識されます。 より複雑な楽譜を作成するには、このオプションをお使いください。 もし楽譜の言語(lang 属性) を lilypond に指定しないと、 属性は無視されます。 既定 (raw=0の場合) では、入力したコードは \score{...} ブロックに包まれ、もし未指定なら既定値の \layout{...} ブロックと \midi{...} ブロックとともに適用されます。
sound 0 (default), 1 設定値を 1 にすると、Extension:TimedMediaHandler をインストールして設定してある場合は、楽譜から音声ファイルを生成します。 音声プレイヤーが楽譜の(複数の)画像に続いて HTML コードに埋め込まれます。
vorbis 0 (default), 1 (廃止予定) soundのエアリエス。

LilyPond 言語

歌詞は以下のようにして追加できます:

<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>
 

上級の利用者には\set Staff.midiInstrumentコマンドの利用でMIDI楽器を変更できます。

要件

以下のパッケージが推奨されます:

  • LilyPond
  • Ghostscript
  • ImageMagick
  • FluidSynth
  • Firejail

この拡張機能は LilyPond を使用してスコア画像をレンダリングするため、LilyPond をインストールする必要があります (Special:Version に LilyPond のバージョンが表示されます)。 パッケージから LilyPond をインストールした場合、依存するアプリケーションとして Ghostscript も同時にインストールされます。 画像の切り出しには ImageMagick のインストールが必要で、さもないと画像は不要な余白がまま保存されます。

LilyPond および Ghostscript の挙動に制限をかけると、信頼されない利用者が皆さんのウィキの編集を許可された場合の対策ができますので、MyLanguage/firejail を必ずインストールするよう強く推奨されます。

拡張機能は、LilyPond によって生成された MIDI ファイルから音声ファイルを作成することもできます。この機能を利用するには、Extension:TimedMediaHandler をインストールする必要があります。

MIDI ファイルから音声ファイルに変換するには FluidSynth が推奨されますが、TiMidity++ もサポート対象です。 supported.

セキュリティ上の問題

 
LilyPond のセキュリティを保つため Shellbox を使い、ご利用のウィキを保護しましょう!

Score では LilyPond をセーフモードで使いますが、セーフモードをエスケープする既知の脆弱性に未対応のため、予想外の実行を導く可能性があります。

ご利用のウィキで編集権限を有する人全員に対し、全幅の信頼を寄せることができない場合は、Shellbox の利用により Lilypond に制限をかけるよう強く推奨されます。サーバに予防措置を講じる設定について、詳細は Shellbox#Server setupと、下記のMediaWikiにおける設定をご参照ください。さらに、必ずセキュリティ修正済みの LilyPond 最新版 (2.22.0+) もしくは配布パッケージを使ってください(たとえばDebian 版。)常にセーフモードを有効にすることは必須で、予防措置をしていても防衛をもう一層、高めるためです。セーフモードでは使えない特定の機能があり、その対応には LilyPond 側で調整して当該の機能をセーフモードでも使えるようにします。

インストール

See the extension's README.md for detailed installation instructions.
  • ダウンロードして、ファイルを extensions/ フォルダー内の Score という名前のディレクトリ内に配置します。
  • 以下のコードを LocalSettings.php の末尾に追加します:
    wfLoadExtension( 'Score' );
    $wgScoreTrim = true;
    $wgImageMagickConvertCommand = '/usr/bin/convert';
    $wgShellboxUrl = '... address to Shellbox ...';
    $wgShellboxSecretKey = '... your secret key ...';
    
  • ご利用の$wgUploadDirectory にサブディレクトリを作成してlilypondと命名します(通常の保存先は MediaWiki 配下のimages というディレクトリ)。 ご利用のWebサーバ上でそのディレクトリが書き込み可能であることを確認願います。
  •   完了 – ウィキの「Special:Version」に移動して、拡張機能が正しくインストールされたことを確認します。

MediaWiki 1.26 以前を稼働させている利用者へ:

上記の手順では、wfLoadExtension() を使用してこの拡張機能をインストールする新しい方法を記載しています。 この拡張機能をこれらの過去のバージョン (MediaWiki 1.26 以前) にインストールする必要がある場合は、wfLoadExtension( 'Score' ); の代わりに以下を使用する必要があります:

require_once "$IP/extensions/Score/Score.php";

設定

拡張機能に備わったグローバルな設定パラメータには、次のものが含まれます。

$wgScoreLilyPond

$wgScoreLilyPond のパスを実行可能な LilyPond に設定(通常は /usr/bin/lilypondまたは/usr/local/bin/lilypond)。

$wgScoreTrim

$wgScoreTrimというブール値は既定で$wgUseImageMagickの値です。trueの場合、実行結果の score PNG 画像を ImageMagick でトリミング加工できます。それが不要の場合もしくは ImageMagick をインストールしたくない場合、$wgScoreTrimfalseに設定します。

$wgScoreAbc2Ly

ABC 記法の$wgScoreAbc2Ly のパスを実行可能な LilyPond 変換機能に設定(通常は /usr/bin/abc2lyまたは/usr/local/bin/abc2ly)。

$wgScoreFluidsynth

$wgScoreFluidsynth のパスを実行可能な FluidSynth に設定(通常は/usr/bin/fluidsynthまたは/usr/local/bin/fluidsynth)。

$wgScoreSoundfont

$wgScoreSoundfontSoundFontファイルのパスに設定(通常は/usr/share/sounds/sf2/FluidR3_GM.sf2 または /usr/share/sounds/sf2/FluidR3_GS.sf2)。

$wgScoreLame

$wgScoreTimidity のパスを実行可能なLAMEに設定(通常は/usr/bin/lameまたは/usr/local/bin/lame)。生成する音声ファイルは必ず MP3 になるという制約があります。

注記

この拡張機能はある程度のセキュリティ対策としてShellbox上でさまざまなバイナリを実行します。そのためメモリ不足のエラー発生時には、$wgMaxShellMemory の拡張が必要な場合があります。

楽譜の検索

楽譜を含むページにはページ プロパティに「score」というセットが備わっています。楽譜のあるページの検索には 特別:プロパティがあるページ を使います。(日本語版ウィキペディアでは「プロパティ名:」欄で score を選択して実行。)

関連項目