Audio isn't playing when I'm outside of attenuation range.

I have a level with 4 different audio components in it, staggered across the level. All are looping the same song, but each one is playing a different instrument’s track. I need all 4 of them to be synced up, but it seems each component only begins playing when I’m within its attenuation range.

The odd thing is, each of my sound waves’ virtualization mode is set to “Play on Silent.” So they should be playing no matter whether I’m in range, right? And it’s not like I have a million sounds in the level. Aside from these four, there are maybe three other audio components in the level, so I shouldn’t be maxing out my audio channels. What gives?

How are you playing the sounds, can you show a bit of blueprint?

( there’s a lot of different ways )

Ok, bizarre. I can’t even get that play node to work.

Say if you particularly want to do it that way for some reason, and I’ll have another go.

In the meantime, my two favorite methods are:

  1. Spawn the sound with:

notice the attenuation is set there, the settings I was using are:

That has the exact same effect as the Play node. The sound only starts playing when you enter the attenuation radius.

It seems to virtualize the sound correctly after you enter the attenuation radius once (i.e., if you leave and come back, the music is all still synced up). I might try spawning each sound at the player’s location (with the volume at 0) and then moving them to their actual position in the level.

I’m having the same problem. I added sound attenuation to a video that was playing on a plane, but when the player exits and re-enters the radius the sound restarts and is not in sync with the video. Any ideas on how to resolve this?

With this code ( probably any code here ), once the sound starts in sync, it will stay in sync. The problem is starting it when the player is out of ear shot…

Fix
In the asset editor of the SoundWave being played, scroll down to Voice Management and set the Virtualization Mode to Play when Silent.

You might also want to play around with the Loading Behaviour - I’m using Prime on Load, for example.

Hope this helps,
Sophie :hibiscus:

11 Likes

I’ve managed to solve this problem in my own project. I was having this exact issue where the sound virtualization would work fine if set to “Play when silent” AND the sound started playing when the player was within the attenuation radius. In this scenario you can leave and enter the attenuation radius, and the sound continues playing as expected.

The issue arises as you mentioned, when the sound starts playing and the player is outside of the attenuation radius. If you enter the attenuation radius in this case, it won’t be playing.

I fixed it by replacing the Sound Cue with a Metasound instead. The Metasound itself is really simple, and just plays a single sound set to looping. Here I also had to make sure the Metasound was set to “Play when silent” too.

1 Like