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 void playPreviewSample(
int drumType,
int index);
51 void loadDrumSample(
int drumType,
int index);
55 juce::AudioProcessorValueTreeState apvts;
60 juce::AudioProcessorValueTreeState::ParameterLayout createParameters();
61 juce::AudioParameterBool *mFlipPhase;
62 juce::WavAudioFormat wavFormat;
64 std::unique_ptr<juce::AudioFormatReaderSource> audioFormatReaderSource;
65 std::unique_ptr<juce::ResamplingAudioSource> previewResampler;
66 juce::SpinLock previewLock;