FahlGrahn Audio v1.0.0
Loading...
Searching...
No Matches
BlackLoungeProcessor.h
1#pragma once
2
3#include "Amp.h"
4#include "BlackLoungeAmp.h"
5#include "NAM/dsp.h"
6#include "NoiseReduction.h"
7#include "RingBuffer.h"
8#include <JuceHeader.h>
9#include <juce_audio_processors/juce_audio_processors.h>
10
11//==============================================================================
12class BlackLoungeAudioProcessor final : public juce::AudioProcessor
13{
14 public:
15 //==============================================================================
18
19 //==============================================================================
20 void prepareToPlay(double sampleRate, int samplesPerBlock) override;
21 void releaseResources() override;
22
23 bool isBusesLayoutSupported(const BusesLayout &layouts) const override;
24
25 void processBlock(juce::AudioBuffer<float> &, juce::MidiBuffer &) override;
26 using AudioProcessor::processBlock;
27
28 //==============================================================================
29 juce::AudioProcessorEditor *createEditor() override;
30 bool hasEditor() const override;
31
32 //==============================================================================
33 const juce::String getName() const override;
34
35 bool acceptsMidi() const override;
36 bool producesMidi() const override;
37 bool isMidiEffect() const override;
38 double getTailLengthSeconds() const override;
39
40 //==============================================================================
41 int getNumPrograms() override;
42 int getCurrentProgram() override;
43 void setCurrentProgram(int index) override;
44 const juce::String getProgramName(int index) override;
45 void changeProgramName(int index, const juce::String &newName) override;
46
47 //==============================================================================
48 void getStateInformation(juce::MemoryBlock &destData) override;
49 void setStateInformation(const void *data, int sizeInBytes) override;
50
51 juce::AudioProcessorValueTreeState::ParameterLayout createParameters();
52 juce::AudioProcessorValueTreeState mParameters;
53 std::unique_ptr<RingBuffer> mRingBuffer;
54
55 private:
56 std::unique_ptr<juce::AudioBuffer<float>> mAudioBuffer;
57 std::unique_ptr<Amp> mBlackLoungeAmp;
58 juce::AudioParameterFloat *mVolumeParameter;
59 juce::AudioParameterFloat *mGainParameter;
60
61 NoiseReduction mNoiseReduction;
62
63 juce::AudioParameterFloat *mDenoiserParameter;
64 juce::AudioParameterBool *mDenoiserActiveParameter;
65
66 //==============================================================================
67 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(BlackLoungeAudioProcessor)
68};
Definition BlackLoungeProcessor.h:13
Definition NoiseReduction.h:6