At present, I want to realize the function of program acceleration, so the sound effect will be accelerated accordingly, but I have tried the SetPatch interface, but it will cause the pitch to become higher.
I searched for a long time and found that most of them use DSP, including official recommendations, but DSP has limitations, because its value is 0.5-2, so the maximum supported speed is 2 times.
I also found that setMusicSpeed in Sound seems to be able to meet the requirements without causing the pitch to become higher. However, I am currently using EventInstance to play audio, and it seems a bit troublesome to obtain it.
So I would like to ask if there is a better solution that can change the overall audio speed under the Bus, or change the speed of a single EventInstance.
What is the official recommended practice? The current DSP should not be able to meet the demand, or is there any third-party DSP that can meet this demand?
We have a way to speed up sound and pitch using setPitch, and we have a way to change pitch without changing sound using a DSP, so combined you have a way to speed up sound without changing pitch by playing at twice the speed and half the pitch.
To do this at the bus level you will need to drill down to get the ChannelGroup and call ChannelGroup.setPitch on that- you can also set the pitch to greater than double the speed in this way.
system.getBus("bus:/", out FMOD.Studio.Bus master);
master.getChannelGroup(out FMOD.ChannelGroup masterChannelGroup);
masterChannelGroup.setPitch(2.0f); // Play twice as fast
coreSystem.createDSPByType(FMOD.DSP_TYPE.PITCHSHIFT, out pitchShift);
pitchShift.setParameterFloat(FMOD.DSP_PITCHSHIFT.PITCH, 0.5f); // Play at half pitch
// Clean up dsp when finished