Воспроизведение звука (передача буферов) в значительной степени должно быть сделано с Android java apis
Синтез может быть выполнен на нативном или Java, в зависимости от того, что предпочтительнее.
Короткие (несжатые) сэмплы могут воспроизводиться повторно, но вы, вероятно, также захотите переходный процесс атаки. Возможно, у вас может быть атака, сустейн и освобождение, повторение сустейна, пока нажата клавиша. В идеале каждая выборка должна составлять целое число периодов ее основного компонента, чтобы вы не получали кратковременный переход при переходе между атакой, чтобы выдержать или выдержать, чтобы затухать.
Я уверен, что вы можете найти где-нибудь код для FM или другого синтезатора ... это вы, возможно, захотите внедрить в нативную библиотеку, которая передает буфера в код Java для передачи в аудио API.
Плохо то, что в Android уже есть встроенный миди-синтезатор, но ему явно не хватает динамического интерфейса, поэтому он может воспроизводить только миди-файлы.