Well - it's really not complicated (even me, who knows nothing about midi, ogg, mp3, au and wav solved it).
The alternative 1 would be to implement it in c/c++ and call a native interface - more complicated in my opinion and not portable, but with the benefit that it will run on computers without soundcard
And the second: implement as well in a different language, but make it executable, and call Runtime...
Both suffer from the fact, that there is no volume - control to the user.
If the users have a very old jvm, it could be an argument.