SynthLab SDK
pcmocore_aubio.h
1 #pragma once
2 
3 #include "synthbase.h"
4 #include "synthfunctions.h"
5 #include "synthlabpcmsource.h"
6 
7 namespace SynthLab
8 {
9  // --- PCM oscillator core object
10  class PCMOCore : public ModuleCore
11  {
12  public:
13  // --- constructor/destructor
14  PCMOCore(); /* C-TOR */
15  virtual ~PCMOCore(); /* D-TOR */
16 
17  virtual bool reset(CoreProcData& processInfo);
18  virtual bool update(CoreProcData& processInfo);
19  virtual bool render(CoreProcData& processInfo);
20  virtual bool doNoteOn(CoreProcData& processInfo);
21  virtual bool doNoteOff(CoreProcData& processInfo);
22 
23  protected:
24  // --- basic variables
25  double sampleRate = 0.0;
26  double midiPitch = 0.0;
27  double outputAmplitude = 1.0;
28  double panLeftGain = 0.707;
29  double panRightGain = 0.707;
30 
31  // --- timebase
32  double readIndex = 0.0;
33  double phaseInc = 0.0;
34 
35  float* pcmBuffer = nullptr;
36  uint32_t maxBufferSize = 0;
37 
38  // --- unit3
39  uint32_t currentIndex = 0;
40 
41  // --- table source
42  IPCMSampleSource* selectedSampleSource = nullptr;
43 
44  // --- helper function
45  void checkAddSampleSet(std::string sampleDirectory, std::string sampleName, CoreProcData& processInfo);
46  };
47 
48 } // namespace
49 
double sampleRate
sample rate
Definition: pcmocore_aubio.h:25
double midiPitch
the midi pitch
Definition: pcmocore_aubio.h:26
Definition: pcmocore_aubio.h:10
Interface for PCM sample sources.
Definition: synthbase.h:948
Definition: analogegcore.cpp:4
double outputAmplitude
amplitude in dB
Definition: pcmocore_aubio.h:27
double panRightGain
right channel gain
Definition: pcmocore_aubio.h:29
virtual bool reset(CoreProcData &processInfo)
Definition: pcmocore_aubio.cpp:31
double panLeftGain
left channel gain
Definition: pcmocore_aubio.h:28
This structure holds all of the information needed to call functions on a ModuleCore object...
Definition: synthbase.h:1233
Abstract base class that encapsulates functionality of a module core; used with the Module-Core parad...
Definition: synthbase.h:1671