Executando verificação de segurança...
6

Como gerar uma sequencia de notas igual o do Guitar Hero?

Sobre

Pessoal, eu estou desenvolvendo uma versão do Guitar Hero, mas para piano. Já fiz uma parte visual, fiz também a parte da gameplay de clicar nas notas e contar como uma nota certa ou errada. Agora estou procurando formas de gerar as notas automaticamente para jogar músicas conhecidas e gostaria de pedir ajudas/dicas/sugestões do pessoal aqui do Tabnews. Quem se sentir interessado em dar uma olhada, pode acessar o Piano Hero

Ideias

Pensei em algumas ideias sobre como fazer isso e vou listá-las para receber sugestões:

  • Utilizar conversao de MP3 para MIDI e extrair informações da sequencia de notas para mapeá-las
  • Utilizar IA para gerar as notas de alguma forma
  • Usuário upar arquivo mp3 e converter para ele jogar na hora
  • Script interno (ferramenta de admin) para converter musicas, salvando num banco de dados e disponibilizando para os usuarios jogarem

O que voces sugerem para fazer essa geração das notas automaticamente? Qual seria uma boa solução para isso?

Desde já agradeço pelos feedbacks!

Carregando publicação patrocinada...
3

Vou responder baseado no meu conhecimento sobre música e sobre como eu tentaria abordar isso.

Cada nota e cada pausa (silêncio) em uma música tem uma duração, que vai variar de acordo com o andamento da música.

Uma partitura nada mais é que uma representação gráfica da duração das notas e pausas.

Aí é que entra as maneiras de trabalhar isso. Um loop iterando e incrementado até que a variável se controle atinja a duração da música. pode ser algo como setInterval() também. Ao mesmo tempo, é preciso definir flags ou marcadores, que serão comparados com essa timeline. Por exemplo em pseudocódigo: se marcadorA == tempoAtual - 5000ms, instanciar uma nota. O programa iria iterando e testando, e ao encontrar um marcador true, instancia uma bolinha.

Coloquei 5000ms para separar o momento em q ela é instanciada do momento que ela será testada com o imput do usuário. Depois disso ela começaria a descer. No Guitar Hero, o timing pra vc acertar a nota não é exato. Existe uma margem de erro de mais ou menos 1000ms, mas acho q já estou fugindo so escopo

1