OpenWareLaboratory
SignalGenerator.h
Go to the documentation of this file.
1 #ifndef __SignalGenerator_h__
2 #define __SignalGenerator_h__
3 
4 #include "FloatArray.h"
5 #include "ComplexFloatArray.h"
6 #include "AudioBuffer.h"
7 
14 public:
15  virtual ~SignalGenerator(){}
19  virtual float generate(){
20  return 0;
21  }
25  virtual void generate(FloatArray output){
26  for(size_t i=0; i<output.getSize(); ++i)
27  output[i] = generate();
28  }
29 };
30 
31 
33 public:
35  virtual void generate(AudioBuffer& output) = 0;
36 };
37 
38 
45 public:
50  virtual ComplexFloat generate() = 0;
54  virtual void generate(ComplexFloatArray output) {
55  size_t size = output.getSize();
56  for(size_t i=0; i<size; ++i) {
57  output[i] = generate();
58  }
59  }
60 };
61 #endif // __SignalGenerator_h__
Base class for stereo signal generators such as Oscillators.
virtual void generate(ComplexFloatArray output)
Produce a block of samples.
virtual ComplexFloat generate()=0
Produce the next consecutive sample.
virtual ~ComplexSignalGenerator()
This class contains useful methods for manipulating arrays of floats.
Definition: FloatArray.h:12
virtual void generate(AudioBuffer &output)=0
virtual ~MultiSignalGenerator()
Base class for signal generators such as Oscillators.
virtual ~SignalGenerator()
virtual void generate(FloatArray output)
Produce a block of samples.
virtual float generate()
Produce the next consecutive sample.
size_t getSize() const
Definition: SimpleArray.h:31
A structure defining a floating point complex number as two members of type float.