Produtos digitais

Como criei um player de MIDI com IA, partitura e páginas programáticas

O Midi Plays nasceu em um dia: player de MIDI em vários instrumentos, acordes, partitura, HTML no servidor e um gerador de vídeo para o YouTube. Relato do que funcionou e do que a IA errou.

Assistir ao vídeo original no YouTube
Thumbnail do vídeo: Usando a IA pra criar uma ferramenta online de música com foco em PSEO

Se você imaginou um projeto, dá para dar vida a ele com inteligência artificial. O meu, desta vez, foi um player de MIDI. Não só piano, como o Synthesia que muita gente já conhece. Guitarra, violino, harpa, kalimba, sopro. Cada aba traz um conjunto de instrumentos. Abaixo, os acordes. Ao lado, a partitura. Eu montei isso em um dia. Dou play, puxo a linha das teclas, aumento o zoom, arrasto o recorte. Está no ar em midiplays.com.

A ferramenta existe porque o arquivo MIDI já carrega notas, tempo e, em muitos casos, acordes. Eu extraio esses dados, entrego HTML no servidor para o Google ler, e só depois carrego o JavaScript do instrumento que a pessoa clicou. Conteúdo da página nasceu do nome do arquivo e de uma descrição curta. Eu não fiz versão multilíngue do catálogo: seria a mesma música com outro título.

O produto
Player de MIDI, acordes, partitura e upload local
A escala
Uma URL por MIDI, HTML no servidor, JS por aba
O extra
Gerador de vídeo para o canal Midiplays no YouTube

O que o player faz além de cair tecla no piano

Synthesia popularizou o piano com barras caindo. Eu queria o mesmo arquivo servindo outros instrumentos. Comecei só no piano. Depois entrou violão, violino, harpa, kalimba, sopro. Cada ideia nova vira uma aba. O JavaScript da aba só baixa quando você clica nela. Assim o primeiro carregamento não empilha todos os renderizadores.

Além do desenho das teclas, a tela mostra os acordes da música e a partitura. Tudo sai do MIDI. Quem já mexeu no formato sabe: é um sequenciador, não um texto. Nota, duração, canal, às vezes letra. Se você tem um formato com dado visível, o site vira a camada que a pessoa consegue ver. Não é um artigo que descreve a música. É a música acontecendo.

Também dá para subir um MIDI do computador. Fica no localStorage. Não vai para o meu servidor. Serve para treinar, comparar, guardar o arquivo que você está estudando. O diretório público é outra lista: as faixas que eu mesmo envio, com descrição, autor e o conjunto de notas que a extração encontrou.

Por que o HTML sai do servidor e o catálogo ficou só em inglês

Criar página para esse site é upar o MIDI. Pelo nome do arquivo, a IA monta o texto de apoio: o que é a faixa, quem é o autor, quais notas aparecem. Isso precisa nascer no servidor. Se o Google receber um casco vazio e o player só pintar depois do JavaScript, a URL vira um título genérico. Eu quero a página já com o conteúdo rico no HTML.

A interface da plataforma tem tradução. O catálogo, não. Pensei em vários idiomas e desisti. Aqui a diferença entre uma URL e outra é o nome da música, o autor e uma descrição curta. Duplicar isso em 48 línguas seria a mesma página com o título trocado. O Google já entende o que um player e uma partitura são. Eu não preciso de um texto longo em cada idioma para “enriquecer” o que o arquivo já mostra.

O JavaScript pesado espera o navegador. Zoom, scroll da linha, troca de instrumento: isso é interação, não indexação. Separar as duas camadas foi uma decisão de produto, não um detalhe de build.

Um dia, muito token, e um modelo que inventa dedo impossível

Eu não sou programador. Leio código, aponto o que parece errado, sei o que é uma função. Nunca construí um player desses na mão. Se eu fosse programador na época e fizesse sozinho, chutaria um ano. Com IA, fiz em um dia. O atalho não foi barato em token. Usei GPT 5.4 na versão alta e o 5.5 para erros que o 5.4 não fechava. Persistência. Muito token. Correção em cima de correção.

Música cobra revisão humana. Sem um mínimo de anatomia, o modelo desenha posição de mão que não existe. No player e no gerador de vídeo isso apareceu. Eu ainda estava corrigindo trechos anatomicamente impossíveis na gravação. Se você não sabe que aquele acorde no violão não cabe na mão, a ferramenta publica o erro com cara de produto pronto.

