void init(int _channels, double _sampleRate) override {
        AKSoundpipeKernel::init(_channels, _sampleRate);

        sp_tabread_create(&tabread1);
        sp_tabread_create(&tabread2);
        sp_phasor_create(&phasor);

        startPointRamper.init();
        endPointRamper.init();
        rateRamper.init();
        volumeRamper.init();
    }
        void init() {
            sp_adsr_create(&adsr);
            sp_adsr_init(kernel->sp, adsr);
            
            sp_pdhalf_create(&pdhalf);
            sp_tabread_create(&tab);
            sp_tabread_init(kernel->sp, tab, kernel->ftbl, 1);
            sp_phasor_create(&phs);
            
            sp_pdhalf_init(kernel->sp, pdhalf);
            sp_phasor_init(kernel->sp, phs, 0);

            phs->freq = 0;
        }