Quietest stealing policy

Hello,

I found a weird behavior of quietest stealing policy.

For example, I take the “Weapons/Explosion” event from the FMOD Studio sample project, set up “Max Instances” into 1, and “Stealing” into “Quietest”. Then, add “Send” and automation for its level with a parameter. Something like that:

(specific bus and parameter aren’t important, these already exist in the project).

And now, I just start to play this oneshot event via Studio API in an infinite loop with a one-second interval:

while (true)
{
    if (IsTimeoutOver())
    {
        FMOD::Studio::EventInstance* instance = nullptr;
        description->createInstance(&instance);

        instance->start();
        instance->release();
    }

    system->update();
    Sleep(20);
}

Everything works fine and as expected: I hear “Boom” every second.

But if I set the parameter to some non-zero value (and the “send” level becomes non-zero too) stealing policy looks like “None”: I hear only one “Boom” every 3 seconds (which is the length of the event).

Is it wrong or am I missing something?
FMOD Studio 2.02.06

I have reproduced this issue as you’ve described, thank you for flagging. We are currently investigating a bug with the “Quietest” voice stealing setting that might be related to this behaviour. You can workaround this by overriding the minimum and maximum distance on the event instance before calling EventInstance::start, e.g:

while (true)
{
    if (IsTimeoutOver())
    {
        FMOD::Studio::EventInstance* instance = nullptr;
        description->createInstance(&instance);

        instance->setProperty(FMOD_STUDIO_EVENT_PROPERTY::FMOD_STUDIO_EVENT_PROPERTY_MINIMUM_DISTANCE, 1.0f));
        instance->setProperty(FMOD_STUDIO_EVENT_PROPERTY::FMOD_STUDIO_EVENT_PROPERTY_MAXIMUM_DISTANCE, 20.0f));

        instance->start();
        instance->release();
    }

    system->update();
    Sleep(20);
}

Please let me know if that doesn’t work for you and I will investigate further.

Hi,
Unfortunately, this doesn’t work. The behavior is precisely the same as without these two lines.

So it does, I must have missed the part with automating to a send when testing before.
That is definitely a weird and separate bug, even if the send is muted it still occurs. I’ve passed this on to the development team to look into.
Thanks for reporting this issue!