Hello I currently have a pretty large Metasound with some decently complex logic (involving a few metasound patches inside etc) and this Metasound has many inputs which I need to play around with. 20 wave arrays, and 1 pan and volume input for each wave array, plus a bunch of other inputs (so all up, at least 70-80 inputs).
I created a generative ambient system inside this Metasound, with custom logic so it works in a particular way that I want. I now want to use this Metasound as a preset 20 times, where for each Metasound I can change the waves used, and all the input values.
Currently UE5 simply doesn’t feel designed to allow me to do this without massive headaches, so this is both just a feedback post to hopefully encourage some workflow changes for Presets, but also I’m curious if there are any recommendations on how to get around this currently.
Check this screenshot below:
[Image Removed]
There simply doesn’t seem to be a way for me to easily control these 20 different instances (whether using presets or not).
If I use presets:
- The visuals become crazy
- I can’t easily change input values due to the visuals. I have to basically go through the input list 1 by 1 and change the numbers. There’s no way for me to just “see” the values without having to click through every single one of them
If I use duplicated Metasounds
- I of course can’t make any changes to the underlying Metasound as I’d have to duplicate the changes across all the Metasounds.
I’m assuming there’s no way around this currently, but if there is I’d like to learn!
Otherwise, one of my biggest gripes with the Preset system is the lack of ease-of-use. It feels close to interacting with an excel spreadsheet atm. It would be great if:
- We could have a visual interface where we can much more easily be able to see and interact with input values
- The interface is customizable to suit our needs (imagine being able to set it up so that all these volume inputs are setup like a DAW mixer)
On my team I’ve generally been one to really want to use Presets due to the parent-child nature of it. But others on the team have not been so keen on using it due to the lack of ease of use / visual interface.
Hoping that in future patches this gets improved!
Thanks 
[Attachment Removed]
There is a way to setup a custom interface with MetaSound Presets so you can create more intuitive-looking interfaces for non-technical users.
You can also organize your inputs into groups/categories using “dot” notation. E.g. MyThingA could be split into 3 things if you do, “My.Thing.A”. This way you can make drop-downs and organize it a bit better.
There are some things on the roadmap to make this sort of thing easier to manage for sure.
I’ll forward this ticket to some of our technical sound designers for pro-tips on how to deal with this issue at Scale.
[Attachment Removed]
I did see that in 5.6 there was the addition of user preset widgets, hopefully that helps as we’ll be moving onto that shortly.
How exactly does the input categories work? I just need to name the inputs using dot notation and they’ll automatically be categorised into drop-downs?
And also looking forward to hearing about the pro-tips, thanks!
[Attachment Removed]
>I just need to name the inputs using dot notation and they’ll automatically be categorised into drop-downs?
Yep.
I’ll re-ask my tech audio folks about this thread.
[Attachment Removed]
Awesome, the dot notation is great! Definitely helpful for organisation.
[Image Removed]
Couple small bits of feedback regarding this:
- It’s quite tedious having to select every single member and copy paste a category name into the name field. It would be great if you could just select multiple members and just add them to a new or existing group. Just having some batch editting tools in general for this will help make this feel a lot more user friendly. Takes way too long to edit 50 members. And worse if you want to make changes.
- Currently everytime you ‘enter’ a new name into a member name field, it automatically scrolls back up to the top of the member list AND unfolds all groups, so every time you have to scroll all the way back down just to select the next member to change a name for. Just makes the process that much longer when renaming a lot of members.
[Attachment Removed]
Hey there, some initial thoughts! Some other folks from Tech Audio are looped in here and are free to chime in as well if I’m off base or missing anything.
The features around preset widgets that you’re starting to see in 5.6 are the culmination of a lot of this similar feedback. There’s another evolution of it in 5.7 and there will be concrete examples you can get your hands on within the month (timeline permitting) releasing on FAB. Depending on how technically deep you want to get, I’d recommend waiting for the FAB release, as you’ll be able to have a good launch point for forking off your own widgets from there.
Even with all these features around preset widgets, you will have to compose that UI/UX yourself, and converting a MetaSound with 20+ inputs will be a good chunk of UI/Widget work, but well worth the investment.
It’s still recommended that you follow best practices around MetaSound authoring, namely:
- Utilize parameter namespaces per Aaron’s point - it’ll help break up that flat list of inputs into something a bit more manageable at a glance.
- Where possible, try to split isolated chunks of functionality into separate assets and handle triggering them from a higher level system like BP. Especially when it comes to a multi-layered MetaSound like you have here, there’s kind of a “sweet spot” right now in the tech when you find a balance of responsibility between BP and MetaSound.
For mass editing, the MetaSound Builder API can be used within an Asset Action or Editor Utility Widget to quickly perform an operation over many assets at once. You just need to get familiar with using the API on an existing asset and modifying Literals on said assets via BP, Python, or C++. Then you can write quick scripts to accomplish your goals here rather than going one-by-one.
[Attachment Removed]
Thanks Seth. This sounds good.
Is there a way for me to make sure I’m notified of these upcoming FAB releases? Would love to check them out when they’re available.
Re: BP and MetaSound balancing, that makes sense based on where the UX is currently. Could probably just split up all the wave arrays into individual metasounds and recreate the generative logic in BP. That would also help us with the following problem:
One of the other issues I’ve been having is that this large MetaSound has lots of different potential sounds playing in combination. There’s around 20 wave arrays, and it’s best to mix it in-game so there’s context of everything else going on, which is not really possible by default. We decided to try and build an in-game mixer UI with 20 sliders that change the values of the MetaSound in real-time. That part was pretty easy, but the problem is that we needed to make the in-game changes permanently apply to the MetaSound. That part was more difficult (we didn’t end up building it because we didn’t have enough time for it - will hopefully come back to it later). Our idea was to save the value changes to a JSON and then use the data from the JSON to automatically update the MetaSound when the game ends or something. That way we basically have an in-game mixer that has lasting effects on the MetaSounds. Would really be great to be able to do something like this by default! (Also if you have any tips on the best way to do this, I’m all ears).
-
With the mass MetaSound editing you mentioned, I’ve been already using Python to perform batch tasks on assets which has been very helpful. But I haven’t been able to get the scripts to work on MetaSound graph node values or inputs/outputs/variables. Is that possible? Initially I was using AI to write me scripts, then I ended up building a little app with a UI interface that allows me to select path locations, rules, etc and then it generates me Python scripts I can drop into the UE log. That’s worked really well for things like creating, duplicating, renaming, and assigning assets based on a set of rules (except for getting inside the MetaSounds like I mentioned). I personally don’t know how to code so I’ve been relying on AI to help me with this. You mentioned modifying Literals using Python, so do you have any advice on how I’d go about getting this to work on node values or inputs/outputs/variables? Would be great if I can do this by simply dropping in Python scripts instead of building an EUW.
[Attachment Removed]
Hello, the Fab plugin just released yesterday and you can download it here: https://www.fab.com/listings/d44cbd49\-7691\-4f82\-abdb\-6428c78508f6
It includes a variety of widgets you can use to design more comfortable-looking interfaces for modifying input values. Hope it helps!
[Attachment Removed]
Thank you Eric. We are still on 5.6 for now but should be updating to 5.7 soon and when we do I’ll be downloading this.
[Attachment Removed]