Page 1 of 1

Open Source?

Posted: Wed Mar 01, 2017 12:32 pm
by tessellated
Hey Alex,

do you have any plans or thoughts about uploading SunVox's source to GitHub?

I think it could be the 'Blender' of music!

Regards!

Re: Open Source?

Posted: Wed Mar 01, 2017 11:07 pm
by queries
I can't speak for Alex of course, but I will note that parts of SunVox were once open source through version 1.3b; the available versions are mirrored here, with commits for each published version so you can see the differences over time: https://github.com/warmplace/sunvox_sources

I personally agree it would be cool if it was all open source :) but I also don't mind that Nightradio has chosen otherwise for whatever public or private reasons he might have.

My personal approach has been to embrace what SunVox itself is good at... great modular synth design tools, cross-platform UI consistency and file portability, legacy hardware support, backwards compatibility, efficient resource usage, etc... and to combine that with SunVox-compatible tools that augment its capabilities in useful and interesting ways, while allowing Nightradio to focus on the core audio engine and native SunVox interface.

The SunVox DLL is available for several platforms and allows for commercial use, the only restriction being the inclusion of a copyright notice. The DLL distribution has examples for C and PixiLang, and here is a wrapper for Python that I started writing last year: https://github.com/metrasynth/sunvox-dll-python - other languages that can do C bindings should be easy to port it to.

You can't do everything in SunVox DLL that you can in SunVox itself. But there are creative ways to approach its limitations. For example, you need to provide your own code to make certain changes to projects or to save .sunvox/.sunsynth files, which leads us to discussion about the file format: :)

The file format is a nicely structured IFF-based format, and was fairly straightforward to create a nearly-complete implementation of using Python, based on hints and some experimental code that others had provided in the past: https://github.com/metrasynth/radiant-voices

Since Nightradio doesn't have time to build exhaustive documentation for the file format, I'm hoping over time we can use the code in radiant-voices to produce complete documentation about the file format, and also auto-generate similar read/write libraries for other languages like PixiLang, JavaScript, Lua, Ruby, C++, or whatever else we as a community might be interested in.