How to regroup different events for voice control?

Hi all,

I have a problem with voices control and I don’t know which is the best way to solve it.
Let’s suppose we have a motorbike game, with three models of bike: bike X, bike Y, bike Z
Every bike has its own related engine event with its own samples.

During the race I have up to 30 bikes running at the same time. The audio landscape is too crowded, so I would like the player to hear only the 5 bikes nearer to the camera (including, obviously, the player’s bike).

I thought the “Max Voices” in the Polyphony tab might be the solution; unfortunately, the problem with this - If I understood correctly the manual - is that the max voice limit is applied only to that event. So If i set it to “5” for example, I will always have only 5 engine X, 5 engine Y or 5 engine Z event instances, but I could have up to 5 + 5 + 5 = 15 engine instances, that is too much!

Decreasing the value does not solve the problem either, I could easily hear less than the desired 5 bikes if the nearest bikes share all the same type of engine event.

It could be useful to add the possibility in the mixer to apply a Polyphony setting to a group of events: for example in the mixer one could create a group and then apply the “Max Voices” to this group.

Is it possible now to do such a thing with Fmod Studio? Or is there another way to solve the problem ? I could create a “Generic_Engine_Event” containing all the engines as nested events and then applying the max voices to this generic event, but it does not sound too intuitive to me.

Last, how do I set the “Voice stealing” in this motorbike example? I think it should be off, since the voices should be stolen as function of their priority, and if they have the same priority as function of their distance from the listener. Instead, the voice stealing should override this behavior and play the sound every time a new event instance is triggered. Am I making a good reasoning o maybe I misunderstood something?

Thank you as always for your time and support,

best regards

LucaPic

Hi LucaPic,

Not at the moment, we do plan to add higher level voice management in the future.

This setting controls whether the events will swap in and out, or whether they will just fail to play and remain silent if there is too many instances already playing. It sounds like you want to set voice stealing on.

Internally FMOD automatically manages the number of playing sounds swapping in the louder sounds for quieter sounds to manage system resources, so if you are doing it to improve performance it should be fine to play as many instances as you need. If you are doing this for any other reason then it could be handled in code on the game side using EventInstance::setMute.