Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- tri
- select triangular, linear slope (default)
- qsin
- select quarter of sine wave
- hsin
- select half of sine wave
- esin
- select exponential sine wave
- log
- select logarithmic
- ipar
- select inverted parabola
- qua
- select quadratic
- cub
- select cubic
- squ
- select square root
- cbr
- select cubic root
- par
- select parabola
- exp
- select exponential
- iqsin
- select inverted quarter of sine wave
- ihsin
- select inverted half of sine wave
- dese
- select double-exponential seat
- desi
- select double-exponential sigmoid
- switch (curve) {
- case QSIN:
- gain = sin(gain * M_PI / 2.0);
- break;
- case IQSIN:
- /* 0.6... = 2 / M_PI */
- gain = 0.6366197723675814 * asin(gain);
- break;
- case ESIN:
- gain = 1.0 - cos(M_PI / 4.0 * (CUBE(2.0*gain - 1) + 1));
- break;
- case HSIN:
- gain = (1.0 - cos(gain * M_PI)) / 2.0;
- break;
- case IHSIN:
- /* 0.3... = 1 / M_PI */
- gain = 0.3183098861837907 * acos(1 - 2 * gain);
- break;
- case EXP:
- /* -11.5... = 5*ln(0.1) */
- gain = exp(-11.512925464970227 * (1 - gain));
- break;
- case LOG:
- gain = av_clipd(1 + 0.2 * log10(gain), 0, 1.0);
- break;
- case PAR:
- gain = 1 - sqrt(1 - gain);
- break;
- case IPAR:
- gain = (1 - (1 - gain) * (1 - gain));
- break;
- case QUA:
- gain *= gain;
- break;
- case CUB:
- gain = CUBE(gain);
- break;
- case SQU:
- gain = sqrt(gain);
- break;
- case CBR:
- gain = cbrt(gain);
- break;
- case DESE:
- gain = gain <= 0.5 ? cbrt(2 * gain) / 2: 1 - cbrt(2 * (1 - gain)) / 2;
- break;
- case DESI:
- gain = gain <= 0.5 ? CUBE(2 * gain) / 2: 1 - CUBE(2 * (1 - gain)) / 2;
- break;
- }
Add Comment
Please, Sign In to add comment