Several times now I have tried (and largely failed) to create and maintain larger SuperCollider systems for myself. I have thought a bit about why I find it difficult and what can be done about it and I was wondering if anyone out there has nice tips on being able to maintain a larger system of sorts for a longer time?
I had a few experiences lately where I got back (after the summer vacations) to using and maintaining systems of my own where I had for example started work on a feature and not finished it (and then forgotten what that feature was, how far I had gotten etc) making it very frustrating for me when I just want to make music with it. And then, additionally SuperCollider’s error system becomes increasingly harder to use the more complex the system becomes in my experience. I hope I have learned my lesson, so for now these are the things that I have forced myself to do in order to maintain some kind of order and hopefully find myself in this situation less often:
- Use a version control system like GIT
- Keep the main branch of the project clean - this should always be able to run and compile as it is.
- Keep a seperate branch(es) for developing new features or changing existing ones, and then when they are done, merge them in the main.
- Use unit tests to automatically test the features of your system so that you can easily detect when something breaks.
Most of this I guess just comes down to good software practice but I unfortunately have a tendency to neglect some best practices when it comes to my own stuff for myself. Hopefully not anymore.
What’s your top tip for maintaining a larger system in SC ?