You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
- Removing it by default (because it resulted in hard-coded glide) - Adjusted to a "feature" - glide. - Switched from a linear interp to an exp ease algorithm - Made 2D rotation as the default sine generation technique (note: ignored on FM synthesis) #rb Jimmy.Smith #jira [FYI] Sondra.Moyls #preflight 605bf8e6df0ab5000115940c #ROBOMERGE-SOURCE: CL 15815525 in //UE5/Release-5.0-EarlyAccess/... #ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v783-15756269) [CL 15815532 by aaron mcleran in ue5-main branch]
115 lines
3.2 KiB
C++
115 lines
3.2 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
|
|
#include "MetasoundAudioBuffer.h"
|
|
#include "MetasoundBuilderInterface.h"
|
|
#include "MetasoundDataReferenceCollection.h"
|
|
#include "MetasoundExecutableOperator.h"
|
|
#include "MetasoundFacade.h"
|
|
#include "MetasoundNode.h"
|
|
#include "MetasoundOperatorInterface.h"
|
|
|
|
namespace Metasound
|
|
{
|
|
class METASOUNDSTANDARDNODES_API FOscilatorNodeBase : public FNode
|
|
{
|
|
protected:
|
|
FOscilatorNodeBase(const FString& InInstanceName, const FGuid& InInstanceID, const FNodeClassMetadata& InInfo, const TSharedRef<IOperatorFactory, ESPMode::ThreadSafe>& InFactory, float InDefaultFrequency, float InDefaultGlideTime, bool bInDefaultEnablement);
|
|
|
|
float GetDefaultPhaseOffset() const
|
|
{
|
|
return DefaultPhaseOffset;
|
|
}
|
|
|
|
float GetDefaultFrequency() const
|
|
{
|
|
return DefaultFrequency;
|
|
}
|
|
|
|
float GetDefaultGlideFactor() const
|
|
{
|
|
return DefaultGlideFactor;
|
|
}
|
|
|
|
bool GetDefaultEnablement() const
|
|
{
|
|
return bDefaultEnablement;
|
|
}
|
|
|
|
FOperatorFactorySharedRef GetDefaultOperatorFactory() const override
|
|
{
|
|
return Factory;
|
|
}
|
|
|
|
const FVertexInterface& GetVertexInterface() const override
|
|
{
|
|
return VertexInterface;
|
|
}
|
|
|
|
bool SetVertexInterface(const FVertexInterface& InInterface) override
|
|
{
|
|
if (IsVertexInterfaceSupported(InInterface))
|
|
{
|
|
VertexInterface = InInterface;
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
bool IsVertexInterfaceSupported(const FVertexInterface& InInterface) const override
|
|
{
|
|
return VertexInterface == InInterface;
|
|
}
|
|
|
|
TSharedRef<IOperatorFactory, ESPMode::ThreadSafe> Factory;
|
|
FVertexInterface VertexInterface;
|
|
|
|
float DefaultPhaseOffset = 0.f;
|
|
float DefaultFrequency = 440.f;
|
|
float DefaultGlideFactor = 0.0f;
|
|
bool bDefaultEnablement = true;
|
|
};
|
|
|
|
class METASOUNDSTANDARDNODES_API FSineOscilatorNode : public FOscilatorNodeBase
|
|
{
|
|
public:
|
|
class FFactory;
|
|
FSineOscilatorNode(const FString& InInstanceName, const FGuid& InInstanceID, float InDefaultFrequency, float InDefautlGlideTime, bool bInDefaultEnablement);
|
|
FSineOscilatorNode(const FNodeInitData& InInitData);
|
|
};
|
|
|
|
class METASOUNDSTANDARDNODES_API FSawOscilatorNode : public FOscilatorNodeBase
|
|
{
|
|
public:
|
|
class FFactory;
|
|
FSawOscilatorNode(const FString& InInstanceName, const FGuid& InInstanceID, float InDefaultFrequency, float InDefautlGlideTime, bool bInDefaultEnablement);
|
|
FSawOscilatorNode(const FNodeInitData& InInitData);
|
|
};
|
|
|
|
class METASOUNDSTANDARDNODES_API FTriangleOscilatorNode : public FOscilatorNodeBase
|
|
{
|
|
public:
|
|
class FFactory;
|
|
FTriangleOscilatorNode(const FString& InInstanceName, const FGuid& InInstanceID, float InDefaultFrequency, float InDefautlGlideTime, bool bInDefaultEnablement);
|
|
FTriangleOscilatorNode(const FNodeInitData& InInitData);
|
|
};
|
|
|
|
class METASOUNDSTANDARDNODES_API FSquareOscilatorNode : public FOscilatorNodeBase
|
|
{
|
|
public:
|
|
class FFactory;
|
|
FSquareOscilatorNode(const FString& InInstanceName, const FGuid& InInstanceID, float InDefaultFrequency, float InDefautlGlideTime, bool bInDefaultEnablement);
|
|
FSquareOscilatorNode(const FNodeInitData& InInitData);
|
|
};
|
|
|
|
class METASOUNDSTANDARDNODES_API FLfoNode : public FNodeFacade
|
|
{
|
|
public:
|
|
FLfoNode(const FNodeInitData& InInitData);
|
|
virtual ~FLfoNode() = default;
|
|
};
|
|
}
|