Commit Graph

76 Commits

Author SHA1 Message Date
rob gay
aeb25bb49d - Add Runtime MetaSound Builder support
- Add MetaSound Patch Interface support
- Add MetaSound Interface Bindings
#rb phil.popp
#preflight 640783bd5515f4f57b4b1268
[FYI] Sondra.Moyls
[FYI] Dan.Reynolds

[CL 24548617 by rob gay in ue5-main branch]
2023-03-07 17:01:52 -05:00
buzz burrowes
6a343186d8 MetasoundParameterPack V1
[REVIEW] [at]phil.popp [at]rob.gay [at]aaron.mcleran
#preflight 639b5db4012902cb8d76c448

[CL 23532613 by buzz burrowes in ue5-main branch]
2022-12-15 17:03:02 -05:00
henrik karlsson
fa90b399a4 Added includes for future change. This changelist only contains added #include and a couple of empty placeholder files
Tested compiling fortnite, unrealeditor, lyra, qagame with non-unity/pch

#preflight 63635997876630122adeab9f
#rb none

[CL 22958990 by henrik karlsson in ue5-main branch]
2022-11-03 14:18:47 -04:00
phil popp
07800695cd Replace use of FSoftObjectPath with UPROPERTY for dependent metasound assets.
#jira UE-156087
#rb rob.gay
#preflight 634841dffd22d1fbde5d7d73

[CL 22512918 by phil popp in ue5-main branch]
2022-10-13 17:38:11 -04:00
rob gay
84771db13f Remove input receive node injection by implementing receive implementation within non-ctor input node operator
#rb phil.popp
[REVIEW] phil.popp
#rnx
#jira UE-166569
#preflight 63445c0f360ee7edea15afdb

[CL 22437484 by rob gay in ue5-main branch]
2022-10-10 15:44:28 -04:00
rob gay
9dbc0c6693 [MetaSounds] Editor Graph Syncronization Upgrade
- Move synchronize/details panel flag to more generic ModifyContext
- Do not use MarkAsGarbage as means of enforcing not to show object in details panel to avoid leaving objects in invalid state if undo called. Check ed graph membership instead
- Get rid of leaky namechanged delegates
    - Allows for migration to isolated synchronization in the future
    - Removes conflation of having to synchronize and update views when modifying frontend document
    - Decouples concept of a specific view to update from generic frontend graph modifications
#rb helen.yang
#jira UE-151448
#preflight 632b7afdc7791417aa44126f

[CL 22142063 by rob gay in ue5-main branch]
2022-09-22 15:02:24 -04:00
rob gay
57d0be3dd2 Missing recursive call to reset sync state in prior CL
#rb trivial
#jira none
#preflight 6323a1805f55ba280ed12b0f

[CL 22042427 by rob gay in ue5-main branch]
2022-09-15 20:11:13 -04:00
rob gay
31435d69a5 Fix bug with synchronization not being completed prior to validation for referenced MetaSound graphs
TLBSRA (Too long but still read anyway)
This was due to validation moving to recursive behavior but sync not to support bubbling up referenced errors/warnings in 5.1.  This resulted in missing members after interface transforms are applied and potentially hitting ensures in validation.
...
But wait there's more!!! Synchronization on tick is now more efficient as it doesn't attempt to resynchronize/validate references already synchronized/validated in prior pass in same frame due to referencing graph needing to sync

#rb helen.yang
#rnx
#jira UE-162586
#preflight 63223e6c29254beccbf06119

[CL 22019580 by rob gay in ue5-main branch]
2022-09-14 18:49:46 -04:00
robert millar
aa6e458004 FNames containing asset paths are deprecated. FSoftObjectPath or FTopLevelAssetPath should be used instead.
Fixups for Metasound.

#jira UE-161932
#rb none
#preflight https://horde.devtools.epicgames.com/job/631f7da6a9331c69c3aa4ac5

[CL 21976387 by robert millar in ue5-main branch]
2022-09-12 19:52:49 -04:00
Rob Gay
25826b9069 Summer Cleaning
- Rename MetasoundArchetype Source file to MetasoundFrontendInterface
- Move MetaSound interface files to subdirectory.
- Break out document versioning transforms to own impl/header
#rb todo
#rnx
#jira none
#preflight 62fed263200ff87e07d77340

