SynthLab SDK
pcmocore_III.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 WaveSliceCore : public ModuleCore
11  {
12  public:
13  // --- constructor/destructor
14  WaveSliceCore(); /* C-TOR */
15  virtual ~WaveSliceCore(); /* 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  // --- unit3
36  uint32_t currentIndex = 0;
37 
38  // --- table source
40 
41  // --- helper function
42  void checkAddSampleSet(std::string sampleDirectory, std::string sampleName, CoreProcData& processInfo);
43  };
44 
45 } // namespace
46 
PCM oscillator that plays wave-slices that are mapped to the C-major scale keys starting at middle C...
Definition: pcmocore_III.h:10
double phaseInc
must persist from update to render
Definition: pcmocore_III.h:33
void checkAddSampleSet(std::string sampleDirectory, std::string sampleName, CoreProcData &processInfo)
Query the database and add a set of PCM samples if not existing already.
Definition: pcmocore_III.cpp:61
IPCMSampleSource * selectedSampleSource
selected PCM sample
Definition: pcmocore_III.h:39
double panRightGain
right channel gain
Definition: pcmocore_III.h:29
WaveSliceCore()
Construction: Cores follow the same construction pattern.
Definition: pcmocore_III.cpp:6
uint32_t currentIndex
must persist from update to render
Definition: pcmocore_III.h:36
double panLeftGain
left channel gain
Definition: pcmocore_III.h:28
virtual bool update(CoreProcData &processInfo)
Updates the object for the next block of audio processing.
Definition: pcmocore_III.cpp:70
double sampleRate
sample rate
Definition: pcmocore_III.h:25
Interface for PCM sample sources.
Definition: synthbase.h:948
virtual bool render(CoreProcData &processInfo)
Renders the output of the module.
Definition: pcmocore_III.cpp:138
Definition: analogegcore.cpp:4
virtual bool doNoteOff(CoreProcData &processInfo)
Note-off handler for the ModuleCore.
Definition: pcmocore_III.cpp:176
double readIndex
must persist from update to render
Definition: pcmocore_III.h:32
double midiPitch
the midi pitch
Definition: pcmocore_III.h:26
virtual bool doNoteOn(CoreProcData &processInfo)
Note-on handler for the ModuleCore.
Definition: pcmocore_III.cpp:162
double outputAmplitude
amplitude in dB
Definition: pcmocore_III.h:27
virtual bool reset(CoreProcData &processInfo)
Resets object to initialized state.
Definition: pcmocore_III.cpp:31
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