Pular para o conteúdo
brorn
Nº 016 · Outros apps

chord.me

App de cifras que segue a música enquanto você toca: uma IA tira acordes, letra e partes do áudio, e a tela acende o acorde certo na hora.

No ar
Período
2026-10 → hoje
Plataformas
Web · iPhone / iPad · Apple Watch
Papel
Sozinho: design, código e entrega
Tecnologias
Fig. 1 · Modo tocar
Fig. 2 · Biblioteca
Fig. 3 · Revisão da cifra
Fig. 4 · Dicionário de acordes

§1O problema

Sites de cifra têm erros, não têm a versão exata que você quer e a tela não acompanha o que você está tocando. Não existia um app que gerasse a cifra a partir do áudio e andasse junto com a música.

§2O que eu construí

  • Análise de áudioPython na placa de vídeo: separa instrumentos, acha batidas, acordes, tom, partes (verso, refrão, solo), letra com tempo e notas.
  • App webBiblioteca de músicas, fila de processamento, tela de revisão (corrigir acorde/parte/letra com o áudio tocando) e tela de tocar.
  • FerramentasDicionário de acordes (desenhos de violão) e afinador.
  • Seguidor pelo microfoneDescobre onde você está na música, tocando junto com a gravação ou sozinho.
  • Música por linkYouTube baixa direto; Spotify, Apple e Deezer só identificam a música.
  • Casca nativaPara iPhone/iPad (guardar no aparelho, funcionar offline) e versão de Apple Watch.

§3As partes difíceis

5 itens
  1. 01

    Seguir a música ao vivo

    Escolher o “caminho mais provável” em vez de reagir a cada instante; várias referências (mix, base sem voz, acordes) para não confundir intro com trecho sem voz; ajuste medido com um teste de bancada, não no olho.

  2. 02

    Separar verso de refrão

    O sinal mais forte foi a letra repetida, comparada por palavras, porque a transcrição quebra o mesmo refrão de jeitos diferentes.

  3. 03

    Modelos de áudio antigos em Python novo

    Modelo ONNX instalado sem as dependências antigas, e evitar travas (laço infinito da transcrição no fim da música; limite de tempo na fila).

  4. 04

    Detalhes de plataforma

    WKWebView dentro de SwiftUI caindo no iOS 26 (trocado por UIKit), áudio M4A convertido antes da análise, 403 intermitente do download resolvido com tentativa em vários formatos.

  5. 05

    Sem banco de dados

    Cada música é uma pasta de arquivos, com a saída da IA nunca editada à mão e a versão revisada à parte.

§4Resultado

As três primeiras etapas do plano e a parte web da quarta estão prontas. O app web está em produção no meu servidor em casa, e eu uso numa rede privada. A casca nativa funciona num iPhone de verdade (não só no simulador), e a versão de Apple Watch também funciona.

§5Stack

  • Python + GPU (Demucs, Whisper, beat_this, basic-pitch)
  • Next.js 16 + TypeScript
  • Design system próprio
  • Swift / UIKit (casca nativa)
  • Service worker (offline)
  • pm2
  • Tailscale (HTTPS para o microfone)
  • yt-dlp