- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
// Copyright Epic Games, Inc. All Rights Reserved.
# include "NodeTemplates/MetasoundFrontendNodeTemplateInput.h"
# include "Algo/AnyOf.h"
# include "Internationalization/Text.h"
# include "MetasoundFrontendDataTypeRegistry.h"
2024-08-07 16:09:51 -04:00
# include "MetasoundFrontendDocument.h"
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
# include "MetasoundFrontendDocumentBuilder.h"
# include "MetasoundFrontendNodeTemplateRegistry.h"
# include "MetasoundFrontendRegistries.h"
# include "MetasoundFrontendRegistryKey.h"
# include "MetasoundFrontendTransform.h"
# include "MetasoundInputNode.h"
# if WITH_EDITOR
# include "MetasoundFrontendController.h"
# endif // WITH_EDITOR
namespace Metasound : : Frontend
{
namespace InputNodeTemplatePrivate
{
// Creates an input template node, sets node position (should only ever be one in style location) from and connects it to the associated input with the given name.
2024-08-07 19:28:42 -04:00
const FMetasoundFrontendNode * InitTemplateNode (
2024-08-07 16:09:51 -04:00
const INodeTemplate & InTemplate ,
FName InputName ,
FMetaSoundFrontendDocumentBuilder & InOutBuilder ,
const FMetasoundFrontendVertexHandle & InputNodeVertex ,
const TArray < FMetasoundFrontendVertexHandle > & ConnectedVertices , const FGuid * InPageID = nullptr )
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
{
FMetasoundFrontendEdge NewEdge ;
FName TypeName ;
# if WITH_EDITORONLY_DATA
TMap < FGuid , FVector2D > Locations ;
# endif // WITH_EDITORONLY_DATA
// Cache data from Input node pointer as needed as subsequent call to create new template node may invalidate the input node's pointer
{
2024-07-17 15:46:56 -04:00
const FMetasoundFrontendNode * InputNode = InOutBuilder . FindGraphInputNode ( InputName , InPageID ) ;
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
check ( InputNode ) ;
TypeName = InputNode - > Interface . Outputs . Last ( ) . TypeName ;
NewEdge . FromNodeID = InputNode - > GetID ( ) ,
NewEdge . FromVertexID = InputNode - > Interface . Outputs . Last ( ) . VertexID ;
# if WITH_EDITORONLY_DATA
Locations = InputNode - > Style . Display . Locations ;
ensure ( Locations . Num ( ) < = 1 ) ;
# endif // WITH_EDITORONLY_DATA
}
FNodeTemplateGenerateInterfaceParams Params { { } , { TypeName } } ;
2024-08-07 16:09:51 -04:00
const FMetasoundFrontendNode * TemplateNode = InOutBuilder . AddNodeByTemplate ( InTemplate , MoveTemp ( Params ) , FGuid : : NewGuid ( ) , InPageID ) ;
check ( TemplateNode ) ;
NewEdge . ToNodeID = TemplateNode - > GetID ( ) ;
NewEdge . ToVertexID = TemplateNode - > Interface . Inputs . Last ( ) . VertexID ;
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
# if WITH_EDITORONLY_DATA
2024-08-07 16:09:51 -04:00
if ( Locations . IsEmpty ( ) )
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
{
2024-08-07 16:09:51 -04:00
// If connections are present, add a location for safety. Try adding near existing node.
if ( ! ConnectedVertices . IsEmpty ( ) )
{
2024-08-13 14:58:36 -04:00
UE_LOG ( LogMetaSound , Display , TEXT ( " Template node being generated for input '%s' had no editor location set. Procedurally placing near connected node. " ) , * InputName . ToString ( ) ) ;
2024-08-07 16:09:51 -04:00
FVector2D NewLocation ;
if ( const FMetasoundFrontendNode * Node = InOutBuilder . FindNode ( ConnectedVertices . Last ( ) . NodeID ) )
{
if ( ! Node - > Style . Display . Locations . IsEmpty ( ) )
{
for ( const TPair < FGuid , FVector2D > & Pair : Node - > Style . Display . Locations )
{
const FGuid ConnectedVertexID = ConnectedVertices . Last ( ) . VertexID ;
const uint32 Index = Node - > Interface . Inputs . IndexOfByPredicate ( [ & ConnectedVertexID ] ( const FMetasoundFrontendVertex & Input )
{
return Input . VertexID = = ConnectedVertexID ;
} ) ;
NewLocation = Pair . Value ;
NewLocation - = DisplayStyle : : NodeLayout : : DefaultOffsetX ;
// Offset Y position based on connected input index to avoid overlapping nodes
NewLocation + = Index * DisplayStyle : : NodeLayout : : DefaultOffsetY ;
break ;
}
}
}
InOutBuilder . SetNodeLocation ( NewEdge . ToNodeID , NewLocation , nullptr , InPageID ) ;
}
}
else
{
for ( const TPair < FGuid , FVector2D > & Pair : Locations )
{
InOutBuilder . SetNodeLocation ( NewEdge . ToNodeID , Pair . Value , nullptr , InPageID ) ;
}
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
}
# endif // WITH_EDITORONLY_DATA
// Add edge between input node and new template node
2024-07-17 15:46:56 -04:00
InOutBuilder . AddEdge ( MoveTemp ( NewEdge ) , InPageID ) ;
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
2024-08-07 16:09:51 -04:00
FMetasoundFrontendEdge EdgeToRemove { InputNodeVertex . NodeID , InputNodeVertex . VertexID } ;
for ( const FMetasoundFrontendVertexHandle & ConnectedVertex : ConnectedVertices )
{
// Swap connections from input node to connected node to now be from template node to connected node
EdgeToRemove . ToNodeID = ConnectedVertex . NodeID ;
EdgeToRemove . ToVertexID = ConnectedVertex . VertexID ;
InOutBuilder . RemoveEdge ( EdgeToRemove ) ;
InOutBuilder . AddEdge ( FMetasoundFrontendEdge
{
TemplateNode - > GetID ( ) ,
TemplateNode - > Interface . Outputs . Last ( ) . VertexID ,
ConnectedVertex . NodeID ,
ConnectedVertex . VertexID
} ) ;
}
2024-08-07 19:28:42 -04:00
return TemplateNode ;
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
} ;
} // namespace InputNodeTemplatePrivate
const FMetasoundFrontendClassName FInputNodeTemplate : : ClassName { " UE " , " Input " , " Template " } ;
const FMetasoundFrontendVersionNumber FInputNodeTemplate : : VersionNumber = { 1 , 0 } ;
2024-07-17 15:46:56 -04:00
# if WITH_EDITOR
const FMetasoundFrontendNode * FInputNodeTemplate : : CreateNode ( FMetaSoundFrontendDocumentBuilder & InOutBuilder , FName InputName , const FGuid * InPageID )
{
if ( const FMetasoundFrontendClassInput * Input = InOutBuilder . FindGraphInput ( InputName ) )
{
const INodeTemplate * ThisTemplate = INodeTemplateRegistry : : Get ( ) . FindTemplate ( ClassName ) ;
check ( ThisTemplate ) ;
2024-08-07 16:09:51 -04:00
const FMetasoundFrontendNode * InputNode = InOutBuilder . FindGraphInputNode ( InputName ) ;
if ( ! InputNode )
{
return nullptr ;
}
const FGuid & InputNodeOutputVertexID = InputNode - > Interface . Outputs . Last ( ) . VertexID ;
FMetasoundFrontendVertexHandle InputNodeVertex { InputNode - > GetID ( ) , InputNodeOutputVertexID } ;
2024-08-07 19:28:42 -04:00
return InputNodeTemplatePrivate : : InitTemplateNode ( * ThisTemplate , InputName , InOutBuilder , InputNodeVertex , /*ConnectedVertices*/ { } , InPageID ) ;
2024-07-17 15:46:56 -04:00
}
return nullptr ;
}
# endif // WITH_EDITOR
2024-08-13 14:58:36 -04:00
const TArray < FMetasoundFrontendClassInputDefault > * FInputNodeTemplate : : FindNodeClassInputDefaults ( const FMetaSoundFrontendDocumentBuilder & InBuilder , const FGuid & InPageID , const FGuid & InNodeID , FName VertexName ) const
{
// Just returns the default of the given node's class input and not walk to values provided by connected input like reroutes.
return FNodeTemplateBase : : FindNodeClassInputDefaults ( InBuilder , InPageID , InNodeID , VertexName ) ;
}
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
const FMetasoundFrontendClassName & FInputNodeTemplate : : GetClassName ( ) const
{
return FInputNodeTemplate : : ClassName ;
}
# if WITH_EDITOR
2024-06-27 18:32:11 -04:00
FText FInputNodeTemplate : : GetNodeDisplayName ( const IMetaSoundDocumentInterface & Interface , const FGuid & InPageID , const FGuid & InNodeID ) const
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
{
return { } ;
}
# endif // WITH_EDITOR
const FMetasoundFrontendClass & FInputNodeTemplate : : GetFrontendClass ( ) const
{
auto CreateFrontendClass = [ ] ( )
{
using namespace Metasound ;
FMetasoundFrontendClass Class ;
Class . Metadata . SetClassName ( ClassName ) ;
# if WITH_EDITOR
Class . Metadata . SetSerializeText ( false ) ;
Class . Metadata . SetAuthor ( PluginAuthor ) ;
Class . Metadata . SetDescription ( FInputNode : : GetInputDescription ( ) ) ;
FMetasoundFrontendClassStyleDisplay & StyleDisplay = Class . Style . Display ;
StyleDisplay . bShowInputNames = false ;
StyleDisplay . bShowOutputNames = true ;
StyleDisplay . bShowLiterals = false ;
StyleDisplay . bShowName = true ;
# endif // WITH_EDITOR
Class . Metadata . SetType ( EMetasoundFrontendClassType : : Template ) ;
Class . Metadata . SetVersion ( VersionNumber ) ;
return Class ;
} ;
static const FMetasoundFrontendClass FrontendClass = CreateFrontendClass ( ) ;
return FrontendClass ;
}
const FInputNodeTemplate & FInputNodeTemplate : : GetChecked ( )
{
const INodeTemplate * Template = INodeTemplateRegistry : : Get ( ) . FindTemplate ( GetRegistryKey ( ) ) ;
checkf ( Template , TEXT ( " Failed to find InputNodeTemplate, which is required for migrating editor document data " ) ) ;
return static_cast < const FInputNodeTemplate & > ( * Template ) ;
}
const FNodeRegistryKey & FInputNodeTemplate : : GetRegistryKey ( )
{
static const FNodeRegistryKey RegistryKey ( EMetasoundFrontendClassType : : Template , ClassName , VersionNumber ) ;
return RegistryKey ;
}
2024-06-27 18:32:11 -04:00
EMetasoundFrontendVertexAccessType FInputNodeTemplate : : GetNodeInputAccessType ( const FMetaSoundFrontendDocumentBuilder & InBuilder , const FGuid & InPageID , const FGuid & InNodeID , const FGuid & InVertexID ) const
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
{
const FMetasoundFrontendNode * ConnectedInputNode = nullptr ;
2024-06-27 18:32:11 -04:00
if ( const FMetasoundFrontendVertex * ConnectedInputOutput = InBuilder . FindNodeOutputConnectedToNodeInput ( InNodeID , InVertexID , & ConnectedInputNode , & InPageID ) )
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
{
const FMetasoundFrontendClass * InputClass = InBuilder . FindDependency ( ConnectedInputNode - > ClassID ) ;
check ( InputClass ) ;
return ( InputClass - > Interface . Outputs . Last ( ) . AccessType ) ;
}
return EMetasoundFrontendVertexAccessType : : Unset ;
}
2024-06-27 18:32:11 -04:00
EMetasoundFrontendVertexAccessType FInputNodeTemplate : : GetNodeOutputAccessType ( const FMetaSoundFrontendDocumentBuilder & InBuilder , const FGuid & InPageID , const FGuid & InNodeID , const FGuid & InVertexID ) const
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
{
2024-06-27 18:32:11 -04:00
if ( const FMetasoundFrontendNode * Node = InBuilder . FindNode ( InNodeID , & InPageID ) )
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
{
const FMetasoundFrontendVertex & Input = Node - > Interface . Inputs . Last ( ) ;
2024-06-27 18:32:11 -04:00
return GetNodeInputAccessType ( InBuilder , InPageID , InNodeID , Input . VertexID ) ;
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
}
return EMetasoundFrontendVertexAccessType : : Unset ;
}
# if WITH_EDITOR
2024-06-27 18:32:11 -04:00
FText FInputNodeTemplate : : GetOutputVertexDisplayName ( const FMetaSoundFrontendDocumentBuilder & InBuilder , const FGuid & InPageID , const FGuid & InNodeID , FName OutputName ) const
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
{
2024-06-27 18:32:11 -04:00
const FMetasoundFrontendNode * OwningNode = InBuilder . FindNode ( InNodeID , & InPageID ) ;
2024-06-11 18:27:11 -04:00
if ( ! OwningNode )
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
{
2024-06-11 18:27:11 -04:00
return FText : : FromName ( OutputName ) ;
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
}
2024-06-11 18:27:11 -04:00
const FMetasoundFrontendNode * ConnectedInputNode = nullptr ;
2024-06-27 18:32:11 -04:00
const FMetasoundFrontendVertex * ConnectedOutput = InBuilder . FindNodeOutputConnectedToNodeInput ( InNodeID , OwningNode - > Interface . Inputs . Last ( ) . VertexID , & ConnectedInputNode , & InPageID ) ;
2024-06-11 18:27:11 -04:00
if ( ensureMsgf ( ConnectedInputNode , TEXT ( " Input template node should always be connected to associated input node's only output " ) ) )
{
FName NodeName = ConnectedInputNode - > Name ;
FText DisplayName ;
if ( const FMetasoundFrontendClassInput * Input = InBuilder . FindGraphInput ( NodeName ) )
{
DisplayName = Input - > Metadata . GetDisplayName ( ) ;
}
constexpr bool bIncludeNamespace = true ;
return INodeTemplate : : ResolveMemberDisplayName ( NodeName , DisplayName , bIncludeNamespace ) ;
}
2024-06-27 18:32:11 -04:00
return FRerouteNodeTemplate : : GetOutputVertexDisplayName ( InBuilder , InPageID , InNodeID , OutputName ) ;
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
}
2024-06-27 18:32:11 -04:00
bool FInputNodeTemplate : : HasRequiredConnections ( const FMetaSoundFrontendDocumentBuilder & InBuilder , const FGuid & InPageID , const FGuid & InNodeID , FString * OutMessage ) const
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
{
return true ;
}
# endif // WITH_EDITOR
bool FInputNodeTemplate : : IsInputAccessTypeDynamic ( ) const
{
return true ;
}
bool FInputNodeTemplate : : IsInputConnectionUserModifiable ( ) const
{
return false ;
}
bool FInputNodeTemplate : : IsOutputAccessTypeDynamic ( ) const
{
return true ;
}
# if WITH_EDITOR
bool FInputNodeTemplate : : Inject ( FMetaSoundFrontendDocumentBuilder & InOutBuilder , bool bForceNodeCreation ) const
{
bool bInjectedNodes = false ;
2024-05-29 15:33:29 -04:00
const TArray < FMetasoundFrontendClassInput > & Inputs = InOutBuilder . GetConstDocumentChecked ( ) . RootGraph . Interface . Inputs ;
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
for ( const FMetasoundFrontendClassInput & Input : Inputs )
{
// Potentially not used input, which is perfectly valid so early out
const FMetasoundFrontendNode * InputNode = InOutBuilder . FindGraphInputNode ( Input . Name ) ;
if ( ! InputNode )
{
continue ;
}
const FGuid & InputNodeOutputVertexID = InputNode - > Interface . Outputs . Last ( ) . VertexID ;
TArray < const FMetasoundFrontendNode * > ConnectedInputNodes ;
TArray < const FMetasoundFrontendVertex * > ConnectedInputVertices = InOutBuilder . FindNodeInputsConnectedToNodeOutput ( InputNode - > GetID ( ) , InputNodeOutputVertexID , & ConnectedInputNodes ) ;
2024-08-07 16:09:51 -04:00
FMetasoundFrontendVertexHandle InputNodeVertex { InputNode - > GetID ( ) , InputNodeOutputVertexID } ;
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
bool bHasTemplateConnection = false ;
TArray < FMetasoundFrontendVertexHandle > ConnectedVertices ;
for ( int32 Index = 0 ; Index < ConnectedInputVertices . Num ( ) ; + + Index )
{
// Ignore edges already connected to input template nodes & cache connected vertex pair
// as adding a template node in the subsequent step may invalidate these connected node/vertex
// pointers.
const FMetasoundFrontendVertex * ConnectedVertex = ConnectedInputVertices [ Index ] ;
const FMetasoundFrontendNode * ConnectedNode = ConnectedInputNodes [ Index ] ;
const FMetasoundFrontendClass * Class = InOutBuilder . FindDependency ( ConnectedNode - > ClassID ) ;
if ( Class - > Metadata . GetClassName ( ) = = FInputNodeTemplate : : ClassName )
{
bHasTemplateConnection = true ;
}
else
{
ConnectedVertices . Add ( FMetasoundFrontendVertexHandle { ConnectedNode - > GetID ( ) , ConnectedVertex - > VertexID } ) ;
}
}
if ( ConnectedVertices . IsEmpty ( ) )
{
if ( bForceNodeCreation & & ! bHasTemplateConnection )
{
bInjectedNodes = true ;
2024-08-07 16:09:51 -04:00
InputNodeTemplatePrivate : : InitTemplateNode ( * this , Input . Name , InOutBuilder , InputNodeVertex , ConnectedVertices ) ;
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
}
}
else
{
bInjectedNodes = true ;
2024-08-07 16:09:51 -04:00
InputNodeTemplatePrivate : : InitTemplateNode ( * this , Input . Name , InOutBuilder , InputNodeVertex , ConnectedVertices ) ;
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
}
}
return bInjectedNodes ;
}
2024-07-17 15:46:56 -04:00
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
# endif // WITH_EDITOR
} // namespace Metasound::Frontend