As I understand it, wherever you place the FMOD loudness meter plugin, in an Event, or a Group Bus output, It always measures relative to the Listener perspective. Is there a way to read LUFS values at a particular point in 3D space, independent of a Listener?
In our project, that aims to be not so much a game as a realistic simulation, we could really use a way for an NPC to become alert when a certain loudness threshold’s reached. Many factors could cause the sound to change, dampen or be occluded, on its way to the NPC.
Any thoughts or suggestions? Thank you.
Maybe by using a second (virtual) listener at the 3D location you want to measure?
Yes, that option did occur to us. The thing is, what if the number of measurements, each in a different location, went up to tens, or hundrends at any given time? There’s a limit to the total number of listeners, right? Also, wouldn’t it be a bit of an overkill performance-wise?
Is there perhaps a way to create some kind of simple virtual “microphone” channel, using the DSP system?
Apologies for the delayed response.
Yes, the limit is 8 (FMOD API | Core API Reference).
Yes, that is why we limit it to 8.
Unfortunately, this is not something we support. You would have to create your own DSP. We provide an example of creating your own DSP with the FMOD Engine here:
X:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\core\examples
I would suggest using the Inverse Square Law when calculating the loudness, which is essentially that every doubling off distance equates to 6dB off attenuation, so if you are 1m from a sound source and it is 100dB, at 2m it will be 94dB and at 4m it will be 88dB. There are other factors such as occlusion and sound reflections, but you can approximate it pretty well using the Inverse Square Law.
Hope this helps!
Our project might not be using FMOD in the end (not because of this particular problem), but I still very much appreciate your answer. Thank you!