Idea Separate rendering and control into different processes
This is an unfinished idea or question, so it is probably even less fleshed out than normal notes.
SuperCollider is split into a server and a client. The server can run independently of the client and can be controlled over OSC. There are advantages to this approach:
- Server and client can be running on different machines and connect over a network
- Server and client can use different technologies that evolve independently of each other. (Ex: the client can use a GUI library, but you don’t have to include that in the server.)
- Bugs & crashes in the client don’t bring down the server
- Enforces a decoupling that lets you easily swap in a different client (ex. easy to control the super collider server via Processing)
Downsides:
- Significant increase in complexity for the server to communicate with client. Everything is a remote procedure call now.
- Also remember that the server must send data back to clients.
This architecture could be implemented for Feedback Crystal Studio. The main motivation would be to use a richer GUI framework like Compose.