A few weeks ago JUCE announced some major changes to their EULA. It caused quite some uproar among the audio developer community. They have rolled back on some of the changes but it still leaves a bad taste. If JUCE were to further change their license terms, and some day get rid of the GPL version Cabbage would be in a very precarious position.
With this in mind I’ve started looking at redesigning Cabbage from the ground up, without JUCE. Rewriting the entire system would be a mammoth task, it’s simply not feasible. But I’m excited about the idea of redesigning it and delivering a better, more streamlined version of Cabbage for the future. Much of the design is still be worked out but there are two things that I’m almost certain to.
- Integrate the IDE into VS Code
- Switch to HTML/CSS/JS for plugin UIs
The end-user experience will remain largely unchanged: the Cabbage syntax will persist, users will retain access to a wide array of widgets, and will still be able to export to all popular plugin formats. The bulk of the new work will occur behind the scenes. I’m sure it will lead to a much more sustainable software, and I’m also pretty sure I will be able to get much performance out of it too. I’ll keep you posted on progress. I hope to showcase a good working prototype at this year’s Csound conference in Vienna. 




Because I’m no longer using JUCE I don’t have the same array of tools at my disposal. So I would need to either writing a robust soundfile reader myself, or use something like libsndfile. The other issue is that because the new UI is running in a browser, it doesn’t actually have access to local files. The solutions for this are to add the files to the server directory, the one your index.html file lives in, or open them using native OS methods and send the data back to the UI which Cabbage will do automatically.