Files
klubhaus-doorbell/libraries/audio-tools/examples/examples-dsp/examples-stk/streams-stk_myinstrument-audiokit/MyFirstInstrument.h
2026-02-12 21:00:02 -08:00

35 lines
810 B
C++

#pragma once
#include "StkAll.h"
/**
* @brief Demo how you can compose your own instrument
* @author Phil Schatzmann
*/
class MyFirstInstrument : public Instrmnt {
public:
MyFirstInstrument() {
adsr.setAllTimes( 0.005, 0.01, 0.8, 0.010 );
echo.setDelay(1024);
}
//! Start a note with the given frequency and amplitude.
void noteOn( StkFloat frequency, StkFloat amplitude ) {
wave.setFrequency(frequency);
adsr.keyOn();
}
//! Stop a note with the given amplitude (speed of decay).
void noteOff( StkFloat amplitude ){
adsr.keyOff();
}
float tick( unsigned int channel = 0) override {
return echo.tick(wave.tick()) * adsr.tick();
};
protected:
stk::SineWave wave;
stk::ADSR adsr;
stk::Echo echo {1024};
};