MIDIRestyle

Este MCP permite que o agente trabalhe com arquivos MIDI. Ele permite que o agente pesquise na biblioteca de escalas, leia o arquivo MIDI, reestilize-o e exporte o resultado.

Documentação

MIDIRestyle

Sua melodia, na afinação de outra pessoa.

Coloque um arquivo MIDI, escolha um estilo musical alvo, e o MIDIRestyle o converte. Uma melodia escrita em Ionian pode voltar como pentatônica chinesa, pelog javanês, maqam árabe, ou qualquer uma das 171 escalas que vêm com ele. Ritmo e fraseado permanecem exatamente como você os tocou — apenas a altura é remapeada.

Latest release Downloads Windows x64 One portable exe MCP server included MIT licence

MIDIRestyle's piano roll: the original notes drawn as grey ghosts underneath the restyled notes, with Maqam Rast selected in the scale list

midirestyle.netlify.app  ·  Baixar para Windows  ·  Notas de versão

Ou apenas pergunte — MIDIRestyle fala MCP

O mesmo .exe funciona como um servidor Model Context Protocol. Aponte o Claude — ou qualquer cliente MCP — para ele, e seu agente pode pesquisar a biblioteca de escalas, ler seu MIDI, reestilizá-lo e exportar o resultado. Nada extra para instalar, e seus arquivos nunca saem da sua máquina.

Três linhas no claude_desktop_config.json:

{ "mcpServers": {
  "midirestyle": { "command": "C:\\Tools\\MIDIRestyle.exe", "args": ["--mcp"] }
} }

Ou uma linha no Claude Code:

claude mcp add midirestyle -- "C:\Tools\MIDIRestyle.exe" --mcp

Ajuda ▸ Acesso ao agente (MCP)… dentro do aplicativo mostra ambos os trechos com o caminho real deste exe já preenchido — vale a pena usar, porque um exe portátil pode viver em qualquer lugar e ser renomeado.

Um host de agente inicia o servidor; você nunca executa --mcp manualmente. Ele fala apenas via stdin/stdout — sem janela, sem rede, sem uma segunda cópia do aplicativo instalada.

Você — pegue ballad_sketch.mid e experimente em alguns estilos do Oriente Médio. Mantenha aquele que melhor preserva a forma da melodia.

inspect_midi   ballad_sketch.mid          →  148 notes · D minor · 72 bpm · 4 tracks
list_scales    query: "maqam"             →  16 scales
describe_scale middleeast.arabic.maqam-rast  →  7 degrees · ±50¢ from 12-TET · 2 bend clusters
restyle_midi   → Maqam Rast               →  ballad_sketch.middleeast.arabic.maqam-rast.mid
restyle_midi   → Maqam Hijaz              →  ballad_sketch.middleeast.arabic.maqam-hijaz-notated.mid

Agente — Hijaz é o ideal: sua segunda abaixada cai exatamente no seu gancho, e o motivo descendente nos compassos 5–8 sobrevive intacto. Rast suavizou demais. Escrito com pitch bend por canal, então a afinação se mantém no seu DAW.

As ferramentas que ele expõe

FerramentaO que faz
inspect_midiFaixas, notas, tempo, fórmula de compasso e a tonalidade detectada de um arquivo no disco, como dados estruturados.
list_scalesNavegue e filtre todas as 171 escalas — por tradição, número de graus, se notam, quão distantes estão do 12-TET.
describe_scaleUma escala em detalhe: graus em cents, sua grafia, seu desvio, e o custo em canais MIDI.
restyle_midiExecuta o pipeline do próprio aplicativo de desktop e escreve o .mid reestilizado, incluindo pitch bend.
export_musicxmlEscreve notação, para escalas que podem ser honestamente grafadas em uma pauta.

Além de um prompt choose_a_style que guia um usuário até uma escala, uma pergunta por vez.

Todo caminho passado às ferramentas deve ser absoluto. As saídas padrão vão para <input>.<scale-id>.mid ao lado da entrada, e um arquivo existente nunca é sobrescrito a menos que overwrite seja verdadeiro.

Como funciona

