|
HART
0.2.0
High level Audio Regression and Testing
|
Mutes selected channels in the signal. More...
#include <hart_mute.hpp>
Public Member Functions | |
| void | prepare (double, size_t numInputChannels, size_t numOutputChannels, size_t) override |
| Prepare for processing. | |
| void | process (const AudioBuffer< SampleType > &input, AudioBuffer< SampleType > &output, const EnvelopeBuffers &, ChannelFlags channelsToProcess) override |
| Processes the audio. | |
| void | reset () override |
| Resets to initial state. | |
| void | setValue (int, double) override |
| Sets DSP value. | |
| double | getValue (int) const override |
| Retrieves DSP value. | |
| bool | supportsChannelLayout (size_t numInputChannels, size_t numOutputChannels) const override |
| Tells the runner (host) whether this effect supports a specific i/o configuration. | |
| bool | supportsEnvelopeFor (int) const override |
| Tells whether this effect accepts automation envelopes for a particular parameter. | |
Public Member Functions inherited from DSP< SampleType, Mute< SampleType > > | |
| Mute< SampleType > & | withEnvelope (int paramId, Envelope &&envelope) |
| Adds envelope to a specific parameter by moving it. | |
| Mute< SampleType > & | withEnvelope (int paramId, const Envelope &envelope) |
| Adds envelope to a specific parameter by copying it. | |
| virtual std::unique_ptr< DSPBase< SampleType > > | copy () const override |
| Returns a smart pointer with a copy of this object. | |
| virtual std::unique_ptr< DSPBase< SampleType > > | move () override |
| Returns a smart pointer with a moved instance of this object. | |
| Mute< SampleType > & | atChannels (std::initializer_list< size_t > channelsToProcess) |
| Makes this DSP process only specific channels, and ignore the rest. | |
| Mute< SampleType > & | atChannel (size_t channelToProcess) |
| Makes this DSP process only specific channels, and bypass the rest. | |
| Mute< SampleType > & | atAllChannels () |
| Makes this DSP apply to all channels. | |
| Mute< SampleType > & | atAllChannelsExcept (std::initializer_list< size_t > channelsToSkip) |
| Makes this DSP process only specific channels, and bypass the rest. | |
Public Member Functions inherited from DSPBase< SampleType > | |
| virtual void | represent (std::ostream &stream) const =0 |
| Makes a text representation of this DSP effect for test failure outputs. | |
| virtual bool | supportsSampleRate (double) const |
| Tells whether this effect supports given sample rate. | |
| virtual | ~DSPBase ()=default |
| Destructor. | |
| DSPBase ()=default | |
| Default constructor. | |
| DSPBase (const DSPBase &other) | |
| Copies from another DSP effect instance. | |
| DSPBase (DSPBase &&other) noexcept | |
| Move constructor. | |
| DSPBase & | operator= (const DSPBase &other) |
| Copies from another DSP effect instance. | |
| DSPBase & | operator= (DSPBase &&other) noexcept |
| Move assignment. | |
| bool | hasEnvelopeFor (int paramId) |
| Checks if there's an automation envelope attached to a specific parameter. | |
| void | prepareWithEnvelopes (double sampleRateHz, size_t numInputChannels, size_t numOutputChannels, size_t maxBlockSizeFrames) |
| Prepares all the attached envelopes and the effect itself for processing. | |
| ChannelFlags | getChannelsToProcess () |
| Returns a structure indicating which channels should be processed by this DSP. | |
| void | processWithEnvelopes (const AudioBuffer< SampleType > &input, AudioBuffer< SampleType > &output) |
| Renders all the automation envelopes and processes the audio. | |
| void | representWithActiveChannels (std::ostream &stream) const |
| Makes a text representation of this DSP with optional "atChannels" appendix. | |
Additional Inherited Members | |
Protected Attributes inherited from DSPBase< SampleType > | |
| std::unordered_map< int, std::unique_ptr< Envelope > > | m_envelopes |
| ChannelFlags | m_channelsToProcess {true} |
Related Symbols inherited from DSP< SampleType, Mute< SampleType > > | |
| std::ostream & | operator<< (std::ostream &stream, const DSPBase< SampleType > &dsp) |
| Prints readable text representation of the DSP object into the I/O stream. | |
Mutes selected channels in the signal.
Fills all specified channels to zeros. By default, mutes all the channels, unless specific channels are set.
Definition at line 18 of file hart_mute.hpp.
|
inlineoverridevirtual |
Prepare for processing.
In real-time DSP, such methods are usually used for allocating memory and other non-realtime-safe and heavyweight operations. But keep in mind that that HART does not do real-time processing, so this merely follows common real-time DSP design conventions, where non-realtime operations are done in a separate callback like this one. This method is guaranteed to be called after supportsChannelLayout() and supportsSampleRate(), but before process(). It is guaranteed that the number of input and output channels obeys supportsChannelLayout() and supportsSampleRate() preferences. It is guaranteed that all subsequent process() calls will be in line with the arguments received in this callback.
| sampleRateHz | sample rate at which the audio should be interpreted and processed |
| numInputChannels | Number of input channels |
| numOutputChannels | Number of output channels |
| maxBlockSizeFrames | Maximum block size in frames (samples) |
Implements DSPBase< SampleType >.
Definition at line 22 of file hart_mute.hpp.
|
inlineoverridevirtual |
Processes the audio.
Depending on circumstances, this callback will either be called once to process an entire piece of audio from start to finish, or called repeatedly, one block at a time (see AudioTestBuilder::withBlockSize()). All audio blocks except the last one are guaranteed to be equal to maxBlockSizeFrames set in prepare() callback. It is guaranteed that input and output buffers are equal in length in frames (samples) to each, but they might have different number of channels. Use supportsChannelLayout() to indicate whether the effect supports a specific i/o configuration or not, as it will be called before prepare(). It is guaranteed that envelopeBuffers will only contain the values for all attached envelopes for this instance of DSP effect, and will not contain any data (including key with empty item) if there's no envelope attached to a specific parameter ID in this effects's instance. It will never contain envelopes for IDs that get rejected by supportsEnvelopeFor().
input and output may be references to the same object. | input | Input audio block |
| output | Output audio block |
| envelopeBuffers | Envelope values for this block, see EnvelopeBuffers |
| channelsToProcess | Channels that need processing. Process channels that are marked true, bypass ones marked false. |
Implements DSPBase< SampleType >.
Definition at line 28 of file hart_mute.hpp.
|
inlineoverridevirtual |
Resets to initial state.
Ideally should be implemented in a way that audio produced after resetting is identical to audio produced after instantiation
Implements DSPBase< SampleType >.
Definition at line 45 of file hart_mute.hpp.
|
inlineoverridevirtual |
Sets DSP value.
| paramId | Some ID that your subclass understands; use of enums is encouraged for readability |
| value | Value of the param in an appropriate unit; use of SI units is encouraged (i.e. s instead of ms. Hz instead of kHz) to make better use of unit literals (see Units) |
envelopeBuffers provided in process() callback. Implements DSPBase< SampleType >.
Definition at line 47 of file hart_mute.hpp.
|
inlineoverridevirtual |
Retrieves DSP value.
Among other things, it can be used to retrieve various readings like Gain Reduction measurements from your effect for further inspection
| paramId | Some ID that your subclass understands |
envelopeBuffers provided in process() callback. Implements DSPBase< SampleType >.
Definition at line 49 of file hart_mute.hpp.
|
inlineoverridevirtual |
Tells the runner (host) whether this effect supports a specific i/o configuration.
It is guaranteed that the effect will not receive unsupported number of channels in process(). However, it is not always possible to handle gracefully channel layout being unsupported, so in some circumstances it can cause an exception or a test failure. This method is guaranteed to be called at least once before prepare()
Implements DSPBase< SampleType >.
Definition at line 51 of file hart_mute.hpp.
|
inlineoverridevirtual |
Tells whether this effect accepts automation envelopes for a particular parameter.
| paramId | Some ID that your subclass understands |
Reimplemented from DSPBase< SampleType >.
Definition at line 56 of file hart_mute.hpp.