Changing the sound mix on a sound class doesnt effect children.

Currently, when I change the volume via a slider, the Master Sound Class does not effect children classes. In the images, I removed the other classes and just kept Music Sound Class. You can see I have it hooked up as a child. In UMG each slider is hooked to the appropriate Set Sound Mix Class Override with the appropriate sound classes. (I know you can fully see the names, but I double checked them). The Master Sound Mix also has the “Apply to Children Box” selected. However, when I test the menu, the music slider works fine, but the master slider has no effect. All of my files in this project are assigned a class, and I can test that the music slider works affectively. Adjusting the Master slider and the music makes no difference, in the way the volume is changed and I did check the BP while playing and the button is firing, so I’m pretty sure is a child propagation issue.

Hey PDubulous,

Thanks for the clear and precise repro steps. I was able to confirm what you are reporting and have gone ahead and entered a bug report for the issue. You can track the issue following the link below on our public issues tracker.

UE-37606

Once the issue has been addressed by our engineers either myself or another staff member will return with an update.

Let me know if you have further questions or need additional assistance.

Cheers,

Well in my case it doesn’t even work at all.Slider or manual values do not affect it at all.

It took me a bit to figure it out, but you can’t affect the Sound Class directly. You have to create the Sound Class as sort of a global level and then if you want to affect it in the game, you have to create a Sound Mix and then adjust that. See the top image above. That set up allows me to adjust the volumes with sliders, but not with a child/parent relationship.

So have a parent class of these and just edit the parent class?

Some steps to get you headed in the right direction. I’m not sure where you’re starting from, so apologies if it seems like I’m starting with the basics.

  1. Use and existing Sound Class or create a new one by RightClickContentBrowser>Sounds>SoundClass. Lets say we are creating 2 called “SOUNDCLASS_Master” and “SOUNDCLASS_Music”. That will help me explain the bug too.
  2. Use and existing Sound Mix or create a new one by RightClickContentBrowser>Sounds>SoundMix. Again, we are creating 2 called “SOUNDMIX_Master” and “SOUNDMIX_Music”.
  3. Select each of your Sound Classes and in the properties set the appropriate Sound Mix. In the SOUNDCLASS_Master, you add a child… SOUNDCLASS_Music. You can actually see and edit the properties for both of these just by clicking on the nodes.
  4. I now edit one of my music themes by double clicking on it and setting the Sound Class to “Music”. You can also batch edit by right click>Asset actions>BulkEdit.
  5. After you create your buttons, you can see how mine are hooked up in the images above. So when the slider is moved, you are actually making adjustments to the SOUNDMIX and not the SOUNDCLASS.
  6. Now this is where the bug comes in. You should be able to adjust the SOUNDMIX of the parent (IE SOUNDCLASS_Master) and have it affect the child (In this case SOUNDCLASS_Music). However, that isn’t working apparently.

We messed with some work arounds, but honestly, I expect this will get fixed relatively quickly, so I just put my Master Sound Slider control on the back burner for now.

this is my setup before commenting in this post.

http://puu.sh/rQTjc/872838754f.png
http://puu.sh/rQTkI/f778e10168.png
http://puu.sh/rQTfW/d21b8d4d41.png

What am I doing wrong? I read a comment that it only works when not used from widgets… so idk what to do :stuck_out_tongue:

Did you create a SoundMix? Once you create the SoundClass, the only think left to do with that is make sure your music or sound effects or whatever have the class. But to change it dynamically, you have to create a sound mix then plug that into the properties of the sound class. Then you can change it using the blueprint set up above.

Did you check the setup? Yes all my sounds have the soundclasses that I want. All sound classes are in the Soundmixes’ properties, so it should work… but it doesn’t…

Could you please check the images more in detail and lemme know if you spot anything?

I didn’t actually see that you had 3 images there. My guess is that its something in that function. Those don’t look like sliders that you have there so that’s really the only place it could be… or whatever is driving the inputs on those.

Still no solution…

The values of those functions are static values from 0 to 1. Is that not how it works? in terms of settings the Audio Volume? :stuck_out_tongue:

For anyone having the issue with this… Just make sure in your sound class that sound mixes are indeed included in the nodes. (They’ll be highlighted with green… I missed that)

Hello PDubulous,

You bring up a really great use case for Sound Mix Class Overrides and you’re just about there with your implementation. There are a couple of things you will want to do, but first, let’s overview the functions and properties to clear up the current confusion:

  1. Sound Classes - these are your means for applying classifications to sounds. In your case, your Master class would parent all sounds and your Music class would be a child of the Master class, allowing it to inherit properties when needed.

  2. Sound Mixes - these are your means for applying changes to the Sound Class properties. Sound Mixes allow you to designate specific changes to Sound Classes from their normal state. These are especially useful when transitioning between game states as these are the most likely times when you’d want to Modify your Mix.

From Blueprints, you can:

  • You can Set a Base Sound Mix
  • Push a Sound Mix Modification
  • Pop a Sound Mix Modification
  • Clear Sound Mix Modifiers from the stack
  • Set an Override for a Sound Class within a Sound Mix
  • and Clear an Override for a Sound Class within a Sound Mix
  1. Passive Mix Modifiers - these are special cases in your Sound Class graph. The way that they work is that when you set a Passive Mix Modifier in a Sound Class, any time a Sound in that class plays, the Passive Mix Modifier is ACTIVATED for a set duration of time.

This feature is a logically driven analogy to audio ducking.

A typical use case for Passive Mix Modifiers is say applying a special mix state when Voice Over sounds are played. In this case, you would have a Voice Over class and then add a Passive Mix Modifier that applies special mix modifications (as listed in the Sound Mix Class array) to any number of OTHER Sound Classes.

However, in your case, you DO NOT want to use Passive Mix Modifiers. At the moment, your project is using Passive Mix Modifiers on your Sound Classes (that’s why they’re colored green). You do not need this and it is in fact hindering your functionality.

So with that said you would want to approach this in the following way:

  1. Upon starting your map, use SET BASE SOUND MIX to use a Master Mix Sound Mix.
  2. Remove the Passive Mix Modifier references from your Sound Classes
  3. In your UMG Graph, make sure that you SET SOUND MIX CLASS OVERRIDE in both cases on the SAME Sound Mix (your Master Mix).
  4. Set the Master Widget value to the Set Sound Mix Class Override to apply to the Master Class and set the Music Widget value to the Set Sound Mix Class Override to apply to the Music Class.

This means that you are modifying two different classes in the same Mix–your Base Mix.

Now that you have your Base Mix set and you’re overriding values as needed from your widgets, you can use Push and Pop for additional mix modifications.

I hope that answered your questions! Good luck and feel free to inquire when stuck in the future!

Cheers,

  • Dan

Bump, this is still a problem in ue4.22.3

This is really a pretty huge issue. It seems I will have to create an entirely new set of assets that behave the way I need them to in order to circumvent this.

Thanks for explaining all this, it solved the a similar problem for me, Unreal’s audio is so much more arcane than it needs to be :S

I have done everything as you have written, yet when I call the function, it does not affect the volume of the child sound classes. Why is it?