DualASRPatch() : eg1(getSampleRate()), eg2(getSampleRate()) { registerParameter(PARAMETER_A, "Attack"); registerParameter(PARAMETER_B, "Release"); registerParameter(PARAMETER_C, "Attack"); registerParameter(PARAMETER_D, "Release"); eg1.setSustain(1.0); eg1.setDecay(0.0); eg2.setSustain(1.0); eg2.setDecay(0.0); }
SynthVoicePatch() : osc(getSampleRate()), env(getSampleRate()) { registerParameter(PARAMETER_A, "Pitch"); registerParameter(PARAMETER_B, "Fc"); registerParameter(PARAMETER_C, "Resonance"); registerParameter(PARAMETER_D, "Envelope"); registerParameter(PARAMETER_E, "Waveshape"); env.setSustain(1.0); env.setDecay(0.0); env.setRelease(0.0); envelope = FloatArray::create(getBlockSize()); filter = BiquadFilter::create(4); // 8-pole filter 48dB }
void setEnvelope(float a, float d, float s, float r){ env.setAttack(a); env.setDecay(d); env.setSustain(s); env.setRelease(r); }