From 326fab91e97835ef5652cd89c152dc72c15a11b5 Mon Sep 17 00:00:00 2001 From: Chris Kiefer Date: Fri, 9 Dec 2011 13:27:53 +0000 Subject: maxiDelayEffects --- ofxMaxim/ofxMaxim/libs/maximilian.cpp | 2 +- ofxMaxim/ofxMaxim/libs/maximilian.h | 21 +++++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) (limited to 'ofxMaxim') diff --git a/ofxMaxim/ofxMaxim/libs/maximilian.cpp b/ofxMaxim/ofxMaxim/libs/maximilian.cpp index a734636..3099f6f 100644 --- a/ofxMaxim/ofxMaxim/libs/maximilian.cpp +++ b/ofxMaxim/ofxMaxim/libs/maximilian.cpp @@ -82,7 +82,7 @@ double maxiOsc::sinewave(double frequency) { double maxiOsc::sinebuf4(double frequency) { double remainder; double a,b,c,d,a1,a2,a3; - phase += 512./(maxiSettings::sampleRate/(freq§uency)); + phase += 512./(maxiSettings::sampleRate/(frequency)); if ( phase >= 511 ) phase -=512; remainder = phase - floor(phase); diff --git a/ofxMaxim/ofxMaxim/libs/maximilian.h b/ofxMaxim/ofxMaxim/libs/maximilian.h index 334ba1f..c2e054e 100755 --- a/ofxMaxim/ofxMaxim/libs/maximilian.h +++ b/ofxMaxim/ofxMaxim/libs/maximilian.h @@ -372,8 +372,8 @@ class maxiDistortion { public: /*atan distortion, see http://www.musicdsp.org/showArchiveComment.php?ArchiveID=104*/ /*shape from 1 (soft clipping) to infinity (hard clipping)*/ - double atanDist(double in, double shape); - double fastAtanDist(double in, double shape); + double atanDist(const double in, const double shape); + double fastAtanDist(const double in, const double shape); double fastatan( double x ); }; @@ -382,17 +382,30 @@ inline double maxiDistortion::fastatan(double x) return (x / (1.0 + 0.28 * (x * x))); } -inline double maxiDistortion::atanDist(double in, double shape) { +inline double maxiDistortion::atanDist(const double in, const double shape) { double out; out = (1.0 / atan(shape)) * atan(in * shape); return out; } -inline double maxiDistortion::fastAtanDist(double in, double shape) { +inline double maxiDistortion::fastAtanDist(const double in, const double shape) { double out; out = (1.0 / fastatan(shape)) * fastatan(in * shape); return out; } +class maxiDelayEffect { +public: + maxiDelayline dl; + maxiOsc lfo; + double chorus(const double input, const unsigned int delay, const double feedback, const double speed, const double depth); +}; + +inline double maxiDelayEffect::chorus(const double input, const unsigned int delay, const double feedback, const double speed, const double depth) { + double output; + output = dl.dl(input, delay + (lfo.triangle(speed) * depth * delay) + 1, feedback) + input; + return output; +} + #endif -- cgit v1.3