Hi Joseph, gosh sorry it took me so long to reply, things got busy and I guess I didn’t have notification on. Thank you for the reply!
Hopefully I can still get your input on this topic though, as I’m not further along than I was when I originally posted this question. The effect I’m trying to achieve is this: I’m working on a generative music system in which stems of music are triggered by an single action that the player does (lets say throwing a ball). These stems can layer on top of one another to create an organic Brian Eno soundscape type thing. So for example, player throws a ball, it triggers a layer of music to play, another ball thrown, it immediately triggers an addition stem that plays in addition the first layer, 3rd ball, 3rd stem added to the mix. So on.
But after a few ball throws, the density of music gets a little too much so I want to limit how many stems can play simultaneously. However, I don’t want to just stop new layers from triggering because I’ve hit, lets say, 5 maximum music voices playing (lets say 5 is the max number). Instead, I want the newest musical stem to gradually take the place of the oldest one by slowly fading out the oldest layer so it’s not jarring. Is there a way to achieve something like this? Right now I’m using the voice stealing to do this, and as you might imagine, it just immediately removes the oldest layer, which doesn’t sound very good.
Sorry for the long description! Let me know fi the question doesn’t make sense, I can try to explain it in better detail.