Extensão:Partitura
| This code base is maintained by the Reader Experience team. Code review only for UBNs or security fixes. |
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. |
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 |
|
| 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 lang="lilypond">\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" lang="lilypond">\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 lang="lilypond" sound="1">
\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.mdfor detailed installation instructions.
- Baixe e mova a pasta extraída
Scoreao seu diretórioextensions/.
Desenvolvedores e colaboradores de código, por outro lado, deverão instalar a extensão a partir do Git, usando: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
lilypondem seu $wgUploadDirectory (geralmente o diretório chamadoimagesem 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.
| 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. |
- Stable extensions/pt-br
- Tag extensions/pt-br
- GPL licensed extensions/pt-br
- Extensions in Wikimedia version control/pt-br
- ParserFirstCallInit extensions/pt-br
- ResourceLoaderRegisterModules extensions/pt-br
- SoftwareInfo extensions/pt-br
- WikibaseClientDataTypes extensions/pt-br
- WikibaseRepoDataTypes extensions/pt-br
- WikibaseRepoWbui2025InitResourceDependenciesHook extensions/pt-br
- All extensions/pt-br
- Extensions used on Wikimedia/pt-br
- Music editor extensions/pt-br
- Extensions with VisualEditor support/pt-br
