1. Blog
  2. Agentes de programação

Como criar um plugin VST3 ou CLAP com um agente de programação de IA

Um agente de programação de IA consegue escrever um plugin VST3 ou CLAP funcional, mas não de memória. Agentes falham em frameworks de áudio em C++ inventando nomes que soam corretos e escrevendo código que compila, mas quebra a thread de áudio. A solução é dar ao agente a API real do framework para conferir, um conjunto de regras que ele não consegue adivinhar e uma definição de “pronto” que um validador impõe. É isso que o Sonore SDK oferece para o Claude Code, o Codex, o Cursor e qualquer cliente MCP. Entre os frameworks de plugins estabelecidos, ele é o único com um servidor MCP oficial: o JUCE e o iPlug2 trazem arquivos de instruções para agentes, mas nada que um agente possa consultar.

Nesta página

Por que agentes erram plugins de áudio

Uma biblioteca C++ desconhecida raramente faz o agente recusar a tarefa. Ele improvisa, e plugins de áudio punem a improvisação de três maneiras:

  1. Nomes inventados. Uma classe que deveria existir, como um CompressorPro, ou uma classe real recebendo um método de outro framework. O código parece perfeito e não compila.
  2. Código que compila e ainda assim está errado. Uma alocação ou um lock dentro de process(), que roda na thread de áudio. Funciona na máquina do desenvolvedor e cai sob carga na sessão de alguém.
  3. Regras que não estão em lugar nenhum da API. Um limitador com look-ahead que não informa sua latência espalha qualquer mix paralelo em que for colocado. Uma tabela de parâmetros reordenada na versão 1.1 carrega sessões antigas nos controles errados. Nenhum cabeçalho diz isso.

O primeiro problema é de nomes, o segundo de comportamento, o terceiro de convenções. Um modelo maior não ajuda em nenhum deles, porque a informação não está nos dados de treinamento com confiabilidade suficiente para ser confiável.

O que o agente precisa, em vez disso

Três coisas, cada uma respondendo a um desses modos de falha:

O agente precisa de Porque No Sonore SDK
Uma forma de verificar se um nome existe A memória produz nomes plausíveis Um servidor MCP cuja busca cobre todos os 766 tipos públicos em 282 cabeçalhos
As regras que um plugin deve seguir Elas não podem ser lidas da API A skill e sonore_rules: assinaturas de process, latência, o que a thread de áudio proíbe
Uma definição de pronto “Compila” não é “funciona” Projetos gerados com autoverificação e uma auditoria em tempo real no ctest, prontos para os validadores

Tudo isso é gerado a partir dos cabeçalhos do SDK pelo mesmo script. Isso importa mais do que parece. Uma cola manual para agentes se distancia do código em uma versão, e então vira uma segunda fonte de nomes inventados. Aqui, npm run verify:llms falha o build se os arquivos divergirem dos cabeçalhos, e npm run verify:mcp confere se a busca encontra cada tipo público, então um “no match” vindo do servidor é uma resposta real, e não uma lacuna no índice.

As seis ferramentas do servidor MCP

O servidor roda a partir de um checkout local via stdio, precisa apenas do Node.js, e cada ferramenta só lê arquivos do checkout.

Ferramenta O que responde
sonore_search Se esta classe, função, alias ou conceito existe, e onde. As palavras batem em qualquer ordem, então “ladder filter” encontra LadderFilter.
sonore_declaration A declaração real, com o comentário que explica por que ela existe.
sonore_header Para que serve um cabeçalho, seus tipos públicos e a linha de include.
sonore_headers Todos os cabeçalhos, com uma linha de finalidade para cada um.
sonore_example Um plugin completo e funcional: efeito, instrumento, sidechain, saídas auxiliares, saída MIDI, sampler, reverb, editor nativo e mais.
sonore_rules A forma de um plugin, qual assinatura de process faz um instrumento, como informar a latência e o que é proibido na thread de áudio.

Um exemplo da diferença que isso faz. Quando pedido CompressorPro, o servidor responde que nada no SDK corresponde. Quando pedido “ladder filter”, ele devolve LadderFilter e o filtro ladder de diodo, com os cabeçalhos em que estão. O agente escreve o segundo, não o primeiro.

Configuração

Clone o SDK e depois adicione a skill e o servidor ao seu agente. Para o Claude Code:

Terminal
git clone https://github.com/SonorieAI/sonore-sdk "$HOME/sonore-sdk"
npx skills add SonorieAI/sonore-sdk --skill sonore-sdk -a claude-code -g
claude mcp add --scope user sonore-sdk -- node "$HOME/sonore-sdk/scripts/mcp-server.mjs"