Três passos, sem lição de teoria.

01 · Coloque um arquivo MIDI — qualquer coisa que você já tenha: um esboço, uma faixa, um arranjo completo. O MIDIRestyle lê as faixas, detecta a tonalidade e mostra o que encontrou.

02 · Escolha o estilo alvo — pesquise a biblioteca por nome ou tradição: maqam, melakarta, gamelan, wǔshēng, afinações de koto, os modos eclesiásticos. Navegue com as setas pela lista e a transformação é re-executada a cada tecla.

03 · Ouça a conversão — reproduza no aplicativo, alterne entre original e reestilizado em tempo real, depois mantenha, ajuste ou tente outro.

O que está incluído

Mais que um conversor — um lugar para olhar o resultado.

  • Piano roll e visão de pauta — veja o arquivo como um piano roll com teclado e régua de compassos, ou como sistemas embrulhados de notação gravada real com um cursor de reprodução que segue a execução. Clique na pauta para buscar.
  • Roda de escalas — a visão de graus dispõe a escala como uma roda, com graus em seu ângulo verdadeiro em cents contra os doze ticks de temperamento igual. Essa lacuna é o ponto central: a terça neutra do Maqam Rast fica visivelmente entre uma maior e uma menor. Seus elementos permanecem fixos enquanto a reprodução os recolore, para você observar em quais graus a música realmente se apoia.
  • A/B do original — alterne entre a fonte e a versão reestilizada durante a reprodução, sem sair para um DAW.
  • Exportação microtonal precisa — escalas que não se assentam no 12-TET (maqam, dastgāh, slendro, pelog, tailandês 7-igual) são exportadas com pitch bend por canal, um canal por deslocamento de cents distinto em vez de por voz, para que a afinação sobreviva à ida e volta. A pré-visualização e o arquivo exportado saem do mesmo caminho de código e não podem divergir.
  • Saída MIDI e MusicXML — salve o resultado como arquivo MIDI, ou exporte MusicXML para levar a notação para Sibelius, MuseScore ou Dorico.
  • Portátil e privado — um único .exe autocontido. Sem instalador, sem conta, sem upload. Copie-o para um pendrive e execute.

A reestilização é apenas remapeamento de altura — nunca toca ritmo, ornamentação ou articulação.

A biblioteca de escalas

171 escalas vêm com o aplicativo, agrupadas por tradição:

TradiçãoEscalasAlgumas delas
Sul da Ásia82Os dez thaats, mais todas as 72 melakarta carnáticas — geradas a partir das posições Ri/Ga, Dha/Ni e Ma em vez de digitadas manualmente
Oriente Médio16Maqam Rast, Bayati, Hijaz, Saba — em afinações notadas em quartos de tom e de justa entonação
Türkiye15Makam Rast, Uşşak, Hüseyni, Buselik (AEU)
Leste Asiático13Gong, Shang, Jiao, Zhi, Yu (wǔshēng); japonês in, yō, hirajōshi, iwato, kumoi; coreano p'yŏngjo, kyemyŏnjo
Europa12Os sete modos eclesiásticos, menor harmônica e melódica, dupla harmônica, menor húngara, Dórico ucraniano
Sudeste Asiático11Slendro e pelog medidos de gamelan nomeados, mais tailandês de 7 tons, idealizado e medido
Pérsia10Dastgāh-e Shur, Homāyun, Māhur e outros, nos intervalos de Farhat
África9Kiñit etíope (tizita, bati, ambassel, anchihoye), equiheptatônico, equipentatônico, harmônicos de música de arco
Américas3Blues hexatônico, pentatônica menor e maior

Toda escala escrita à mão carrega uma citação de fonte, e um teste falha na compilação se uma estiver faltando — valores de cents errados fazem um aplicativo errado, e esse não é o tipo de erro que um teste mecânico jamais pegaria. Você também pode criar as suas próprias no editor de escalas, ou importar arquivos Scala .scl.

Como obter

Baixe MIDIRestyle.exe da última versão — um único arquivo autocontido, 51,2 MB, Windows x64, sem instalador. Copie-o para qualquer lugar (incluindo um pendrive) e execute.

