OpenWareLaboratory
Envelope.h
Go to the documentation of this file.
1 #ifndef ENVELOPE_HPP
2 #define ENVELOPE_HPP
3 
4 #include "FloatArray.h"
5 #include "SignalGenerator.h"
6 #include "SignalProcessor.h"
7 
9 public:
11  virtual void trigger(){
12  trigger(true, 0);
13  }
14  virtual void trigger(bool state){
15  trigger(state, 0);
16  }
17  virtual void trigger(bool state, int triggerDelay) = 0;
18  virtual void gate(bool state){
19  gate(state, 0);
20  }
21  virtual void gate(bool state, int gateDelay){}
22  virtual float process(float input){
23  return input*generate();
24  }
28  virtual void process(FloatArray input, FloatArray output){
29  for(size_t n = 0; n < output.getSize(); n++)
30  output[n] = input[n]*generate();
31  }
32 };
33 
34 #endif /* ENVELOPE_HPP */
virtual void trigger()
Definition: Envelope.h:11
virtual void gate(bool state)
Definition: Envelope.h:18
virtual float process(float input)
Definition: Envelope.h:22
virtual void trigger(bool state)
Definition: Envelope.h:14
virtual void gate(bool state, int gateDelay)
Definition: Envelope.h:21
virtual void trigger(bool state, int triggerDelay)=0
virtual float generate()
Produce the next consecutive sample.
virtual void process(FloatArray input, FloatArray output)
Attenuate samples in.
Definition: Envelope.h:28
This class contains useful methods for manipulating arrays of floats.
Definition: FloatArray.h:12
Base class for signal generators such as Oscillators.
virtual float generate()
Produce the next consecutive sample.
Base class for signal processors such as Filters.
size_t getSize() const
Definition: SimpleArray.h:31