Como desenvolver aplicativos "musicais" Android?

Olá pessoal, desculpa a pergunta boba, mas eu quero começar no desenvolvimento de jogos android e por isso estou pesquisando bastante. Existem muitos aplicativos na play store como MuseScore e o Music Trainer (entre outros) que permitem que o usuário escolha um arquivo pdf com uma partitura e toca a partitura e no Music Trainer o aplicativo exibe uma figura na pauta e pede pra clicar na nota correspondente àquela figura.

A minha pergunta é: como isso acontece? Como se desenvolve um aplicativo desses capaz de reconhecer a nota que o usuário clicou e até mesmo de tocar uma partitura a partir de um arquivo pdf? Alguns aplicativos permitem até mesmo você criar partituras…

Qual biblioteca (ou engine, framework) de desenvolvimento para isso? (podem por favor me passar indicação de livros ou sites para aprendizado do mesmo?)

Desde já agradeço e peço desculpas pela pergunta boba.

Pessoal, pesquisei bastante aqui e agora posso explicitar de forma melhor o que eu gostaria de saber. Eu disse que os aplicativos liam a partitura e reconheciam a nota clicada pelo usuário (inclusive existem aplicativos para afinação de instrumentos).

Tudo isso é possível, pelo que li (em relação a Java), por causa das bibliotecas Java Media Framework e a Java Sound (javax.sound), quanto a ler um arquivo, eu li e vi que se trata de OCR - Optical Character Recognition (Reconhecimento ótico de caracteres) que é uma tecnologia para reconhecer caracteres a partir de um arquivo de imagem ou mapa de bits sejam eles escaneados, escritos a mão, datilografados ou impressos.

Já em relação à música se trata de OMR - Optical Music Recognition (Reconhecimento ótico de música), que assim como OCR reconhece caracteres a partir de um arquivo, porém os caracteres são relacionados a música (claves, pausas, figuras de nota etc…).

Algum de vocês teria material sobre essas tecnologias que citei (para trabalhar no Android) ? Sites ou livros para aprofundamento?

**Caso tenha dito algo errado uma correção é bem-vinda…

Bom pessoal, com bastante pesquisa (muita mesmo, mais de 50 links visitados e salvos rs) consegui encontrar uma luz no que eu queria.

Isso que eu pesquisei pode ser feito (no meu caso com java) usando a biblioteca javax.sound.midi que carrega e toca arquivos MIDI.

Pra se aprofundar nisso só fazer uma pesquisa no google sobre essa biblioteca mesmo, porém vou deixar uns links utéis aqui.

De todos, o capítulo 22 do Deitel foi o que mais me atendeu e explicou bem. Vale também dar uma olhada na documentação da biblioteca.

Quanto à aplicação em android eu não pesquisei ainda mas assim que achar complemento esse post.

O livro ‘Head first Java’ utiliza a biblioteca javax.sound.midi como base para a construção de um exemplo.

Quem sabe encontre algo de interessante.

Abraços

Então, realmente essa biblioteca vai me ajudar, inclusive no livro do Deitel é criado um exemplo (capítulo 22).

Eu continuo minhas pesquisas e descobri a biblioteca jMusic que é bem completa, com ela eu posso até construir partituras, segue alguns links pra quem se interessar (em inglês):

Basta saber se posso usar no Android, isso eu ainda vou verificar.

Obg pela resposta PAmaranto!