In the video below, you can see me playing an event in FMOD Studio, that contains two looping sounds. They are set to loop infinitely and also when Distance is 0. However, if I drag around the distance slider a bit, they will sometimes stop playing for no apparent reason. I do not understand why this is happening. It only happens sometimes. This looks like a bug to me.
This isn’t a bug.
That’s why this is happening: The trigger region of the instrument on the first track runs from 0 to 24, and the trigger region of the instrument on the second track is runs from 0 to 16. Thus, when you increase distance to above 24 (as you do in that video) both of those instruments are untriggered, and begin their untrigger behavior.
In almost all cases, untriggering an instrument tells it to stop. In the case of a looping asynchronous single instrument, the default stopping behavior when untriggered is to finish playing the asset it’s playing, then to stop playing. That is what you’re seeing: When you untrigger the instruments, they finish playing out the asset they’re playing, then stop.
It sounds like you want the instruments to continue playing regardless of how high the the parameter’s value increases. If that’s the case, the solution is simple: Don’t untrigger the instruments at high parameter values.
- Click and drag the right edge of each of the two instruments’ trigger regions to the right until they reach the maximum value of the parameter. This will ensure that they are not untriggered at any parameter value.
- If you want the instruments to fade to inaudibility at the distance values they currently do, you’ll also need to remove those instruments’ fade-out curves, and replace them with automation of those instruments’ volume properties.
I want the sound to always play when the distance overlaps the trigger region. At 0:09, the distance is 0, which overlaps the trigger region of the bottom sound, yet the sound stops playing. I don’t understand why.
Are you saying that once distance leaves the trigger region of the bottom sound, that sound will become untriggered, and then, when I move it back into the trigger region it stays untriggered and thus stops? I would expect the sound to become re-triggered when distance overlaps it again.
The instrument is re-triggered when the playback position overlaps it again - but re-triggering an instrument does not cause the existing instance of that instrument to “stop stopping.” Rather, triggering the instrument a second time attempts to start playing a second instance of that instrument.
Normally, this second instance would start playing immediately, and you’d be able to hear both instrument instances playing at once - but you have set the polyphony of the instrument to 1 and the stealing behaviour to “none,” meaning that if there is already an instance of the instrument playing, no new instance can start.
You may be wondering why re-triggering the instrument doesn’t cause the existing instance to “stop stopping.” It’s because starting a new instance of the instrument instead supports a greater variety of behaviors: There’s all sorts of things you can do if you can play multiple instances of the instrument simultaneously, and if you do just want one instance of the instrument to play continually, you can do that by preventing the instrument from being untriggered, as I described in my earlier post in this thread.
I understand now!
I’ll also experiment with a different solution: Setting Stealing to Oldest should “re-trigger” the sound as I was expecting, and in my case, the sound is basically pure noise, so having it restart at the beginning won’t be noticeable (and there won’t be an audible pop as it’s doing that while fading in).
But if that doesn’t do what I want, I now see how your solution is the fix.
Thanks for the thorough explanation!
If you don’t mind the asset starting over from the beginning, that solution should work perfectly, and would save you from having to replace the fade curves with automation.