Hey Michael! It's been a minute!
Thanks so much for that suggestion! I took a closer look at this code and I'm actually not doing Machine.add(); four times in a row, but rather spork ~ thingOne(); four times (although I do Machine.remove() four times to remove the shreds by ID).
I still think the thing that I forgot to do is to add me.yield(); in between each of these (or at least at the end of the four lines) to keep the running audio smooth. I'm going through and trying it out.
Since each of these functions that are running concurrently are loading large files into SndBuf instances, I'm hesitant to do the normal Chuckian thing and load it all up first and then let it play on demand using, as you suggest, a start() function or similar. Also, because I'm triggering these "cues" from across a network, I'm trying to trade "immediate and real time" for "reliable and low-memory impact." I've definitely built applications like that with Chuck that ate all the memory before! There's no streaming from disk implemented under the hood, unless I'm mistaken.
Let me see how this works and I'll report back!
Mike
--
Michael Clemow
Artist/Composer/Sound Designer
(he/him)