Hello! I’ve got this lake area, where I’d like to create a consistent whooshing water ambience. I created a series of FMOD event emitters to cover (relatively) the whole area.
In FMOD, I have the max instances at 5 and the stealing set to Virtualize. However, once I start actually moving around, the audio becomes more “electronic-y” or distorted. It is playing in a way that is not the original file. I’ve uploaded a video demonstrating.
It changes a few more times but I had to shrink it for video size.
I am confused as to what this could be?
It sounds like you’re getting phasing as a result of the various different water event instances playing the same content slightly out of sync. Assuming that’s the case, there’s a few different ways in which you could fix the issue. Off the top of my head:
- You could set the instruments containing the water ambiance to be asynchronous instead of synchronous, to ensure they start at very different places when unvirtualized and so are less likely to exhibit phasing.
- You could replace all of your water ambiance event instances with a single event instance that moves around as the player avatar does.
- You could ensure all the instances of the event remain perfectly in sync by removing all audio content from the spatialized event instances and replacing it with transceiver effects set to receive - and create a single “master” event instance that plays the water asset and contains a transceiver effect set to transmit.
- You could prevent phasing by altering the content of the water ambiance event in such a way that different instances of the event play are unlikely to play the same asset at the same time. The easiest way to do this would be to use a multi instrument with a large number (greater than 5, and ideally greater than 10) different assets in its playlist and the shuffle playlist selection mode.
Thank you for your reply, these are all great solutions and I’m going to try all of them, however the third one stands out to me. The transceiver seems to be the best solution (in my head) that I want to try however, I am curious, are any of these solutions more resource heavy/light than the others?
The second solution is the cheapest in terms of memory and CPU, as it only requires a single playing event instance.
The third solution is a close second, as only the “master” event instance actually plays any instruments; the additional event instances don’t play any instruments and only contain minimal additional tracks and effects, so they only consume a small amount of additional CPU and memory.
The first solution is the third most expensive, as it represents making almost no changes to your existing setup.
The fourth solution would probably consume more memory and CPU than your project currently does, as it would most likely require you to add additional assets to your project for it to work.
I’m very interested in that third option, the transmit and receiver, however, even after setting it up it doesn’t seem to work? Here is what I have:
^^ Here is what the transmitter event looks like. I put the transmitter on the audio track.
^^Here is what the receiver track looks like. Receiver also on the audio track.
^^ All the bubbles in the game have the receive event attached to them.
And one transmit event is playing on an empty somewhere in the game.
However, the receivers aren’t playing anything. Is there something else I need to do?
It’s possible the reciever event instances are reaching a natural end and being stopped automatically. Have you tried setting the reciever event to be persistent, so that they remain alive event when not playing content?
That fixed it for me. Thanks!