A processor to handle dry/wet mixing of two audio signals, where the wet signal may have additional latency. More...
#include <juce_DryWetMixer.h>
Public Types | |
using | MixingRule = DryWetMixingRule |
Public Member Functions | |
DryWetMixer () | |
Default constructor. More... | |
DryWetMixer (int maximumWetLatencyInSamples) | |
Constructor. More... | |
void | mixWetSamples (AudioBlock< SampleType > wetSamples) |
Mixes the supplied wet samples with the latency-compensated dry samples from pushDrySamples. More... | |
void | prepare (const ProcessSpec &spec) |
Initialises the processor. More... | |
void | pushDrySamples (const AudioBlock< const SampleType > drySamples) |
Copies the dry path samples into an internal delay line. More... | |
void | reset () |
Resets the internal state variables of the processor. More... | |
void | setMixingRule (MixingRule newRule) |
Sets the mix rule. More... | |
void | setWetLatency (SampleType wetLatencyInSamples) |
Sets the relative latency of the wet signal path compared to the dry signal path, and thus the amount of latency compensation that will be added to the dry samples in this processor. More... | |
void | setWetMixProportion (SampleType newWetMixProportion) |
Sets the current dry/wet mix proportion, with 0.0 being full dry and 1.0 being fully wet. More... | |
Private Member Functions | |
void | update () |
Private Attributes | |
AudioBuffer< SampleType > | bufferDry |
MixingRule | currentMixingRule = MixingRule::linear |
DelayLine< SampleType, DelayLineInterpolationTypes::Thiran > | dryDelayLine |
SmoothedValue< SampleType, ValueSmoothingTypes::Linear > | dryVolume |
SingleThreadedAbstractFifo | fifo |
int | maximumWetLatencyInSamples = 0 |
SampleType | mix = 1.0 |
double | sampleRate = 44100.0 |
SmoothedValue< SampleType, ValueSmoothingTypes::Linear > | wetVolume |
A processor to handle dry/wet mixing of two audio signals, where the wet signal may have additional latency.
Once a DryWetMixer object is configured, push the dry samples using pushDrySamples and mix into the fully wet samples using mixWetSamples.
@tags{DSP}
using juce::dsp::DryWetMixer< SampleType >::MixingRule = DryWetMixingRule |
juce::dsp::DryWetMixer< SampleType >::DryWetMixer | ( | ) |
Default constructor.
|
explicit |
Constructor.
void juce::dsp::DryWetMixer< SampleType >::mixWetSamples | ( | AudioBlock< SampleType > | wetSamples | ) |
Mixes the supplied wet samples with the latency-compensated dry samples from pushDrySamples.
wetSamples | Input: The AudioBlock references fully wet samples. Output: The AudioBlock references the wet samples mixed with the latency compensated dry samples. |
void juce::dsp::DryWetMixer< SampleType >::prepare | ( | const ProcessSpec & | spec | ) |
Initialises the processor.
void juce::dsp::DryWetMixer< SampleType >::pushDrySamples | ( | const AudioBlock< const SampleType > | drySamples | ) |
Copies the dry path samples into an internal delay line.
void juce::dsp::DryWetMixer< SampleType >::reset | ( | ) |
Resets the internal state variables of the processor.
void juce::dsp::DryWetMixer< SampleType >::setMixingRule | ( | MixingRule | newRule | ) |
Sets the mix rule.
void juce::dsp::DryWetMixer< SampleType >::setWetLatency | ( | SampleType | wetLatencyInSamples | ) |
Sets the relative latency of the wet signal path compared to the dry signal path, and thus the amount of latency compensation that will be added to the dry samples in this processor.
void juce::dsp::DryWetMixer< SampleType >::setWetMixProportion | ( | SampleType | newWetMixProportion | ) |
Sets the current dry/wet mix proportion, with 0.0 being full dry and 1.0 being fully wet.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |