Fiquei curioso se já existia alguma aplicação que fazia a leitura por meio do arquivo MIDI e ei uma pesquisada, encontrei esse APP: https://play.google.com/store/apps/details?id=com.rubycell.pianisthd
A leitura por meio do MP3 fica muito mais "user-friendly", mas imagino que daria mais trabalho
Sobre o mapeamento de teclas, a ideia seria "escutar" pelo input do usuário e associar o botão que ele pressionou à tecla do teclado. Dessa forma, se o usuário tiver um dispositivo ligado ao computador (como um teclado musical, ou outro aparelho relacionado à acessibilidade), é possível configurar manualmente quais os botões pra cada tecla, já que o computador sempre vai relacionar uma tecla/botão à um código/número, etc.