#ifndef MUSIC_ENVELOPE_H #define MUSIC_ENVELOPE_H class Envelope; #include <cstdint> #include "../AudioHost.h" #include "Processable.h" enum EnvelopePhase { NONE, ATTACK, DELAY, SUSTAIN, RELEASE, }; class Envelope : public Processable { private: EnvelopePhase phase; float attackIncrement, delayIncrement, releaseIncrement; float value = 0; AudioHost *host; public: float attack = 0.05, delay = 0.05, sustain = 0.7, release = 0.1; void initialize(AudioHost *host); void update(); void startNote(); void endNote(); void doRender(uint32_t sampleCount); }; #endif