
- Projeto
- SONIQRA
- Setor
- Produto próprio · Educação musical
- Serviços
- Produto SaaS, Motor de áudio, Motor de avaliação, Partitura interactiva
- Ano
- 2026
Plataforma de ensino musical que ouve o aluno tocar e diz ao professor onde ele evoluiu e onde ficou preso.
O professor de música manda um áudio no WhatsApp a pedir que o aluno pratique uma música para domingo. Entre esse recado e o ensaio, não sabe nada: não sabe se o aluno praticou, não sabe onde ficou preso, e descobre tudo no próprio dia, quando já não dá para corrigir.
Do outro lado, o aluno pratica sozinho a repetir o mesmo erro, porque nada lhe diz que o fá sustenido está a sair natural. O SONIQRA existe para fechar essa lacuna.
O desafio
- Ouvir o instrumento a sério: transformar o sinal do microfone em nota, afinação em cents, ataque e duração, com precisão suficiente para virar avaliação.
- Não mentir sobre a própria precisão. Um teclado MIDI e uma guitarra captada pelo telemóvel não permitem a mesma promessa.
- Nunca penalizar o aluno por limitação do equipamento: se a detecção não teve a certeza, aquilo não pode tornar-se erro dele.
- Ler partitura a sério, e não um desenho: MusicXML e MIDI com vozes, tablatura, anacruse, instrumentos transpositores, letra e cifras.
- Medir o atraso do equipamento antes de julgar ritmo, porque uns auscultadores Bluetooth atrasam mais do que a diferença que se quer medir.
A solução
A cadeia é completa: partitura interactiva, captação real do instrumento, avaliação, diagnóstico pedagógico, recomendação de estudo e acompanhamento do professor. O motor identifica o padrão, não o acidente isolado: quando o aluno falha o mesmo fá sustenido várias vezes, o sistema aponta a nota, não a sessão.
A honestidade é uma regra de arquitectura, não um texto de marketing. A plataforma declara em quatro níveis o que consegue avaliar em cada combinação de instrumento e entrada, e mostra isso ao aluno antes de ele começar. Um evento com confiança baixa sai da conta inteira, nem como acerto nem como erro. E métrica que não se pode medir sai indefinida, nunca zero: a bateria não tem afinação, por isso o cartão de afinação simplesmente não existe nesse ecrã.












Resultado
O núcleo técnico está completo e coberto por 322 testes automatizados, 104 deles só na camada de teoria musical. TypeScript em modo estrito, com exactOptionalPropertyTypes.
Stack
- Next.js 16
- React 19
- TypeScript
- Supabase
- PostgreSQL
- Zod
- Web Audio API
- Web MIDI
- Vitest
- Tailwind v4
A promessa muda com a tecnologia
São quatro níveis declarados. MIDI é nível A: nota, ataque, duração, intensidade e pedal, exactos. Áudio de uma nota de cada vez é nível B: nota, afinação em cents, ataque e estabilidade. Acorde por microfone é nível C: classe de acorde e mudança, com confiança. Percussão acústica é nível D: ataques, ritmo e subdivisão. Um piano por MIDI é A; o mesmo piano por microfone é C, e a interface di-lo antes de o aluno começar.
O erro que um teste encontrou
Um detector de altura a receber 880 Hz reportava 176 Hz com confiança máxima: tinha ficado preso no sub-harmónico. Esse erro não aparece a ouvir, aparece a medir. Daí a guarda de sub-harmónico no motor e o banco de ensaio que corre contra sinal sintetizado a cada alteração.
Calibrar antes de julgar ritmo
A latência é medida por mediana e desvio absoluto mediano, não por um ponto único, e o motor recusa compensar quando a medição não é fiável. Trocar auscultadores com fio por Bluetooth invalida o perfil, porque o atraso muda e a medição de ritmo iria atrás.




