16 explicit Plugin(
float inputSampleRate) : inputSampleRate_(inputSampleRate) {}
58 using InputBuffer = std::variant<TimeDomainBuffer, FrequencyDomainBuffer>;
67 virtual std::string_view
getName() const noexcept = 0;
69 virtual std::string_view
getMaker() const noexcept = 0;
75 virtual std::optional<
float>
getParameter(std::string_view
id) const = 0;
88 virtual
bool initialise(uint32_t stepSize, uint32_t blockSize) = 0;
95 float inputSampleRate_;
virtual std::string_view getMaker() const noexcept=0
virtual uint32_t getPreferredBlockSize() const =0
Plugin(float inputSampleRate)
Definition Plugin.hpp:16
virtual ProgramList getPrograms() const noexcept=0
virtual std::optional< float > getParameter(std::string_view id) const =0
virtual ParameterList getParameterDescriptors() const noexcept=0
virtual bool initialise(uint32_t stepSize, uint32_t blockSize)=0
virtual bool selectProgram(std::string_view name)=0
Plugin & operator=(Plugin &&)=default
virtual uint32_t getPreferredStepSize() const =0
std::optional< std::string_view > CurrentProgram
Current program (if programs avaiable)
Definition Plugin.hpp:54
std::variant< TimeDomainBuffer, FrequencyDomainBuffer > InputBuffer
Input buffer variant.
Definition Plugin.hpp:58
virtual std::string_view getName() const noexcept=0
virtual std::string_view getCopyright() const noexcept=0
std::span< const std::complex< float > > FrequencyDomainBuffer
Frequency domain buffer (FFT)
Definition Plugin.hpp:57
virtual uint32_t getVampApiVersion() const noexcept=0
virtual std::string_view getDescription() const noexcept=0
std::vector< float > Feature
Feature with one or more values (defined by OutputDescriptor::binCount)
Definition Plugin.hpp:59
virtual FeatureSet process(InputBuffer buffer, uint64_t nsec)=0
virtual std::filesystem::path getLibraryPath() const noexcept=0
InputDomain
Input domain of the plugin.
Definition Plugin.hpp:25
std::span< const float > TimeDomainBuffer
Time domain buffer.
Definition Plugin.hpp:56
std::vector< OutputDescriptor > OutputList
List of output descriptors.
Definition Plugin.hpp:55
Plugin & operator=(const Plugin &)=default
virtual std::string_view getIdentifier() const noexcept=0
std::span< const ParameterDescriptor > ParameterList
List of parameter descriptors.
Definition Plugin.hpp:52
virtual InputDomain getInputDomain() const noexcept=0
virtual uint32_t getOutputCount() const =0
virtual CurrentProgram getCurrentProgram() const =0
virtual bool setParameter(std::string_view id, float value)=0
std::span< const Feature > FeatureSet
Computed features for each output.
Definition Plugin.hpp:60
virtual OutputList getOutputDescriptors() const =0
std::span< const std::string_view > ProgramList
List of programs.
Definition Plugin.hpp:53
virtual ~Plugin()=default
Plugin(Plugin &&)=default
virtual int getPluginVersion() const noexcept=0
float getInputSampleRate() const noexcept
Definition Plugin.hpp:92
Plugin(const Plugin &)=default
Definition hostsdk.hpp:12
bool hasKnownExtents
Definition Plugin.hpp:46
std::string description
Definition Plugin.hpp:42
std::optional< float > quantizeStep
Definition Plugin.hpp:49
std::vector< std::string > binNames
Definition Plugin.hpp:45
uint32_t binCount
Definition Plugin.hpp:44
std::string identifier
Definition Plugin.hpp:40
std::string unit
Definition Plugin.hpp:43
std::string name
Definition Plugin.hpp:41
float maxValue
Definition Plugin.hpp:48
float minValue
Definition Plugin.hpp:47
std::string_view unit
Definition Plugin.hpp:31
float maxValue
Definition Plugin.hpp:34
std::string_view name
Definition Plugin.hpp:29
float defaultValue
Definition Plugin.hpp:32
std::vector< std::string_view > valueNames
Definition Plugin.hpp:36
float minValue
Definition Plugin.hpp:33
std::string_view identifier
Definition Plugin.hpp:28
std::optional< float > quantizeStep
Definition Plugin.hpp:35
std::string_view description
Definition Plugin.hpp:30