void process(AUAudioFrameCount frameCount, AUAudioFrameCount bufferOffset) override { for (int frameIndex = 0; frameIndex < frameCount; ++frameIndex) { int frameOffset = int(frameIndex + bufferOffset); wah = wahRamper.getAndStep(); *autowah->wah = (float)wah; mix = mixRamper.getAndStep(); *autowah->mix = (float)mix; amplitude = amplitudeRamper.getAndStep(); *autowah->level = (float)amplitude; for (int channel = 0; channel < channels; ++channel) { float *in = (float *)inBufferListPtr->mBuffers[channel].mData + frameOffset; float *out = (float *)outBufferListPtr->mBuffers[channel].mData + frameOffset; if (started) { sp_autowah_compute(sp, autowah, in, out); } else { *out = *in; } } } }
void process(sp_data *sp, void *udata) { UserData *ud = udata; SPFLOAT disk = 0, autowah = 0; sp_diskin_compute(sp, ud->disk, NULL, &disk); sp_autowah_compute(sp, ud->autowah, &disk, &autowah); sp->out[0] = autowah; }