PluginProcessor.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /*
  2. ==============================================================================
  3. This file contains the basic framework code for a JUCE plugin processor.
  4. ==============================================================================
  5. */
  6. #pragma once
  7. #include <JuceHeader.h>
  8. #include "CMLSReverb.h"
  9. #include "CMLSDelay.h"
  10. #include "CMLSChorus.h"
  11. //==============================================================================
  12. /**
  13. */
  14. class CMLSProjectAudioProcessor : public juce::AudioProcessor
  15. {
  16. public:
  17. //==============================================================================
  18. CMLSProjectAudioProcessor();
  19. ~CMLSProjectAudioProcessor() override;
  20. //==============================================================================
  21. void prepareToPlay (double sampleRate, int samplesPerBlock) override;
  22. void releaseResources() override;
  23. #ifndef JucePlugin_PreferredChannelConfigurations
  24. bool isBusesLayoutSupported (const BusesLayout& layouts) const override;
  25. #endif
  26. void processBlock (juce::AudioBuffer<float>&, juce::MidiBuffer&) override;
  27. //==============================================================================
  28. juce::AudioProcessorEditor* createEditor() override;
  29. bool hasEditor() const override;
  30. //==============================================================================
  31. const juce::String getName() const override;
  32. bool acceptsMidi() const override;
  33. bool producesMidi() const override;
  34. bool isMidiEffect() const override;
  35. double getTailLengthSeconds() const override;
  36. //==============================================================================
  37. int getNumPrograms() override;
  38. int getCurrentProgram() override;
  39. void setCurrentProgram (int index) override;
  40. const juce::String getProgramName (int index) override;
  41. void changeProgramName (int index, const juce::String& newName) override;
  42. //==============================================================================
  43. void getStateInformation (juce::MemoryBlock& destData) override;
  44. void setStateInformation (const void* data, int sizeInBytes) override;
  45. // Parameter controls
  46. void setChorusDryWet(float value);
  47. void setChorusAmount(float value);
  48. void setReverbDryWet(float value);
  49. void setReverbRoomSize(float value);
  50. void setDelayDryWet(float value);
  51. void setDelayAmount(float value);
  52. private:
  53. //==============================================================================
  54. // OSC message receiver
  55. juce::OSCReceiver oscReceiver;
  56. // Buffer for the incoming audio from the generators
  57. // Effects processing chain
  58. juce::dsp::ProcessorChain<CMLSChorus, CMLSReverb, CMLSDelay> processorChain;
  59. JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CMLSProjectAudioProcessor)
  60. };