[Solved] a few questions...

  1. Key-off on silence: Does this feature exist in studio yet? If not, is there any recommended method that would be similar to this? Also, is there a function to STOP the event on silence?

  2. 3D auto-distance filter: I understand that you’ve implemented a method to apply this filter to events imported from designer, but do you plan on including a similar feature in studio?
    Edit: Just found the FMOD distance filter plugin. Is this the equivalent to designer’s auto distance filter? Is it more efficient than the low-pass/high-pass combo that was created when I imported my designer project?

Many thanks!

How come?

To be honest I wouldn’t mind knowing either… :smiley:

Hi Guys,

To answer your questions, I added a section on performance to the distance filtering article:

https://fmod.desk.com/customer/portal/a ... in-studio-

There is not yet an exact equivalent to Designer’s key off on silence behaviour in Studio. It is on our list of features to add, but it’s not our highest priority; Most users only use it rarely, if at all, and in most cases it’s possible to avoid it being necessary by using some combination of timelocked sound modules, quantization and snap-to-grid behaviour. That being said, one of our devs did come up with a clever way to simulate key-off-on-silence behaviour using some of our other features:

  1. Add a sidechain to the track whose silence you want to cause the “key off” event.
  2. Create a parameter, and apply a sidechain modulator to its value.
  3. Set the input of the sidechain modulator to be the sidechain created in step 1.
  4. Create a loop region on the timeline with a parameter condition based on the parameter.
    From there, all you need to do is adjust the sidechain modulator and parameter such that the parameter condition is met when the original track falls sufficiently silent.

I’ve looked into our effects, and it looks like the highpass+lowpass combination is more resource-efficient than using Studio’s FMOD distance filter plugin. The combination of highpass and lowpass is also more customisable, and unlike the FMOD distance filter, does not require you to compile a library in order to use it in your game.

As for including an equivalent to 3D Auto Distance Filtering in Studio, we already have! Under-the-hood and behind-the-scenes, Designer’s “3D Auto Distance Filtering” really is just a highpass and a lowpass effect applied at the same time; You can achieve exactly the same effect at the same resource cost by applying those effects through the FMOD Ex programmer’s API. The 3D Auto Distance filtering property sheet entries were added during a period when we thought it was a good idea to add highly specialised helper features that have their own unique interface conventions and are only useful to certain users in very particular circumstances. We have since learned our lesson.

Thanks for the info, Joseph

That sidechain hack certainly is handy! I’m surprised the feature hasn’t been implemented yet though- what is the standard method of laying out dialog with variable segments?

As for the distance filter plugin not being as efficient as the highpass/lowpass combo- that’s unfortunate. It’s much quicker/easier to insert the distance filter and set max distance than to add 2 filters, add distance parameter, add automation track, draw automation… Only occasionally do I actually want to graph out a custom attenuation curve. Is the distance filter plugin sonically more precise or robust than combining an LP and HP filter? Does it offer something that the HP/LP combo doesn’t?

Furthermore, if you had to make up numbers to compare how CPU intensive the plugin is vs the filters combo, how would you say it? How bad is it?


There is a whole lot of variation in how projects handle dialog, so I can’t really make any generally-applicable recommendations on how to handle it. Some users have conversation trees so complex that they prefer to handle dialog largely through game code, and so play all lines through instances of a generic event that contains only a single programmer sound module; Many other users have so few lines that they just put them into timelocked single sounds and create custom events as needed. The method that works best depends entirely on what you need.

The distance filter plug-in doesn’t have any real advantage over the highpass+lowpass combo. It’s primarily included in Studio as an example of how plug-ins are constructed, for those interested in making their own custom Studio plug-ins.

Yeah- that’s what I assumed, I’m not too torn up about the key-off on silence thing.

I see- I did not realize that. That’s the reason I was so puzzled as to why it was there as a plugin. Would you say it’s inefficient to the point where one should really not want to use it in an audio-rich 3d game? I suppose I may end up adding HP/LP filters instead to my events.


I do recommend against using it in any new events you create, but if you’ve already added the effect to a number of events and made it sound good, I wouldn’t worry about “fixing” them too much. If you do eventually find yourself using too many resources, you’ll want to look at a whole slew of ways to cut back, not just replacing one inefficient plug-in - and replacing plug-ins when you don’t need it takes time you could spend on improving the project in other ways.

To put it another way, it’s not as good or efficient as other methods, but that’s not a problem if it does what you need and the inefficiency isn’t getting in your way.

This project is still early, but is going to have a very large number of events. The events I do have though will potentially have a large number of instances so it may be worth replacing. It isn’t a huge deal to replace the existing distance filter plugins with the LP/HP combo. A lot of the events use the same attenuation curve anyway and I can easily copy/paste the filters from one event to another (which appears to also copy the automation curves). If altogether it helps efficiency, I can live with it.

Thanks very much for your help!