HART  0.1.0
High level Audio Regression and Testing
Loading...
Searching...
No Matches
hart_envelope.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <memory>
4#include <vector>
5
6namespace hart
7{
8
9/// @defgroup Envelopes Envelopes
10/// @brief DSP Parameter automation
11
12/// @brief Represents an Envelope curve for DSP parameters
14{
15public:
16 virtual ~Envelope() = default;
17 virtual void renderNextBlock (size_t blockSize, std::vector<double>& valuesOutput) = 0;
18 virtual void prepare (double sampleRateHz, size_t maxBlockSizeFrames) = 0;
19 virtual void reset() = 0;
20 virtual std::unique_ptr<Envelope> copy() const = 0;
21
22 std::vector<double> renderNextBlock (size_t blockSize)
23 {
24 std::vector<double> values (blockSize);
25 renderNextBlock (blockSize, values);
26 return values;
27 }
28};
29
30} // namespace hart
31
32/// @private
33#define HART_ENVELOPE_DECLARE_ALIASES_FOR(ClassName)
34 namespace aliases_float{
35 using ClassName = hart::ClassName;
36 }
37 namespace aliases_double{
38 using ClassName = hart::ClassName;
39 }
Represents an Envelope curve for DSP parameters.
virtual ~Envelope()=default
virtual void reset()=0
virtual void renderNextBlock(size_t blockSize, std::vector< double > &valuesOutput)=0
virtual void prepare(double sampleRateHz, size_t maxBlockSizeFrames)=0
std::vector< double > renderNextBlock(size_t blockSize)
virtual std::unique_ptr< Envelope > copy() const =0