ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Sistema online de improvisação: transforma uma progressão de acordes em análise harmônica completa (campo harmônico, função de cada acorde, escalas, arpejos e notas-alvo recomendados) e em fraseados prontos com tablatura, partitura simplificada e cifra — para teclado, guitarra, baixo, violão, sax, trompete, violino e flauta.
Concluído até agora (ver docs/PRD.md e docs/status.md):
docs/etapa5-planos.md.Com isso, todo o escopo da Etapa 5 previsto em docs/PRD.md está entregue.
C7M, Am7(b5), G7(b9),
G7/4, B°...), escala de cada acorde escolhida pela função e pelas
tensões (menor melódica, menor harmônica, dominante-diminuta, bebop...),
e fraseados como uma linha contínua de colcheias com técnicas de jazz
(arpejo circular, 3-5-7-9, bebop, 1-2-3-5, pentatônica superposta, cerco),
"Outra ideia", "Padrão" fixo e "Tocar a linha inteira". Ver
docs/fraseados-referencias.md.tests/tablatura.test.js
varre 11.459 digitações).sounds/CREDITOS.md); seletor Real / Guitarra com drive / Sintetizado.
Todos os níveis liberados, inclusive o Avançado (estilo Parker completo).O site continua sendo 100% estático (sem servidor próprio) — mesmo com login,
quem guarda os dados é o Supabase (gratuito), acessado direto do navegador.
Veja docs/etapa4-supabase.md para o passo a passo (é o único passo manual,
porque exige criar uma conta em outro serviço).
Digite uma cifra (C7M, Am7(b5), G7(b9), D7/F#…) e veja como se toca
no violão, na guitarra, no teclado e no baixo: três posições no braço
com os dedos e a pestana desenhados, três voicings de teclado (fundamental,
inversão e o de 3ª e 7ª, o do jazz) e, no baixo, as notas do acorde no braço
mais a linha fundamental–5ª–oitava. Cada nota vem com o nome e o grau dela
no acorde, e tudo toca.
As posições são calculadas, não copiadas de uma tabela: o programa varre
o braço, monta o que soa o acorde e descarta o que a mão não alcança (quatro
casas, quatro dedos, pestana só na casa mais baixa e sem corda solta no meio
dela). O motor é js/chords.js e a tela, js/chords-ui.js.
A aba Laboratório (gerador de progressões) deu lugar a esta. O motor dele continua no projeto: é ele que sugere a progressão quando se troca a tonalidade na Análise de Harmonia.
Uma lista corrida, sem títulos de grupo, na ordem que o dono do projeto fixou: Inicie aqui · Exercícios de Padrões · Transcrição / Treino · Teoria Musical do zero · Biblioteca de Escalas · Biblioteca de Fraseados · Biblioteca de Acordes · Análise de Harmonia · Treine seu Ouvido · Meus Exercícios · (Administração, só para quem administra) · Configurações no fim. O administrador pode desligar qualquer uma dessas telas, menos o Início e as Configurações.
Um jogo curto, no item 🎮 Treine seu Ouvido. O sistema toca o acorde da tonalidade (a referência), depois uma nota, e você responde que grau é aquilo — a tônica, a terça, a quinta. É ouvido relativo: a pergunta "que nota é essa?", sem referência, cobraria ouvido absoluto, que em adulto praticamente não se desenvolve e viraria sorte.
São quatro níveis, que abrem com 80% numa rodada de dez — e fecham 24 horas depois: todo dia você recomeça do nível 1, porque ouvido não se guarda, se mantém. Os níveis são: 1) 1-3-5, 2) com a 7ª, 3) a escala inteira, 4) as doze notas. No nível 1, de três em três perguntas vem um acorde inteiro para você dizer se é maior ou menor — é a terça do mesmo acorde, vista de outro ângulo.
Dá para jogar sem conta; quem está logado tem o nível aberto guardado.
O site abre direto no treino: escolha a tonalidade, a escala e o instrumento e saem os 21 exercícios do método, subindo e descendo, com partitura ou tablatura, as notas escritas, áudio e metrônomo. São cinco escalas (Maior, Menor natural, Pentatônica maior, Pentatônica maior + b3 e Pentablues); o catálogo completo de 46 escalas, com a ficha de cada uma, está em Biblioteca de Escalas.
Na escala maior, o primeiro exercício é o desenho 1-2-3-5-7-8-9-8-7-5-3-2-1 (em C: C D E G B C D | C B G E D C) — uma oitava mais a 9ª, o único curto assim; os outros vão a duas oitavas. Nas outras escalas, o primeiro é a escala corrida.
Ainda na maior, o botão 🎹 Tocar o campo harmônico põe os sete acordes da tonalidade rodando em loop — tétrades (C7M, Dm7, Em7, F7M, G7, Am7, Bm7(b5)), um compasso de quatro tempos cada, no andamento da barra. A cifra que está soando acende. A ideia é tocar o exercício POR CIMA: é o jeito mais rápido de ouvir o mesmo desenho mudando de cor a cada grau.
A análise de harmonia (progressão → escalas, arpejos, notas-alvo e fraseados) continua inteira: virou o item 🎹 Análise de Harmonia, logo abaixo do Início no menu.
Não precisa instalar nada. Duas opções:
index.html (abre direto no navegador), oufile://):
npx serve .
ou, com Python: python3 -m http.server 8080index.html Tela principal (layout do print de referência)
css/styles.css Estilos (tema escuro)
js/data.js Dados de teoria musical (escalas, qualidades de acorde, campo harmônico)
js/theory.js Motor de teoria musical (parser de cifra, análise da progressão)
js/phrases.js Gerador de fraseados: linha contínua (um compasso por acorde) + resolução
js/notation.js Realização de oitavas, tablatura e partitura simplificada (Etapa 2)
js/audio.js Áudio (Web Audio): samples reais com bends/slides/vibrato + síntese de reserva
js/lab.js Gerador de progressões do Laboratório (Etapa 5, parte 3): modelos por estilo
js/lessons.js Conteúdo das Aulas (Etapa 5, parte 4): lições + exemplos práticos
js/library.js Motor da Biblioteca de Fraseados (escala × tom × estilo, com ritmo)
js/library-ui.js Tela da Biblioteca de Fraseados
js/patterns.js Exercícios de Padrões (91 padrões nos 12 tons + padrão próprio)
js/patterns-ui.js Tela dos Exercícios de Padrões
js/scale-info.js Ficha de cada escala/modo (fórmula, intervalos, características,
notas-alvo, notas a evitar, onde usar, dica de treino) — 46 escalas
js/scales.js Motor da Biblioteca de Escalas (famílias, notas no tom, acorde da
escala, 6 exercícios prontos por escala, busca sem acento)
js/scales-ui.js Tela da Biblioteca de Escalas (ficha + braço/teclado + exercícios)
js/articulation.js Articulações (hammer-on, pull-off, slide, bend, vibrato) e dinâmica
sounds/*.js Samples de instrumentos reais (FluidR3_GM, CC BY 3.0 — ver sounds/CREDITOS.md)
js/app.js Liga a tela aos motores (sem framework, JS puro)
js/config.js Configuração do Supabase (Etapa 4) — troque pelos dados do seu projeto
js/supabaseClient.js Camada fina sobre o supabase-js: auth + CRUD de analises/favoritos/exercicios
js/auth-ui.js UI de login/cadastro, histórico, favoritos, exercícios e configurações (Etapa 4)
sql/schema.sql Script para criar as tabelas e políticas de RLS no Supabase (Etapa 4)
tests/theory.test.js Testes automáticos do motor de teoria (node tests/theory.test.js)
tests/phrases.test.js Testes automáticos de fraseados e notação (node tests/phrases.test.js)
tests/audio.smoke.js Smoke test do áudio via Chromium headless (node tests/audio.smoke.js)
tests/etapa4.smoke.js Smoke test: site funciona normalmente sem Supabase configurado
tests/etapa4.smoke2.js Smoke test: mensagem correta quando o SDK carrega mas falta configurar
tests/etapa4.e2e.js Teste completo de cadastro/login/salvar/favoritar/exercícios/logout
(com um cliente Supabase falso, em memória — não substitui testar com
um projeto Supabase real, mas cobre toda a lógica de UI)
tests/etapa5.smoke.js Smoke test dos novos instrumentos (select, rodapé, tab/partitura, áudio)
tests/acesso.smoke.js Smoke test do portão: ninguém entra sem conta liberada (Etapa 6)
tests/admin.smoke.js Smoke test dos poderes do administrador sobre as contas
tests/fake-supabase.js Supabase falso compartilhado pelos testes (reproduz as regras do banco)
tests/rls.sql/rls.sh Confere as 40 regras de acesso num PostgreSQL de verdade (bash tests/rls.sh)
tests/etapa5.aulas.smoke.js Smoke test das Aulas (acesso livre, lista, exemplo -> análise)
tests/lab.test.js Testes automáticos do gerador de progressões (node tests/lab.test.js)
tests/lessons.test.js Testes automáticos do conteúdo das Aulas (node tests/lessons.test.js)
tests/fraseados.smoke.js Smoke test dos fraseados (cifra brasileira, Outra ideia, Padrão, linha inteira)
tests/library.test.js Testes do motor da Biblioteca (varre 11.232 frases) — node tests/library.test.js
tests/biblioteca.smoke.js Smoke test da tela da Biblioteca de Fraseados
tests/articulation.test.js Testes de articulações, tab com técnicas e Fusion — node tests/articulation.test.js
node tests/scaleinfo.test.js
node tests/patterns.test.js
tests/fusion.smoke.js Smoke test do menu Fusion e do som com samples
tests/scaleinfo.test.js Testes da ficha das escalas — node tests/scaleinfo.test.js
tests/scaleinfo.smoke.js Smoke test da ficha da escala na Biblioteca
tests/patterns.test.js Testes dos Exercícios de Padrões — node tests/patterns.test.js
tests/padroes.smoke.js Smoke test da tela de Exercícios de Padrões
tests/escalas.test.js Testes da Biblioteca de Escalas — node tests/escalas.test.js
tests/escalas.smoke.js Smoke test da tela Biblioteca de Escalas
tests/som.smoke.js Mede o volume real na saída de áudio em cada modo e instrumento
tests/toque.smoke.js Mede o TOQUE: variação de força entre as notas e silêncio entre elas
tests/ouvir.smoke.js Confere a cor dos 80 botões de ouvir (azul parado, vermelho tocando)
tests/sugestoes.smoke.js Caixa de ideias: quem usa manda, quem administra lê
tests/tablatura.test.js Confere que a tablatura bate com as notas (1 milhão de casas, todas as digitações)
tests/digitacoes.smoke.js As opções de digitação na tela (trocar a região sem mudar as notas)
tests/boasvindas.smoke.js A tela de boas-vindas: aparece uma vez só, e aponta o 💡
tests/teoria.smoke.js A tela de Teoria Musical: 28 lições, blocos e exemplos que tocam
tests/progresso.smoke.js Mede a execução dos exercícios (tocou junto até o fim)
tests/cores.smoke.js Mede o contraste do texto nos dois temas (claro e escuro)
tests/avaliar.test.js A conta que decide se a gravação do aluno passa
tests/gravacao.smoke.js Gravar e liberar o próximo: a trava e o fluxo na tela
tests/gravacao.e2e.js A rede neural DE VERDADE lendo um exercício (lento, ~1 min)
tests/rolagem.smoke.js Os avisos de "tem mais para o lado" nas caixas que rolam
tests/screenshot*.js Scripts opcionais de checagem visual com Playwright (dev only)
email/ Modelos dos e-mails do Supabase (confirmação, senha nova, convite) — ver docs/emails-supabase.md
docs/ PRD, mapa do sistema, matriz RBAC, catálogo de módulos, status e guias do Supabase/Planos
node tests/theory.test.js
node tests/phrases.test.js
node tests/lab.test.js
node tests/lessons.test.js
node tests/library.test.js
node tests/articulation.test.js
tests/audio.smoke.js, tests/etapa4.smoke.js, tests/etapa4.smoke2.js,
tests/etapa4.e2e.js e os tests/screenshot*.js são opcionais (dev only) e
precisam do Playwright instalado (npm install playwright) — não são
necessários para o site funcionar, só para checagem automatizada durante o
desenvolvimento. Rodam assim:
node tests/etapa4.smoke.js
node tests/etapa4.smoke2.js
node tests/etapa4.e2e.js
node tests/etapa5.smoke.js
node tests/acesso.smoke.js
node tests/admin.smoke.js
node tests/etapa5.aulas.smoke.js
node tests/fraseados.smoke.js
node tests/biblioteca.smoke.js
node tests/celular.smoke.js
node tests/inicio.smoke.js
node tests/acordes.test.js
node tests/acordes.smoke.js
node tests/toque.smoke.js
node tests/tablatura.test.js
node tests/ouvir.smoke.js
node tests/sugestoes.smoke.js
node tests/digitacoes.smoke.js
node tests/boasvindas.smoke.js
node tests/teoria.smoke.js
node tests/progresso.smoke.js
node tests/cores.smoke.js
node tests/avaliar.test.js
node tests/gravacao.smoke.js
node tests/rolagem.smoke.js
node tests/gravacao.e2e.js # lento: roda a rede neural de verdade
tests/celular.smoke.js percorre o site em três tamanhos de telefone
(390×844, 360×740 e 320×568) e reprova qualquer tela que role para o lado,
botão abaixo de 40px ou campo com fonte menor que 16px — no fim, confere
que o computador continua como era.
Todos os testes devem passar antes de qualquer alteração ser considerada pronta (é o item 9 do padrão de qualidade do projeto).
Abaixo de 860px de largura o site se reorganiza sozinho: o menu lateral vira uma gaveta (botão ☰ no topo — escolher um item, tocar fora ou apertar Esc fecha), a barra do topo se desdobra em linhas e a tabela da análise, a tablatura e a partitura passam a rolar dentro da própria caixa, em vez de empurrar a página. A partitura fica no tamanho natural e não espremida, para o nome das notas continuar legível; onde isso acontece, aparece o aviso "↔ deslize para o lado". Os campos ficam com 16px de fonte de propósito: abaixo disso o iPhone dá zoom sozinho quando o dedo toca no campo.
Com o Supabase configurado (js/config.js), o IMPROVIX é um sistema
fechado: quem abre o endereço vê só a tela de entrada — nem menu, nem
telas, nem o ✕ para fechar. Dentro, cada pessoa tem conta com e-mail e
senha, e os dados dela são só dela.
O primeiro cadastro vira o administrador. Faça o seu antes de divulgar o endereço: é esse primeiro e-mail que ganha a coroa. Daí em diante, na tela 👑 Administração:
Administrador nenhum vê a senha de ninguém: a "senha nova" é um e-mail que o próprio Supabase manda, e a pessoa escolhe a senha no link.
Até onde o login protege. Os dados ficam protegidos pelo banco, não
pela tela: as políticas de RLS (sql/schema.sql) recusam quem não foi
liberado mesmo que a pessoa chame a API por fora do site — é o que
tests/rls.sql confere num PostgreSQL de verdade. Já os arquivos do
site (HTML, CSS, JS, as frases que o programa gera) são públicos por
natureza: o site é estático e qualquer pessoa com o endereço baixa esses
arquivos. O login fecha o uso prático e os dados; esconder o código exigiria
um servidor próprio, que este projeto de propósito não tem.
Sem o Supabase configurado (valores de exemplo em js/config.js), o site
funciona como nas Etapas 1–3: aberto, sem login e sem salvar nada entre
visitas. O passo a passo da configuração está em
docs/etapa4-supabase.md — leva uns 10 minutos e não tem custo.
Esses instrumentos tocam uma nota de cada vez, então a aba Fraseados mostra Partitura ou Cifra (o botão "Tab" fica desabilitado). Para simplificar, o áudio e as notas exibidas estão sempre em tom concertante (o que soa é exatamente o que está escrito) — sax e trompete são instrumentos transpositores na partitura tradicional deles, mas essa "leitura transposta" fica para uma etapa futura, se fizer falta.
Os planos saíram do IMPROVIX. Quem entra tem tudo, inclusive o nível
Avançado dos fraseados. O que limita o acesso agora é só a liberação da
conta e as telas que o administrador deixa abertas. O histórico de como
funcionava está em docs/etapa5-planos.md.
A aba saiu em 13/10/2026 e deu lugar à Biblioteca de Acordes (acima). O
motor de progressões (js/lab.js) continua no projeto: é ele que sugere a
progressão quando se troca a tonalidade na Análise de Harmonia.
Item "🎓 Aulas" no menu lateral. 8 lições curtas (campo harmônico, leitura de cifras, escalas e
modos, arpejos e notas-alvo, dominantes secundários, os 5 tipos de frase,
blues/turnarounds, ii–V–I) com um botão "Testar este exemplo" em cada uma
que manda a progressão de exemplo direto para a análise. Conteúdo em
js/lessons.js.
Ver docs/PRD.md para o roadmap completo. Com a Etapa 5 (instrumentos,
planos, Laboratório e Aulas), todo o escopo original do PRD foi entregue.
No ar desde 15/09/2026: https://improvix.vercel.app Repositório
con1dera-droid/improvix, site no Vercel (Hobby) e banco no Supabase (Free) — tudo em plano gratuito. Daqui para a frente, publicar uma mudança é sógit pushna branchmain.
O site é estático: não tem servidor, não tem build, não tem custo. Os arquivos deste repositório já são o site pronto — por isso qualquer hospedagem de site estático serve, e o plano gratuito do Vercel sobra.
1. Mandar o código para o GitHub (uma vez só):
Crie um repositório vazio em https://github.com/new — sem README, sem .gitignore, sem licença (este projeto já tem os seus). Depois, no Terminal:
cd ~/IMPROVIX
git remote add origin https://github.com/SEU-USUARIO/improvix.git
git branch -M main
git push -u origin main
2. Publicar no Vercel (uma vez só):
improvix.improvix.vercel.app, com HTTPS.3. Atualizar depois: git push e pronto. O Vercel publica sozinho a
cada commit no main — nunca mais subir arquivo na mão.
O vercel.json já cuida de duas coisas: cabeçalhos de segurança (e a
permissão de microfone/captura de aba que a tela de Transcrição precisa) e
o cache — página, js/ e css/ sempre revalidam (uma atualização aparece
no primeiro reload), enquanto sounds/ e vendor/, que são pesados e
quase nunca mudam, ficam guardados por uma semana. O .vercelignore
mantém tests/, docs/ e os arquivos de trabalho fora do site publicado.
Não ponha comentário no vercel.json: o Vercel valida o arquivo contra um
schema fechado e recusa qualquer campo a mais (inclusive um "comment").
4. Apontar o Supabase para o endereço público (uma vez só, e importante):
no painel do Supabase, Authentication → URL Configuration, ponha o
endereço do site em Site URL (ex.: https://improvix.vercel.app) e
deixe em Redirect URLs tanto ele (https://improvix.vercel.app/**)
quanto http://localhost:3000/**, para continuar testando na sua máquina.
Sem isso, o e-mail de confirmação de cadastro manda quem se cadastrar para
localhost, que só existe no computador de quem programou.
Domínio próprio (opcional): no painel do projeto, Settings → Domains. O domínio é pago (uns R$ 40–60 por ano no registro.br ou similar); o Vercel não cobra nada para apontar.
Depois de configurar o Supabase, um dos usuários vira administrador por um
update rodado no SQL Editor (passo 6 de docs/etapa4-supabase.md). O
admin ganha o item 👑 Administração no menu: lista de contas, tornar
Pro, promover a admin e bloquear/desbloquear com motivo.
Bloquear tira o acesso de verdade — as políticas do banco recusam leitura e escrita de quem está bloqueado, mesmo por fora do site, e a pessoa é desconectada assim que abrir ou voltar para a aba. Nem o admin muda o próprio papel ou se bloqueia, para nunca ficar sem administrador.
As regras são conferidas por teste num PostgreSQL de verdade:
bash tests/rls.sh # 23 checagens; falha se alguma regra deixar passar
node tests/admin.smoke.js
Sem configurar o Supabase, o site publicado funciona inteiro para estudo —
análise, escalas, fraseados, padrões, transcrição e áudio. Só o que depende
de conta (salvar histórico, favoritos e Meus Exercícios) fica desativado,
com um aviso explicando. Para ligar isso depois, siga
docs/etapa4-supabase.md: crie um projeto gratuito no Supabase, rode
sql/schema.sql e ponha a URL e a chave anônima em js/config.js. A chave
anônima é pública por natureza (quem protege os dados é o RLS do banco),
então ela pode ficar versionada normalmente.
tests/toque.smoke.js