FahlGrahn Audio v1.0.0
Loading...
Searching...
No Matches
DrumsPluginProcessor.h
1#pragma once
2
3#include <juce_audio_processors/juce_audio_processors.h>
4#include <juce_audio_formats/juce_audio_formats.h>
5#include "DrumSampler.h"
6//==============================================================================
7class DrumsAudioProcessor final : public juce::AudioProcessor
8{
9 public:
10 //==============================================================================
12 ~DrumsAudioProcessor() override;
13
14 //==============================================================================
15 void prepareToPlay(double sampleRate, int samplesPerBlock) override;
16 void releaseResources() override;
17
18 bool isBusesLayoutSupported(const BusesLayout &layouts) const override;
19
20 void processBlock(juce::AudioBuffer<float> &, juce::MidiBuffer &) override;
21 using AudioProcessor::processBlock;
22
23 //==============================================================================
24 juce::AudioProcessorEditor *createEditor() override;
25 bool hasEditor() const override;
26
27 //==============================================================================
28 const juce::String getName() const override;
29
30 bool acceptsMidi() const override;
31 bool producesMidi() const override;
32 bool isMidiEffect() const override;
33 double getTailLengthSeconds() const override;
34
35 //==============================================================================
36 int getNumPrograms() override;
37 int getCurrentProgram() override;
38 void setCurrentProgram(int index) override;
39 const juce::String getProgramName(int index) override;
40 void changeProgramName(int index, const juce::String &newName) override;
41
42 //==============================================================================
43 void getStateInformation(juce::MemoryBlock &destData) override;
44 void setStateInformation(const void *data, int sizeInBytes) override;
45
46 void playPreviewSample(int drumType, int index);
47 void loadDrumSample(int drumType, int index);
48 void clearSample();
49 int mDrumType{-1};
50 int mDrumIndex{-1};
51 juce::AudioProcessorValueTreeState apvts;
52
53 private:
54 //==============================================================================
55
56 juce::AudioProcessorValueTreeState::ParameterLayout createParameters();
57 juce::AudioParameterBool *mFlipPhase;
58 juce::WavAudioFormat wavFormat;
59 DrumSampler loadedDrumSamples;
60 std::unique_ptr<juce::AudioFormatReaderSource> audioFormatReaderSource;
61 std::unique_ptr<juce::ResamplingAudioSource> previewResampler;
62 juce::SpinLock previewLock;
63
64
65 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(DrumsAudioProcessor)
66};
Definition DrumSampler.h:5
Definition DrumsPluginProcessor.h:8