15 void prepareToPlay(
double sampleRate,
int samplesPerBlock)
override;
16 void releaseResources()
override;
18 bool isBusesLayoutSupported(
const BusesLayout &layouts)
const override;
20 void processBlock(juce::AudioBuffer<float> &, juce::MidiBuffer &)
override;
21 using AudioProcessor::processBlock;
24 juce::AudioProcessorEditor *createEditor()
override;
25 bool hasEditor()
const override;
28 const juce::String getName()
const override;
30 bool acceptsMidi()
const override;
31 bool producesMidi()
const override;
32 bool isMidiEffect()
const override;
33 double getTailLengthSeconds()
const override;
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;
43 void getStateInformation(juce::MemoryBlock &destData)
override;
44 void setStateInformation(
const void *data,
int sizeInBytes)
override;
46 void playPreviewSample(
int drumType,
int index);
47 void loadDrumSample(
int drumType,
int index);
51 juce::AudioProcessorValueTreeState apvts;
56 juce::AudioProcessorValueTreeState::ParameterLayout createParameters();
57 juce::AudioParameterBool *mFlipPhase;
58 juce::WavAudioFormat wavFormat;
60 std::unique_ptr<juce::AudioFormatReaderSource> audioFormatReaderSource;
61 std::unique_ptr<juce::ResamplingAudioSource> previewResampler;
62 juce::SpinLock previewLock;