19 void prepareToPlay(
double sampleRate,
int samplesPerBlock)
override;
20 void releaseResources()
override;
22 bool isBusesLayoutSupported(
const BusesLayout &layouts)
const override;
24 void processBlock(juce::AudioBuffer<float> &, juce::MidiBuffer &)
override;
25 using AudioProcessor::processBlock;
28 juce::AudioProcessorEditor *createEditor()
override;
29 bool hasEditor()
const override;
32 const juce::String getName()
const override;
34 bool acceptsMidi()
const override;
35 bool producesMidi()
const override;
36 bool isMidiEffect()
const override;
37 double getTailLengthSeconds()
const override;
40 int getNumPrograms()
override;
41 int getCurrentProgram()
override;
42 void setCurrentProgram(
int index)
override;
43 const juce::String getProgramName(
int index)
override;
44 void changeProgramName(
int index,
const juce::String &newName)
override;
47 void getStateInformation(juce::MemoryBlock &destData)
override;
48 void setStateInformation(
const void *data,
int sizeInBytes)
override;
50 juce::AudioProcessorValueTreeState::ParameterLayout createParameters();
51 juce::AudioProcessorValueTreeState mParameters;
52 std::unique_ptr<RingBuffer> mRingBuffer;
55 std::unique_ptr<juce::AudioBuffer<float>> mAudioBuffer;
56 std::unique_ptr<Amp> mBlackLoungeAmp;
57 juce::AudioParameterFloat *mVolumeParameter;
58 juce::AudioParameterFloat *mGainParameter;
62 juce::AudioParameterFloat *mDenoiserParameter;
63 juce::AudioParameterBool *mDenoiserActiveParameter;
64 juce::dsp::ProcessorChain<juce::dsp::IIR::Filter<float>> toneShaping;