Minha tarefa era pesquisar como os formatos MP3 e MIDI funcionam internamente, para que possamos chegar à uma conclusão de qual formato será mais apropriado para o que queremos fazer ( montar uma sequencia de botões a serem apertados de acordo com o ritmo da música ).
MP3: Possui um "Header" com diversos compos de informação e um "Audio Data", que é o áudio propriamente dito, em formato de ondas.
Mais informações:
http://www.mp3-converter.com/mp3codec/mp3_anatomy.htmMIDI: Diferentemente de outros formatos (como o formato WAV e MP3), um arquivo MIDI não contém o áudio propriamente dito, e sim as instruções para produzi-lo, ou seja, é basicamente uma partitura digitalizada. Essas instruções definem os instrumentos, notas, timbres, ritmos, efeitos e outras características que serão utilizadas por um sintetizador para a geração dos eventos musicais.
Mais informações:
http://www.music-center.com.br/midispec.htmPor tanto, para determinar a sequencia de botões a serem apertados a partir do mp3, haveria um certo grau de complexidade, já que teríamos que fazer um processamento e análise de ondas de áudio. E além disso, no jogo Guitar Hero, quando se erra uma nota, os outros instrumentos continuam tocando. O que não seria possível num mp3.
Já o midi, que contém uma "partitura eletrônica", poderíamos extrair apenas as informações de tempo e o tipo da nota da guitarra para determinar a sequência de botões. Além disso seria possível também que os outros instrumentos continuassem tocando quando o jogador errar um botão.
Fazendo uma pesquisa na internet, encontrei um programa, chamado
exmid, que extrai as informações de um midi e grava em um XML. Facilitando assim a leitura dos dados.