50template <
typename SampleType>
66 void setPan (SampleType newPan);
77 template <
typename ProcessContext>
78 void process (
const ProcessContext& context)
noexcept
80 const auto& inputBlock = context.getInputBlock();
81 auto& outputBlock = context.getOutputBlock();
83 const auto numInputChannels = inputBlock.getNumChannels();
84 const auto numOutputChannels = outputBlock.getNumChannels();
85 const auto numSamples = outputBlock.getNumSamples();
89 if (numOutputChannels != 2 || numInputChannels == 0 || numInputChannels > 2)
92 if (numInputChannels == 2)
94 outputBlock.copyFrom (inputBlock);
98 outputBlock.getSingleChannelBlock (0).copyFrom (inputBlock);
99 outputBlock.getSingleChannelBlock (1).copyFrom (inputBlock);
102 if (context.isBypassed)
105 outputBlock.getSingleChannelBlock (0).multiplyBy (
leftVolume);
106 outputBlock.getSingleChannelBlock (1).multiplyBy (
rightVolume);
Definition juce_SmoothedValue.h:227
Rule currentRule
Definition juce_Panner.h:114
void process(const ProcessContext &context) noexcept
Definition juce_Panner.h:78
PannerRule Rule
Definition juce_Panner.h:55
SmoothedValue< SampleType > leftVolume
Definition juce_Panner.h:116
void prepare(const ProcessSpec &spec)
Definition juce_Panner.cpp:58
void setPan(SampleType newPan)
Definition juce_Panner.cpp:48
void reset()
Definition juce_Panner.cpp:69
void setRule(Rule newRule)
Definition juce_Panner.cpp:41
Panner()
Definition juce_Panner.cpp:33
SmoothedValue< SampleType > rightVolume
Definition juce_Panner.h:116
SampleType pan
Definition juce_Panner.h:115
double sampleRate
Definition juce_Panner.h:117
Definition juce_AudioBlock.h:29
@ squareRoot4p5dB
Definition juce_DryWetMixer.h:40
@ squareRoot3dB
Definition juce_DryWetMixer.h:39
@ sin3dB
Definition juce_DryWetMixer.h:36
@ sin6dB
Definition juce_DryWetMixer.h:38
@ linear
Definition juce_DryWetMixer.h:33
@ sin4p5dB
Definition juce_DryWetMixer.h:37
@ balanced
Definition juce_DryWetMixer.h:34
PannerRule
Definition juce_Panner.h:32
Definition carla_juce.cpp:31
Definition juce_ProcessContext.h:38