[CL 21458865 by Rob Gay in ue5-main branch]
2022-08-19 12:14:31 -04:00
phil popp
5fc6f172c9 [MetaSound] Allow Constructor pin to be set from BP
#rb Rob.Gay
#jira UE-153913
#preflight 62fe6e68f7404b55a3fd49f9

[CL 21445924 by phil popp in ue5-main branch]
2022-08-18 13:55:13 -04:00
Rob Gay
2b17ace435 Node Template Preprocessor Updates
- Conform template build step nominclature to "Document Preprocessing" (as it may be used either directly before building or at time post serialization)
- Use new preprocessor to cache edge data for more performant reroute template processing
#rb phil.popp
#rnx
#jira UE-160476
#preflight 62fbe79fad3bd8ad645963ec

[CL 21413130 by Rob Gay in ue5-main branch]
2022-08-16 16:19:43 -04:00
Rob Gay
87f810eadf MetaSound Template nodes
#rb phil.popp
#jira UE-160476
#preflight 62f3f49df75a2a539c8b4973

[CL 21322540 by Rob Gay in ue5-main branch]
2022-08-10 14:18:10 -04:00
helen yang
abcf114f57 MetaSound Constructor pin editor-frontend integration checkpoint
- Both inputs and outputs can be constructor vertices, not just inputs
- Enforce connection and data type constraints for access types
- Prevent default value constructor value from being changed while playing
- Added cvar (default disabled) for enabling constructor pin option in editor

#jira UE-151661
#rb phil.popp
#preflight 62d59f4bf156340c79cfcbf5

[CL 21152841 by helen yang in ue5-main branch]
2022-07-18 17:14:25 -04:00
Rob Gay
f2f944d64f MetaSound Analyzer Frontend/Graph Core Checkpoint
- Add ability to track all internal data references to a core graph
- Add AnalyzerRegistry & first pass at value/envelope analyzers
- Add support for enabling analyzing from MetaSound Generator
- Add ability for tracking colorized bounds for edges as literal-color array
#rb phil.popp
#jira UE-147027
#jira UE-147028
#jira UE-147026
#preflight 627acbae10766ef8c112264c

[CL 20129340 by Rob Gay in ue5-main branch]
2022-05-10 16:51:39 -04:00
phil popp
b0380ec246 Metasound Frontend Search Engine Memory Improvements
- Split out search engine into Core functionality and EditorOnly functionality
- Removed some ISearchEngine integration in the INodeController
- Fixed up callsites that were relying on EditorOnly ISearchEngine functionality on non-editor builds.
#jira UE-147632
#rb Aaron.McLeran
#preflight 626709dc0231ca6c0d8d892e

[CL 19908865 by phil popp in ue5-main branch]
2022-04-25 16:59:41 -04:00
rob gay
1f287a42ac Parameter Update Perf Regression Fix-ups
- Use cached transmissable inputs when initializing/sanitizing parameters
- Update internal API to promote batching & keeping AudioParameters sorted/using faster merge logic where possible
- Swap CitySample vehicle controller to use batched parameter update call
- Clarify When RuntimeData is cached for safety (in InitResources or InitParameters, whichever comes first)
- Alleviate extreme confusion around AudioParameter setters requiring type by adding static conversion functions
#rb helen.yang
#rnx
#jira UE-145211
#preflight 6229424e6e026fc824b24861

#ROBOMERGE-AUTHOR: rob.gay
#ROBOMERGE-SOURCE: CL 19328764 in //UE5/Release-5.0/... via CL 19329587
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)

[CL 19348372 by rob gay in ue5-main branch]
2022-03-10 22:07:08 -05:00
phil popp
baf70eb1c0 Fix for ensure on corrupt MetaSound asset in Lyra
#rnx
#jira UE-144618
#rb Rob.Gay
#lockdown Nick.Whiting
#preflight 622167b9aa27915dd675a04a

#ROBOMERGE-AUTHOR: phil.popp
#ROBOMERGE-SOURCE: CL 19259554 in //UE5/Release-5.0/... via CL 19260273
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v924-19243027)

[CL 19264034 by phil popp in ue5-main branch]
2022-03-04 04:25:00 -05:00
phil popp
cbdaf267bb Log warning when node connection is dropped during auto-update due to removed vertex.
#rnx
#jira UE-120726
#rb Rob.Gay
#lockdown Nick.Whiting
#preflight 621e6805257fd6e0992bb2ed

