Better workflow with Unity

I’m getting into Unity, which is one of the best and most popular game development platforms.

Now, as I’m composing music for my Unity projects with Renoise, there are some very simple additions that would Renoise a much tool for composing for Unity projects. Maybe some of these things can be scripted though, maybe I should find out.

Per-song render settings
In Unity, when I double click a Renoise song asset, Renoise automatically opens and I can edit the song. However, when I hit Render, I always want it to render a 16-bit file to …\Sound Effects\Awesome Song.wav relative to where the song file sits. However, I may want another song to render to another default path and file name.

What this would mean to me is that I’d be able to double click a Renoise song asset in Unity, edit and render it, without having to dig into any folder selection dialogs, and jump back into Unity and having it integrated into my game at once.

Also, I’m sure that song-specific render settings would be useful for more people as well.

Launch a command line after rendering
This would allow me to automatically have the song converted to Ogg Vorbis directly after rendering, which Unity supports.

Automatic looping
It’d be amazing if an option existed to merge the audio rendered from the last pattern with the beginning of the song. This would let me control how all instruments should decay in the last pattern, and produce a perfect loop, which is great for game music.

I’m fairly sure these could be scripted. There is a command in the API to render with options such as bit rate and path. Song path should be accessible through the api as well. I think I recall command line being accessible as well, through some io.{magic_command_here} -command. Maybe io.execute()… Not sure. Should check that out from standard lua docs. The automatic looping would be the hardest probably. But not impossible, I think. Render with set parameters, import the sample after render (there’s a hook for that), find out the connection point, mash the sample data together, save the result. Should be possible, methinks…

Learning LUA and the Renoise API may be too much for me at this moment. Maybe I could offer a payment if someone would be willing to develop such a script.