Hey guys, having fun with the new audio tools. Have set up a series of synth components triggered by collision from numerous particle systems. It works, and excited about tweaking it for best result. However, any time spawn rate is changed on one of the particle systems which is triggering synth component (in cascade, not dynamically), synth triggering becomes erratic and eventually stops. Restarting editor resolves issue. I’ve been able to repeat it a number of times. Becomes a bit laborious to have to restart each time I make a change in order to hear result.
You should give us more information about your setup. Tell us exactly what you’re doing.
When you say “synth component”, are you talking about the modular subtractive synth, granular synth, or your own custom synth? “Synth component” is a base class that required derived class implementations to actually make audio.
Assuming you’re talking about the modular sub synth component, spawning too many of these is problematic. I don’t really recommend using more than a couple at a time. Each sub synth is a polyphonic synthesizer with 12 internals voices (each voice performing LFOs, filtering, etc). They can get expensive very quickly and will result in overall performance degradation and audio buffer underruns (i.e. stuttering).
I’d recommend creating a SINGLE synthesizer (or a small number of them) and simply parameterizing it based on your particle system behavior. If you’re using the sub-synth, parameters could include filtering frequencies, LFO-rates, modulation envelope values, etc.
A potentially better solution might be to use the granulator and control granulation parameters such as spawn rate, pitch-values, envelope durations, etc, based on particle behaivor.
If you have a ton of different particle systems going on, you might want to write some logic that only “realtime synthesizes” the closest particle system or the one that can be interacted with by the player and play a looping sound source for the others. In this way, it could be a sort of audio LOD system.
I have been using the modsynth, and a few instances. It will run fine and play for multiple hours, as long as I don’t change spawn parameters on the emitters that are controlling the note on via spawn or collision. As soon as I change spawn parameters, it stops functioning until a restart. Am posting a proof of concept in a separate thread.
Could totally be a resource issue, and in the future I’ll use the synth component directly and not the modsynth, just wanted to get my hands dirty quickly and try some things out.