the problem here is if making the music interface with say MIDI, you will find the fun of platform fidelity. Java has some libraries, but last time i looked at this, they where flakey and still required extensive customisation for each platform. This was a while back i did this mind, was still at uni!
C# .Net could use the direct-x api on windows, which should greatly simplify things, but windows only.
Enless you have marks for porting accross platforms, don't bother, to do it properly takes great effort. As mentioned MVC or the slightly better
imo MVP (Model View Presenter) is the best way, target each platform using all of its native elements and design ideas.
C# is not only a great language, but won't bite you in the arse so much as java will if you want to 'break out' of the sandbox. Not too mention you could easily port it to the smartphone, which would be cool for this app
