99 TanhDistortionParameterPostgain,
1010 TanhDistortionParameterPositiveShapeParameter,
1111 TanhDistortionParameterNegativeShapeParameter,
12+ TanhDistortionParameterDryWetMix,
1213};
1314
1415class TanhDistortionDSP : public SoundpipeDSPBase {
1920 ParameterRamper postgainRamp;
2021 ParameterRamper positiveShapeParameterRamp;
2122 ParameterRamper negativeShapeParameterRamp;
23+ ParameterRamper dryWetMixRamp;
2224
2325public:
2426 TanhDistortionDSP () {
2527 parameters[TanhDistortionParameterPregain] = &pregainRamp;
2628 parameters[TanhDistortionParameterPostgain] = &postgainRamp;
2729 parameters[TanhDistortionParameterPositiveShapeParameter] = &positiveShapeParameterRamp;
2830 parameters[TanhDistortionParameterNegativeShapeParameter] = &negativeShapeParameterRamp;
31+ parameters[TanhDistortionParameterDryWetMix] = &dryWetMixRamp;
2932 }
3033
3134 void init (int channelCount, double sampleRate) override {
@@ -65,6 +68,10 @@ void process(FrameRange range) override {
6568
6669 sp_dist_compute (sp, dist0, &leftIn, &leftOut);
6770 sp_dist_compute (sp, dist1, &rightIn, &rightOut);
71+
72+ float dryWetMix = dryWetMixRamp.getAndStep ();
73+ outputSample (0 , i) = dryWetMix * leftOut + (1 .0f - dryWetMix) * leftIn;
74+ outputSample (1 , i) = dryWetMix * rightOut + (1 .0f - dryWetMix) * rightIn;
6875 }
6976 }
7077};
@@ -74,3 +81,4 @@ void process(FrameRange range) override {
7481AK_REGISTER_PARAMETER(TanhDistortionParameterPostgain)
7582AK_REGISTER_PARAMETER(TanhDistortionParameterPositiveShapeParameter)
7683AK_REGISTER_PARAMETER(TanhDistortionParameterNegativeShapeParameter)
84+ AK_REGISTER_PARAMETER(TanhDistortionParameterDryWetMix)
0 commit comments