Extending SynthDef

Right… not just “best,” but “best for what.” I have to admit to getting stuck in my own perspective at times.

WRT server abstractions, I think I’m always going to be relatively conservative. For instance, this thread popped up again after seven months, where I see that I said:

The Group class is only a thin abstraction layer representing a group node in the server. Because of its name, we want to press it into service for other purposes, but in my opinion, this is a conceptual error.

At least I’m consistent :laughing:

Reminds me of what motivated my design. I had previously been working with a model that focused on instruments (Voicers), with sequencers attached to the instruments and represented in a GUI. But the GUI was based on the initial state; if I added or deleted sequencers, no updates (because I wasn’t clever enough at that time). So every micro-change to one sequence required a recompile. This was 2004, on a G4 iBook. Each recompile + reload cycle took up to 30 seconds, so, 30 changes in the space of an hour would cost 15 minutes of work time: 25% loss of efficiency. A performance almost failed because of probably multiple hours wasted recompiling and reloading during the composing process. So I had to figure out how to make it dynamic. Maybe today I wouldn’t bother, since on my current machine (thank you SSD): “compiled 1278 files in 0.43 seconds” :exploding_head: it was not like this in 2004.

(I keep on with Proto for this on-the-fly flexibility, despite occasional arguments to the effect that “object prototyping in SuperCollider doesn’t work.” If you need dynamically defined objects, then you’re going to find a way to work with the limitations. Overstated pejoratives flow in both directions – I’m guilty of it a bit in this thread too.)

Good that we’ve come around to some positive, interesting reflections. Thanks!

hjh

1 Like