O segundo aplicativo gera o vídeo para o YouTube a partir do mesmo MIDI: teclas, acordes, recorte. Posto no canal novo, Midiplays, o mesmo nome do site. O plano é o fluxo inteiro: MIDI entra, vídeo sai com título e descrição, publicação no YouTube. Ainda estava montando essa esteira quando gravei. A lógica é a mesma do site: o arquivo já tem o dado; o programa só renderiza.

  1. Escolha um formato que já carregue dado (MIDI, não um parágrafo inventado).
  2. Peça HTML no servidor com descrição, notas e metadados da faixa.
  3. Carregue o JavaScript do instrumento só na aba clicada.
  4. Revise digitação e partitura com alguém que toca, não só com o preview.
  5. Se for gerar vídeo, use o mesmo arquivo. Não peça clipe “de IA” no lugar da partitura.

Ferramenta perto de você, não nicho que todo mundo já copiou

Conteúdo que é só texto ficou fácil de copiar. Uma ferramenta que extrai um formato e deixa a pessoa ver o que o arquivo contém é outra conversa. Ainda assim, concorrência existe. Com IA, outra pessoa refaz o player em minutos. Ganha quem paga mais backlink, quem já está alto. Sempre foi assim. Tem cronômetro online no ar desde os anos 2000, com meio milhão de visitas. Qualquer um faz um cronômetro. Quase ninguém bate quem chegou primeiro e ficou.

Eu estou testando MIDI porque gosto de piano, sempre busquei vídeo de Synthesia, e já tive canal com outro nome postando esse tipo de faixa. A proximidade veio antes da ideia de “explorar nicho”. Um amigo me mandou um SaaS de fotógrafo: o profissional paga assinatura, gera link, o cliente escolhe as fotos. Nada óbvio. Ele falou em mais de 20 mil fotógrafos assinando. Sempre existe uma área em que a ferramenta ainda não está óbvia.

Busca orgânica perdeu força. Se a coisa que você cria não é um bloco de leitura, o Google ainda pode citar — no próprio resultado, numa resposta de modelo, no YouTube. O canal impulsiona o site. O site alimenta o canal. Não é fórmula. É o recorte que eu escolhi porque já vivia nele.

Na sequência

  1. Confirme que o arquivo de origem traz nota, tempo ou acorde de verdade, não só um título.
  2. Entregue HTML no primeiro byte; deixe zoom e instrumento para o cliente.
  3. Não multiplique idioma se a página só troca o nome da faixa.
  4. Reserve token e tempo para correção de digitação, não só para a primeira versão.
  5. Trate upload local e catálogo público como dois produtos: um no navegador, outro no servidor.

Onde isso quebra

Publicar posição de mão que um instrumentista nunca executaria.

Fazer dezenas de idiomas para um catálogo que só tem título e autor.

Carregar todos os instrumentos no primeiro request e culpar a hospedagem pela lentidão.

Achar que “ninguém fez ainda” protege o projeto no dia seguinte.

Perguntas frequentes

Dá para criar um player de MIDI sem ser programador?

Dá para orquestrar a IA e revisar o resultado. Eu fiz o Midi Plays em um dia nesse regime. Isso não apaga a revisão musical: o modelo erra dedo, compassos e o que for anatomicamente estranho.

Por que não traduzir cada página da música?

No meu caso a página é o nome da faixa, o autor e uma descrição curta. Traduzir isso em massa vira conteúdo duplicado. Traduzi a interface, não o catálogo.

O MIDI pode ir para o YouTube automaticamente?

Eu estava ligando o gerador de vídeo ao canal Midiplays, com título e descrição a partir do arquivo. Ainda havia correção de digitação. Automação não substitui essa checagem.

E os direitos da música?

MIDI, partitura e gravação podem ser obras protegidas. Ferramenta de visualização não é licença para republicar repertório alheio. Trate o arquivo que você não tem direito como teste local, não como página pública.

O gerador de vídeo que sai do mesmo tipo de arquivo está em gerar vídeos automáticos e dinâmicos. A lógica de muitas URLs com dado de verdade, não título trocado, continua em o que é SEO programático.