First, i would like to thank you for providing Renoise Song in xml format. I remember few years ago a suggestion about using xml, you were already thinking about this and this is now great for developing useful conversion tools.
I will share with you my thoughts/questions about the xml format… if we can have some improvement on some fields, it could be great!
I don’t think this is a good opportunity to have a stamped official library… even if i agree that from a developer point of view, open source project are often fragmented and can be somewhat not really efficient, but it’s impossible to satisfy everyone with a single language/platform. You will always find someone that wants to use its own preferred language/platform/technique… sometimes for good reasons (even for freedom! ). I guess this is even preferable, as we can all have benefits from these various sources of creativity.
For example, I did the .NET API because I’m mainly developing with this platform for the past few months (although I was developing in java for the past ten years also…) and I need a .NET API to easily build a conversion of Renoise Song to a proprietary optimized format to embed music in realtime gfx/sound demos… very personal and specific needs, but I found that it’s important to share this with the community, because it can increase creativity!
So for Renoise, my feeling is that the most important official API for manipulating Renoise Song/Instrument files is currently the XSD model. I would expect more an official API inside Renoise, for example for developping plugins inside Renoise itself… but then, i would expect that this API will be delivered by Renoise Team (it is so critical that you must hold the coherence of such an API - The language doesn’t have any importance - it easy to plug a C API to a .NET/Java implem).