본문 바로가기
미디어위키

Extension Score

by 다움위키 2024. 10. 31.

Score 확장은 LilyPond를 사용하여 악보를 PNG 이미지로 렌더링하는 것을 허용하고 오디오 및 MIDI 파일로 변환할 수도 있습니다.

Acknowledgements

Usage

설정 후, <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>

다음을 산출합니다:

다음과 같은 속성을 사용할 수 있습니다:

The LilyPond language

가사는 다음과 같이 추가될 수 있습니다:

<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 악기를 변경할 수 있습니다.

Prerequisites

다음 패키지가 추천됩니다:

  • LilyPond
  • Ghostscript
  • ImageMagick
  • FluidSynth
  • Firejail

이 확장은 LilyPond를 사용하여 악보 이미지를 렌더링하므로, 작동하는 LilyPond 설치가 필요합니다 (Special:Version은 LilyPond 버전을 표시합니다). 만약 패키지에서 LilyPond를 설치하면, LilyPond가 Ghostscript에 의존하기 때문에 Ghostscript도 설치됩니다. ImageMagick을 설치하여 이미지를 트리밍해야 하며, 그렇지 않으면 과도한 공백이 포함됩니다.

보안상의 이유로, 신뢰할 수 없는 사용자가 위키를 편집할 수 있도록 허용했으면 LilyPond와 Ghostscript가 할 수 있는 일을 더욱 제한하기 위해 firejail을 설치하는 것이 좋습니다.

이 확장 기능은 LilyPond에서 생성된 MIDI 파일에서 오디오 파일을 생성할 수도 있습니다. 이 기능을 사용하려면 Extension:TimedMediaHandler가 설치되어 있어야 합니다.

FluidSynth는 MIDI 파일을 오디오 파일로 변환하는 데 가장 선호되는 방법이지만 TiMidity++도 지원됩니다.

Security concerns

Score는 안전 모드에서 LilyPond를 사용하지만, 임의 실행으로 이어지는 안전 모드 탈출 취약점이 알려져 있지만 수정되지 않았습니다.

만약 위키에서 편집 권한이 있는 모든 사람을 절대적으로 신뢰하지 못한다면, Shellbox를 사용하여 lilypond의 컨테인먼트를 설정하는 것이 좋습니다. 컨테인먼트 서버를 설정하는 방법에 대한 자세한 내용은 Shellbox#Server setup을 참조하고, MediaWiki에서 컨테인먼트 서버를 사용하도록 구성하는 방법은 아래를 참조하세요. 역시, 보안 수정 사항이 있는 LilyPond (2.22.0+)의 최신 버전이나 배포 패키지 (예를 들어, Debian에서 배포)를 사용하고 있는지 확인하십시오. 컨테인먼트를 추가 방어 계층으로 사용하더라도 안전 모드를 활성화하십시오. 특정 기능은 안전 모드에서 작동하지 않으며, 이를 수정하려면 LilyPond를 수정하여 안전 모드에서 해당 기능을 허용해야 합니다.

Installation

See the extension's README.md for detailed installation instructions.

미디어위키 확장 내려받기 지면에서 해당 판을 내려받아서 정해진 위치로 이동시킵니다.

미디어위키 설정 LocalSettings.php 파일에 다음을 추가합니다:

wfLoadExtension( 'Score' );
$wgScoreTrim = true;
$wgImageMagickConvertCommand = '/usr/bin/convert';
$wgShellboxUrl = '... address to Shellbox ...';
$wgShellboxSecretKey = '... your secret key ...';

$wgUploadDirectory (보통 미디어위키 디렉터리에 있는 images라는 디렉터리)에 lilypond라는 하위 디렉터리를 만듭니다. 웹 서버에서 디렉토리에 쓸 수 있는지 확인하십시오.

  • cd /var/www/html/w/images
  • sudo mkdir lilypond
  • sudo chown www-data lilypond

Special:Version에 접근해서 확장이 정상적으로 설치가 되었는지 확인을 합니다.

Configuration

다음은 확장 프로그램의 일부 전역 구성 매개변수입니다.

$wgScoreLilyPond

$wgScoreLilyPond를 LilyPond 실행 파일 (전형적으로 /usr/bin/lilypond 또는 /usr/local/bin/lilypond)로 설정합니다.

$wgScoreTrim

$wgScoreTrim은 $wgUseImageMagick의 값으로 기본 설정된 부울 값입니다. 만약 true이면, 결과 score PNG 이미지는 ImageMagick으로 트리밍됩니다. aksdir 트리밍을 원하지 않거나, ImageMagick을 설치하지 않으면, $wgScoreTrim을 false로 설정하십시오.

$wgScoreAbc2Ly

$wgScoreAbc2Ly를 LilyPond 변환기 실행 파일로의 ABC의 경로 (전형적으로 /usr/bin/abc2ly 또는 /usr/local/bin/abc2ly)로 설정합니다.

$wgScoreFluidsynth

$wgScoreFluidsynth를 Fluidsynth 실행 파일 (전형적으로 /usr/bin/fluidsynth 또는 /usr/local/bin/fluidsynth)의 경로로 설정합니다.

$wgScoreSoundfont

$wgScoreSoundfont를 soundfont 파일 (전형적으로 /usr/share/sounds/sf2/FluidR3_GM.sf2 또는 /usr/share/sounds/sf2/FluidR3_GS.sf2)의 경로로 설정합니다.

$wgScoreLame

$wgScoreLame를 Lame 실행 파일 (전형적으로 /usr/bin/lame 또는 /usr/local/bin/lame)로 설정합니다. 생성된 오디오 파일이 MP3인 경우 필수입니다.

Remarks

이 확장 기능은 Shellbox에서 다양한 바이너리를 실행하여 보안을 제공합니다. 만약 "out of memory" 오류가 발생하면, $wgMaxShellMemory를 늘려야 할 수도 있습니다.

Finding scores

Score가 있는 페이지에는 "score" 페이지 속성이 설정됩니다. Special:PagesWithProp을 사용하여, score가 있는 페이지를 찾을 수 있습니다. (Example query for the English Wikipedia.)

See also