As configurações e a biblioteca de escalas gravável ficam em uma pasta scales/ escrita ao lado do exe na primeira execução, com fallback para %APPDATA% quando esse local não for gravável (um pendrive somente leitura, Program Files). Definir MIDIRESTYLE_DATA_ROOT para um caminho absoluto substitui ambos.

Compilando a partir do código-fonte

Requer o SDK .NET 10 (fixado em global.json).

dotnet build                                    # whole solution
dotnet test                                     # all tests - do NOT add --nologo, see below
dotnet run --project src/MidiRestyle.App        # launch the app

Um único teste ou classe:

dotnet test --filter "FullyQualifiedName~ChannelAllocatorTests"
dotnet test --filter "FullyQualifiedName~ChannelAllocatorTests.RastAllocatesTwoChannels"

Nunca passe --nologo para dotnet test. O SDK .NET 10 encaminha argumentos não reconhecidos para o aplicativo de teste subjacente, que rejeita a flag e relata "Zero testes executados" mesmo quando todos os testes passaram. Se dotnet test alguma vez relatar zero, leia o bloco Standard output: por assembly — é lá que está o erro real.

A versão portátil

dotnet publish src/MidiRestyle.App -c Release -r win-x64 --self-contained true `
  -p:PublishSingleFile=true `
  -p:IncludeNativeLibrariesForSelfExtract=true `
  -p:EnableCompressionInSingleFile=true

A pasta de publicação deve acabar contendo exatamente um arquivo — essa é toda a promessa de portabilidade. Isso é aplicado automaticamente: uma verificação embutida em MidiRestyle.App.csproj roda após cada publicação e falha a compilação ruidosamente se um segundo arquivo aparecer (uma biblioteca nativa perdida, um símbolo de depuração, qualquer coisa). Ela pegou um bug real durante o desenvolvimento — veja os comentários do csproj para o mecanismo, e CLAUDE.md para o histórico completo.

Status do projeto

A v1 está completa, com cinco versões em cima dela. Todas as doze fases de compilação estão feitas — o modelo de domínio, a biblioteca de 171 escalas, detecção de tonalidade, o motor de reestilização, alocação de canais para exportação microtonal, reprodução de áudio com alternância A/B, e a publicação portátil de arquivo único — assim como os três recursos adiados pela v1: exportação MusicXML, visão de pauta e visão de graus.

Desde então: v1.2 reconstruiu a notação como uma página embrulhada de sistemas com cursor de reprodução que segue e transformou a visão de graus em uma roda de escalas; v1.3 adicionou clique-para-buscar na pauta e contornos reais de clave e pausa; v1.4 adicionou a janela Sobre e agrupou os avisos de licença de terceiros; v1.5 colocou contagens de compassos no painel de arquivos, um teclado e uma régua de compassos no piano roll, e reconstruiu a roda de graus para que seus elementos permaneçam fixos e a reprodução apenas os recolorisse; e v1.6 adicionou o servidor MCP embutido, para que o mesmo exe possa ser dirigido por um agente.

Última verificação verde na v1.6.0: 1572 testes, 0 avisos, e uma publicação portátil de exatamente um arquivo de 51,2 MB.

Onde a documentação real vive

Este README é a vitrine. Para algo mais profundo:

Licença

O MIDIRestyle é lançado sob a Licença MIT.

O .exe enviado é autocontido, então também redistribui suas dependências e o runtime .NET. Suas licenças e avisos de direitos autorais são reproduzidos integralmente em THIRD-PARTY-NOTICES.txt — MIT para a maioria deles, BSD para ANGLE e Skia, e a SIL Open Font License para a tipografia Inter, que exige que sua licença seja distribuída junto com a fonte.

Esse último requisito é o motivo pelo qual os avisos estão embutidos no executável além de publicados aqui. Uma compilação de arquivo único não deixa espaço para um arquivo companheiro ao lado do .exe, então o texto viaja dentro dele e pode ser lido em Sobre → avisos de terceiros; um .exe copiado carrega seus avisos com ele.