Extensão:Partitura

This page is a translated version of the page Extension:Score and the translation is 100% complete.
Manual de extensões do MediaWiki
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
  • $wgScorePath
  • $wgScoreAbc2Ly
  • $wgScoreFluidsynth
  • $wgScoreLame
  • $wgScoreEnvironment
  • $wgScoreLilyPond
  • $wgWikibaseMusicalNotationLineWidthInches
  • $wgScoreImageMagickConvert
  • $wgScoreLilyPondFakeVersion
  • $wgScoreFileBackend
  • $wgScoreDirectory
  • $wgScoreTrim
  • $wgScoreGhostscript
  • $wgMusicalNotationEnableWikibaseDataType
  • $wgScoreOfferSourceDownload
  • $wgScoreMaxLength
  • $wgScoreDebugOutput
  • $wgScoreUseSvg
  • $wgScoreDisableExec
  • $wgScoreSafeMode
  • $wgScoreSoundfont
score
Quarterly downloads 27 (Ranked 113rd)
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

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

 
Use Shellbox para proteger o LilyPond e proteger a sua wiki!

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 pasta extensions/.
    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 chamado images 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