Extensão:Partitura
A extensão Partitura (Score) requer a configuração de um serviço externo, Shellbox , para processar partituras musicais com segurança via LilyPond. Por favor, revise as informações em #Preocupações de segurança e no Aviso de segurança de 2021 antes de instalar esta extensão. |
Score Estado da versão: estável |
|
---|---|
Implementação | Marcação |
Descrição | Permite a renderização de partituras musicais com o LilyPond |
Autor(es) | Alexander Klauer, Étienne Beaulé |
Última versão | 0.3.0 (2019-03-23) |
MediaWiki | 1.36+ |
PHP | 5.3+ |
Licença | GNU GPL (Licença Pública Geral) 3.0 ou superior |
Download | README.md |
|
|
score |
|
Quarterly downloads | 30 (Ranked 102nd) |
Public wikis using | 918 (Ranked 265th) |
Para traduzir a extensão Score, verifique sua disponibilidade no translatewiki.net | |
Problemas | Tarefas em aberto · Relatar um bug |
A extensão Partituras (Score) permite a renderização de partituras musicais como imagens PNG usando o LilyPond e também pode transformá-las em arquivos de áudio e MIDI.
Reconhecimentos
- A Extension:LilyPond original foi escrita por Johannes E. Schindelin.
- Esta extensão é baseada em uma revisão do código da Extension:LilyPond feita por Tim Starling.
- A Extension:ABC original foi escrita por River Tarnell.
Uso
Após instalar, você pode incorporar a notação LilyPond simples em seu texto wiki dentro de uma marcação (tag) <score>...</score>
. Por exemplo:
<score>\relative c' { f d f a d f e d cis a cis e a g f e }</score>
produz:
Você também pode especificar atributos para as marcações (tags) de partitura (score) na forma geral
<score attribute1="value1" attribute2="value2">…</score>.
Por exemplo:
<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>
produz:
Os seguintes atributos estão disponíveis:
Atributo | Valores permitidos | Efeito |
---|---|---|
lang | ABC, lilypond (default) | Define a linguagem da partitura. Por exemplo, para fornecer uma partitura em notação ABC, você pode usar: <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 | (removido) Isso é usado para controlar se a imagem da partitura renderizada está vinculada a um arquivo MIDI. | |
override_midi | Nome de arquivo conhecido, ou seja, se override_midi="name" for fornecido, [[File:name]] não produzirá uma ligação (link) vermelha |
(obsoleto) Em vez disso, você pode adicionar um wikilink [[File:superior midi filename.mid]] após a marcação (tag) de fechamento </score> .Usa o arquivo MIDI especificado em vez de gerar um com LilyPond. Use este atributo junto com o atributo midi (veja antes) ou o atributo sound (veja mais tarde). Este atributo é útil se você já possui um arquivo MIDI cuja qualidade é superior à do que seria gerado por LilyPond. |
override_audio | Nome de arquivo conhecido, ou seja, se override_audio="name" for fornecido, [[File:Name]] não produzirá uma ligação (link) vermelha |
(obsoleto) Em vez disso, você pode adicionar um wikilink [[File:superior audio filename.oga]] após a marcação (tag) de fechamento </score> .Incorpora a mídia especificada pelo nome do arquivo na HTML após a(s) imagem(s) da partitura. Esta é uma alternativa ao atributo sound (veja mais adiante). Pode, por exemplo, ser útil se você tiver um arquivo de áudio adequado e de qualidade superior em comparação com o arquivo de áudio que é gerado automaticamente. É claro que você ainda pode omitir ambos os atributos neste caso e adicionar o arquivo manualmente à página, se preferir. |
override_ogg | (obsoleto) Alias duplamente obsoleto para override_audio. | |
raw | 0 (default), 1 | Se definido como 1, o código da partitura (score) será interpretado como um arquivo LilyPond completo. Use esta opção se você desejar criar partituras mais complexas. Se a linguagem da partitura (atributo lang) não estiver definida como "lilypond", este atributo será ignorado. Por padrão (quando raw=0), o código fornecido é agrupado em um bloco \score{...} , junto com os blocos padrões \layout{...} e \midi{...} , se ainda não tiverem sido fornecidos.
|
sound | 0 (default), 1 | Se definido como 1, um arquivo de áudio será gerado para a partitura, desde que você tenha instalado e configurado a Extensão:TimedMediaHandler . Um reprodutor de áudio será incorporado à HTML após a(s) imagem(s) da partitura. |
vorbis | 0 (default), 1 | (obsoleto) Alias para sound. |
A linguagem LilyPond
As letras podem ser adicionadas assim:
<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>
Para usuários avançados, o comando \set Staff.midiInstrument
pode ser usado para alterar o instrumento MIDI do som.
Pré-requisitos
Os seguintes pacotes são recomendados:
- LilyPond
- Ghostscript
- ImageMagick
- FluidSynth
- Firejail
Esta extensão usa o LilyPond para renderizar imagens de partituras, então você precisa de uma instalação funcional do LilyPond (Special:Version mostra a versão do LilyPond). Se você instalar o LilyPond a partir de um pacote, o Ghostscript também será instalado, já que o LilyPond depende do Ghostscript. O ImageMagick deve ser instalado para cortar as imagens, caso contrário elas conterão uma quantidade excessiva de espaços em branco.
Por razões de segurança, é altamente recomendado instalar o firejail para restringir ainda mais o que o LilyPond e o Ghostscript podem fazer se usuários não confiáveis puderem editar sua wiki.
A extensão também é capaz de criar arquivos de áudio a partir de arquivos MIDI gerados pelo LilyPond. Se quiser usar esta funcionalidade, você precisa ter Extensão:TimedMediaHandler instalado.
O FluidSynth é o método preferido para converter arquivos MIDI em arquivos de áudio, porém o TiMidity++ também é compatível.
Preocupações de segurança
A Score usa o LilyPond no modo de segurança, no entanto, existem vulnerabilidades de escape não corrigidas no modo de segurança conhecidas que levam à execução arbitrária.
Se você não confia totalmente em todos que têm privilégios de edição em sua wiki, é altamente recomendável configurar a contenção do lilypond usando Shellbox . Veja Shellbox#Configuração do servidor para detalhes sobre como configurar o servidor contido, e abaixo para configurar o MediaWiki para usá-lo. Além disso, certifique-se de estar usando uma versão recente do LilyPond (2.22.0+) ou um pacote de distribuição (por exemplo, do Debian) que possui correções de segurança. Mantenha o modo de segurança ativado, mesmo com a contenção como camada extra de defesa. Certas funcionalidades não funcionarão no modo de segurança, a solução para isso é modificar o LilyPond para permitir essa funcionalidade no modo de segurança.
Instalação
- See the extension's
README.md
for detailed installation instructions.
- Baixe e coloque o(s) arquivo(s) num diretório chamado
Score
na sua pastaextensions/
.
Developers and code contributors should install the extension from Git instead, using:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Score - Adicione o seguinte código ao final do seu arquivo LocalSettings.php :
wfLoadExtension( 'Score' ); $wgScoreTrim = true; $wgImageMagickConvertCommand = '/usr/bin/convert'; $wgShellboxUrl = '... address to Shellbox ...'; $wgShellboxSecretKey = '... your secret key ...';
- Crie um subdiretório chamado
lilypond
em seu $wgUploadDirectory (geralmente o diretório chamadoimages
em seu diretório MediaWiki). Certifique-se de que o diretório possa ser gravado pelo seu servidor Web. - Concluído – Navegue à página Special:Version em sua wiki para verificar se a instalação da extensão foi bem sucedida.
Configuração
Aqui estão alguns dos parâmetros de configuração global da extensão.
$wgScoreLilyPond
Defina $wgScoreLilyPond
como o caminho para o executável do LilyPond (normalmente /usr/bin/lilypond
ou /usr/local/bin/lilypond
).
$wgScoreTrim
O $wgScoreTrim
é um booleano cujo padrão é o valor de $wgUseImageMagick
. Se true
, as imagens PNG de partituras resultantes serão cortadas com ImageMagick. Se você não deseja cortar ou não deseja instalar o ImageMagick, defina $wgScoreTrim
como false
.
$wgScoreAbc2Ly
Defina $wgScoreAbc2Ly
como o caminho do executável do conversor ABC para LilyPond (normalmente /usr/bin/abc2ly
ou /usr/local/bin/abc2ly
).
$wgScoreFluidsynth
Defina $wgScoreFluidsynth
como o caminho do seu executável FluidSynth (normalmente /usr/bin/fluidsynth
ou /usr/local/bin /fluidsynth
).
$wgScoreSoundfont
Defina $wgScoreSoundfont
como o caminho do seu arquivo soundfont (em inglês) (normalmente /usr/share/sounds/sf2/FluidR3_GM.sf2
ou /usr/share/sounds/sf2/FluidR3_GS.sf2
).
$wgScoreLame
Defina $wgScoreLame
como o caminho do seu executável Lame (normalmente /usr/bin/lame
ou /usr/local/bin /lame
). Necessário se o arquivo de áudio gerado for um MP3.
Observações
Esta extensão executa vários binários em um Shellbox para fornecer alguma segurança. Talvez seja necessário aumentar $wgMaxShellMemory se ocorrer erros de "falta de memória".
Encontrando partituras
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.
Ver também
- Help:Score na Wikipédia em inglês e Help:Sheet music na Wikisource (também em inglês) têm mais exemplos da sintaxe do LilyPond.
- Notação LilyPond (em inglês)
- Notação ABC (em inglês)
Esta extensão está sendo usada(o) por um ou mais projetos da Wikimedia. Isto significa que, provavelmente, a extensão é estável e funciona bem o suficiente para ser utilizada(o) em sites da web de alto tráfego. Procure pelo nome dessa extensão nos arquivos de configuração CommonSettings.php e InitialiseSettings.php da Wikimedia para verificar onde ela foi instalada. Uma lista completa das extensões instaladas numa wiki em particular podem ser visualizadas na página Special:Version da wiki. |
Esta extensão está incluída nas seguintes fazendas/hospedagens (farms/hosts) e/ou pacotes wiki: Esta não é uma lista autoritativa (oficial). Algumas fazendas/hospedagens (farms/hosts) e/ou pacotes wiki podem conter esta extensão mesmo que não estejam listados aqui. Sempre verifique com suas fazendas/hospedagens (farms/hosts) ou pacotes wiki para confirmar. |