Riddle: how to free synths via control ids

Well, I have described only the trade-offs … I only wonder it might have been a mistake to use the same structure for two things:

  • node ordering
  • message dispatching

But anyway, this is where we are with scsynth, and the only solid alternative is to do the work on the sclang side. So yes, node bookkeeping is the only way, even at a performance cost (for dense grain clouds it doubles).

Thanks, this is a good overview.

  • spreading out the message timing is something I tried, it can become a little tedious, too. But it is an option, using a PriorityQueue.
  • a full group matrix would be too large
  • tracking nodeIDs is a performance penalty, but works
  • buses will make the problem less probable, but essentially shifts it only a bit. Still, no control can have two values per block. Audio rate buses would be safer, but still you could have rare cases of hanging notes.

unless someone comes with a smart trick – ugen commands maybe?