mirror of
https://github.com/thestk/stk
synced 2026-01-11 20:11:52 +00:00
45 lines
1.1 KiB
C++
45 lines
1.1 KiB
C++
/*******************************************/
|
|
/* Master Class for Simple Instrument */
|
|
/* by Perry R. Cook, 1995-96 */
|
|
/* This instrument contains 1 looped */
|
|
/* wave, 1 noise source, 1 biquad filter */
|
|
/* 1 one-pole filter, and 1 ADSR envelope */
|
|
/*******************************************/
|
|
|
|
#if !defined(__Simple_h)
|
|
#define __Simple_h
|
|
|
|
#include "Instrmnt.h"
|
|
#include "ADSR.h"
|
|
#include "RawLoop.h"
|
|
#include "OnePole.h"
|
|
#include "TwoPole.h"
|
|
#include "TwoZero.h"
|
|
#include "Noise.h"
|
|
|
|
class Simple : public Instrmnt
|
|
{
|
|
protected:
|
|
ADSR *adsr;
|
|
RawLoop *loop;
|
|
OnePole *filter;
|
|
TwoPole *bqpoles;
|
|
TwoZero *bqzeroes;
|
|
Noise *noise;
|
|
MY_FLOAT baseFreq;
|
|
MY_FLOAT loopGain;
|
|
public:
|
|
Simple();
|
|
~Simple();
|
|
void clear();
|
|
virtual void setFreq(MY_FLOAT frequency);
|
|
void keyOn();
|
|
void keyOff();
|
|
virtual void noteOn(MY_FLOAT freq, MY_FLOAT amp);
|
|
virtual void noteOff(MY_FLOAT amplitude);
|
|
virtual MY_FLOAT tick();
|
|
virtual void controlChange(int number, MY_FLOAT value);
|
|
};
|
|
|
|
#endif
|