Download

Dynamically change multiple submix sends for a single audio component?

I seem to be having a difficult time setting up send amounts for a single audio component. I have three submixes, that if I set the sends in the soundcue and change the sends between them, work fine.

Once I take that functionality to a blueprint to assign those sends, it seems to only send to the first one I set and ignores the other two, or maybe they automatically get set to 0. Not quite sure.

Maybe I’m missing something. It’s tough to get a mental picture of the signal flow sometimes.

Anyone have any ideas?

EDIT: I also can’t seem to access the submixes assigned to a soundcue and split the structs. That option just isn’t there like it shows in the set up guide.

Hey Mitchell, would you be able to post screen grabs of your BP?

Sure thing. Here is how I’m calling the sends in the blueprint, which is a child of AmbientSound:

Here is how I have the submixes set up:

The soundcue base submix is EAO_BaseSubmix at the top. I’m trying to send it to the three other children of EAO_OcclusionSubmix below it.

I’ve tried it with assigning the submix sends in the soundcue, as well as only assigning the base submix in the soundcue.

I may be going about this in the completely wrong way, but I have been able to get the three sends to work just fine if they’re assigned in the soundcue and I manually set the send amounts before playing the game.

Tweaking the send parameters in the soundcue as shown above works how I expected.

I’ll try to reproduce this when I get in tomorrow.

Awesome. I appreciate it.

I’m not sure if we tested this case, hah!

I tend to find these things because I usually have some dumb idea I obsess about until I find some way to make it work or find some more obscure bug.

So, I could not reproduce this issue. Aaron also scanned through the code for this and on sight he couldn’t see anything that might cause your case.

In my test, I used 3 very different SubmixEffects (an EQ, a Reverb, and a Compressor) and I make them really obvious effects. I was able to dynamically control all three via the same Blueprint command you’re using.

My suggestion for you would be to use 3 very different sounding effects.

The reason being that if you’re using EQ, parallel EQ processing is not obvious. The impact of each effect is made more subtle because passing a parallel signal that is not EQ’d in the same band will actually just lessen the effect.

There might also be some phase distortion on the mix down.

Can you try to reproduce this with 3 different sounding effects?

By the way, here’s my test graph:

https://forums.unrealengine.com/filedata/fetch?filedataid=117005&type=thumb

Hey Dan. Thanks for the information and taking a look for me. I did try three separate submix effects and it does seem to work fine.

I made a video showing the issue I’m having if you want to take a look. The approach is a bit unorthodox, but the results don’t seem to be reliable when I try for the same result in two different ways:

I have been able to reproduce this issue. This will cause an assertion and by using the debugger it was very easy to track down the problem which is in the ActiveSound.cpp file. The iteration is bugged and that is causing the assertion because you iterate on an array with a wrong index. I’m prepping a pull request that will solve this crash. Would you like me to push it to the master branch or the 4.17 perhaps?

With my fix i got the very same mix chain to work properly as it is intended.

Edit:

Nevermind, the issue is already avoided as per latest changes in the master branch. The iteration will no longer fail and that explains why @dan.reynolds were unable to reproduce the issue.

Simply put, this issue is already fixed in 4.18.

Great to hear! Thanks for looking into that Konflict!

Yes i found this to be interesting to look into the assertion, but as i just updated my previous post, the issue will be fixed in 4.18! You can maybe do it for yourself if you use a source build.

Reference bulk commit: https://github.com/EpicGames/UnrealEngine/commit/6b2c402ca8c33a06ab1f98af87d17a8ef16e89dc

I just may have to do that. Thanks again.