#ifndef HECK_DAISY_INSTR_GRAINLET_HH
#define HECK_DAISY_INSTR_GRAINLET_HH

#include "instr_abstract.hh"
#include "daisy_seed.h"
#include "daisysp.h"

namespace ld = daisy;
namespace dsp = daisysp;

namespace Heck {
    namespace Instrument {

        class Grainlet : public AbstractInstrument {
        public:
            Grainlet();
            void init();
            void trigger() override;
            void ctl(unsigned int ctl_nr, float val) override;
            void switch_mode1(unsigned int pos) override;
            void switch_mode2(unsigned int pos) override;
            float nextsample() override;
        private:
            dsp::GrainletOscillator grainlet{};
            float mode1{};
            float mode2{};
        };

    } // namespace Instrument
} // namespace Heck
#endif