#ROBOMERGE-AUTHOR: phil.popp
#ROBOMERGE-SOURCE: CL 19204066 in //UE5/Release-5.0/... via CL 19209221
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19215316 by phil popp in ue5-main branch]
2022-03-01 21:25:04 -05:00
rob gay
41a2a172dc Fix missing ability to order graph members
- Remove base template for node customizations now that it isn't required to be a template to enable intra-engine versioning (allows moving implementation of category customization to .cpp)
- Move redundant "Literal" property to parent UMetasoundEditorGraphMember
#rb helen.yang
#jira UE-121749
#rnx
#preflight 621d2e869a5676d19a3d50e9

#ROBOMERGE-AUTHOR: rob.gay
#ROBOMERGE-SOURCE: CL 19181623 in //UE5/Release-5.0/... via CL 19183646
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19206681 by rob gay in ue5-main branch]
2022-03-01 16:31:55 -05:00
rob gay
4fddf8ef1c Fix MetaSound Tests Part 1
[REVIEW] helen.yang
#jira UE-142159
#preflight 620594bf6d374b98b0975fed

#ROBOMERGE-AUTHOR: rob.gay
#ROBOMERGE-SOURCE: CL 18944968 in //UE5/Release-5.0/... via CL 18945212 via CL 18946142
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)

[CL 18946288 by rob gay in ue5-main branch]
2022-02-10 18:36:26 -05:00
rob gay
45e4645008 Compile out editor-only data from MetaSoundFrontend
- Move Author field to FString to avoid generated text collisions (Authors should always be culture invariant anyway) & add option to override default in MetaSound user settings
#rb helen.yang
#jira UE-142159
#preflight 62055c89057375a802938669

#ROBOMERGE-AUTHOR: rob.gay
#ROBOMERGE-SOURCE: CL 18941073 in //UE5/Release-5.0/... via CL 18941268 via CL 18941634
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)

[CL 18941665 by rob gay in ue5-main branch]
2022-02-10 15:07:39 -05:00
rob gay
f2973c965f - Fix propagation issues with Preset input defaults
- Add UX for overriding preset inputs (allowing auto-update to pass through referenced value if not managed)
- Clarify code by moving bAutoUpdateManagestInterface to bIsPreset in new FMetasoundFrontendGraphClassPresetOptions struct
#rb phil.popp
#jira UE-136242
#preflight 6202b1bfae203853a85c6366
#rnx

#ROBOMERGE-AUTHOR: rob.gay
#ROBOMERGE-SOURCE: CL 18911247 in //UE5/Release-5.0/... via CL 18919315 via CL 18920513
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v916-18915374)

[CL 18920762 by rob gay in ue5-main branch]
2022-02-09 12:52:07 -05:00
rob gay
6887608d07 - Version MetaSound asset graph name FText being generated from file name & copied to MetaSound asset.
- Add missing user-defined fields to MetaSound graph options (ex. IsDeprecated, Keywords, etc.) and force update on transient style changeID (TODO: Probably would make more sense for Metadata FText to live on style struct and share that transient ChangeID, so that non-runtime changes to FText metadata wouldn't bump the change ID)
[CODEREVIEW] helen.yang
#jira UE-137696
#rnx
#preflight 61f870c0a6632a34f35e5e3c

#ROBOMERGE-AUTHOR: rob.gay
#ROBOMERGE-SOURCE: CL 18805501 in //UE5/Release-5.0/... via CL 18807964 via CL 18821755
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v908-18788545)

[CL 18822116 by rob gay in ue5-main branch]
2022-02-02 02:19:16 -05:00
rob gay
5452cd8168 MetaSound Composition Fixes
- Removed need for marking ed graph nodes for refresh in most places in favor of using frontend class metadata/interface guids to signify an ed node requiring a refresh
- Update CanAutoUpdate to always provide interface changes if the metadata/interface guids change and return true, even if the runtime properties do not report
 changes, so the editor can adequately update referenced classes that have only asthetic updates
#rb helen.yang
#jira UE-136242
#jira UE-137696
#rnx
#preflight 61f8343168795b2f45820e03

#ROBOMERGE-AUTHOR: rob.gay
#ROBOMERGE-SOURCE: CL 18794812 in //UE5/Release-5.0/... via CL 18795366 via CL 18796340
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v908-18788545)

[CL 18796687 by rob gay in ue5-main branch]
2022-01-31 15:53:54 -05:00