Para o Codex, use -a codex e codex mcp add. Para o Cursor e o Antigravity, instale a skill com -a cursor ou -a antigravity e configure o servidor no arquivo de configuração MCP deles. O botão Instalar Skill e MCP na página inicial traz os comandos exatos para cada um. Sem a ferramenta de linha de comando skills, copiar skills/sonore-sdk para a pasta de skills do agente faz o mesmo trabalho.

Um primeiro prompt que funciona

Seja específico sobre o plugin e diga o que significa “pronto”:

Text
Make a tape-style saturator plugin with Drive, Tone and Mix.
Start from a generated Sonore project. Look up every sonore:: name
before you use it. It is done when it builds, ctest passes, and
clap-validator and pluginval run clean.

Com a skill carregada, o agente segue o fluxo de trabalho do SDK por conta própria: gera um projeto com sonore_new_plugin.cmake, escreve o DSP no único src/plugin.cpp, confere os nomes à medida que avança e compila. Um arquivo-fonte vira um .clap, um .vst3, um Audio Unit no macOS, um bundle LV2 e um aplicativo standalone, e o mesmo projeto gera um AUv3 para iPhone e iPad e um app Android.

O que significa “pronto”

Um plugin que compila é um rascunho. O projeto gerado oferece ao agente três verificações, em ordem do que cada uma prova:

  1. Ele compila todos os formatos a partir de uma única compilação.
  2. O ctest passa. Ele roda dois testes. O --verify do aplicativo standalone renderiza áudio offline e confirma que ele está saudável. Em um projeto compilado a partir de um checkout do SDK, a auditoria em tempo real (sonore_add_rt_test) conta cada alocação feita na thread de áudio em vários sample rates e block sizes, e falha em qualquer uma. O próprio SDK submete seus exemplos ao mesmo padrão: nove sample rates de 8 kHz a 384 kHz, block sizes de 1 a 8192, zero alocações.
  3. Os validadores passam. clap-validator e pluginval carregam o plugin do jeito que os hosts fazem. Os dois templates de projeto passam neles com strictness 10 do pluginval tal como gerados, então uma falha é algo que o agente introduziu.

A auditoria e os validadores pegam o que a leitura do código não pega, e por isso devem estar no prompt.

O que ainda depende de você

Um agente com as ferramentas certas escreve um plugin que carrega, passa na validação e não aloca na thread de áudio. Ele não consegue dizer se o saturador soa bem, se a interface parece certa numa sessão, ou se um host que você se importa se comporta direito. Escuta, gosto e testes no seu DAW continuam sendo seus. Os mesmos cuidados valem para os formatos com guardiões: o AAX exige um acordo de desenvolvedor com a Avid e assinatura PACE, algo que nenhum framework pode conceder.

Para a versão passo a passo, sem agente, leia Primeiros passos. Para ver como o SDK se compara com o JUCE, o iPlug2 e os demais, veja Frameworks de plugins de áudio comparados.

Fontes

Perguntas

O ChatGPT, o Claude ou o Cursor conseguem escrever um plugin VST3?

Sim, desde que o agente consiga consultar a API real do framework e compilar o resultado. Sem essa consulta, os agentes inventam nomes de classes e métodos que não existem no framework que estão usando. Com o servidor MCP e a skill do Sonore SDK instalados, o agente verifica cada nome, parte de um projeto gerado e só considera o plugin pronto quando ele compila e os validadores passam.

O que é o servidor MCP do Sonore SDK?

Um servidor do Model Context Protocol que roda localmente a partir de um checkout do SDK, via stdio, sem outras dependências além do Node.js. Suas seis ferramentas somente de leitura respondem se um nome existe, mostram sua declaração real, descrevem um cabeçalho, listam os cabeçalhos, devolvem um plugin de exemplo completo e explicam as regras de um plugin. Ele fala MCP 2026-07-28 e também o handshake initialize mais antigo.

O servidor MCP envia meu código para algum lugar?

Não. Ele lê apenas o checkout do SDK na sua máquina: sem acesso à rede, sem telemetria e sem nenhuma ferramenta que escreva arquivos.

Com quais agentes de programação ele funciona?

A skill usa o formato Agent Skills, que o Claude Code, o Codex, o Cursor e o Antigravity leem. O servidor MCP funciona com qualquer cliente MCP, incluindo o aplicativo de desktop do ChatGPT por meio do Codex.

É gratuito?

Sim. O Sonore SDK, a skill e o servidor MCP são de código aberto sob a Licença Apache 2.0, que permite plugins de código fechado e comerciais sem limite de receita, taxa ou tela de abertura.