masterGroup->setPitch not working as expected

Hello.

I’ve been messing around with the FMOD Core examples, and I’ve noticed that the pitch fade out present in channel_groups.cpp doesn’t work as expected.

It appears as if setPitch called on the master channel initiates a pitch sweep, with the speed somehow tied to the pitch parameter. (Depending on the sign of the argument, the pitch reaches the lowest possible value (0/stopped) or the max value).

I tried slightly altering the example code, to set an arbitrary pitch value and without calling System::update() periodically, and this effect still applies:

/*
	A little fade out over 2 seconds.
*/
{
	masterGroup->setPitch(0.5f);

	result = system->update();
	ERRCHECK(result);

	for (count = 0; count < 200; count++)
	{
		Common_Sleep(10);
	}
}

In this example I want all channels to be playing at half the speed, but I get an unwanted fast sweep to pitch 0. (You can try with 0.99f to get a slower, more noticeable, sweep).
The same happens if I periodically call system->update() in the for loop.

Thank you for flagging, I have passed this onto the Dev team to fix in a future release.
It looks like it’s only occurring on the masterGroup and is working for individual channels. The pitch value seems to be spiraling down or up forever until it’s set back to 1. With that in mind, you can do something like this as a workaround:

 masterGroup->setPitch(2.0f);
 Common_Sleep(10);
 masterGroup->setPitch(1.00f);

Changing your sleep and pitch as required.