Struggling with project structure

To add a note on this: there’s a built-in gui, that just does that: makeGui. Besides you could consider using VarGui from the miSCellaneous_lib quark. An example for both is given here (as a side note in a thread with a different topic):

Concerning the storage of data, I often did it like this (but others might disagree): store SynthDefs in one or more scd files and load these from the startup file ( Sclang Startup File | SuperCollider 3.12.2 Help ). If you go on to work on a different project you can easily outcomment load messages in the startup file.