Takahiro Tanaka / Mbed 2 deprecated mbed_effector

Dependencies:   C12832 mbed

Committer:
vaifreak
Date:
Fri Sep 18 16:57:32 2015 +0000
Revision:
3:1666e2d5bd46
Parent:
2:25adc1277b3e
implement LPF, HPF

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vaifreak 1:bfbfd6fede05 1 //=============================================================================
vaifreak 2:25adc1277b3e 2 // @author vaifreak
vaifreak 2:25adc1277b3e 3 // @brief OverDrive/Distortion unit.
vaifreak 1:bfbfd6fede05 4 //=============================================================================
vaifreak 1:bfbfd6fede05 5 #pragma once
vaifreak 1:bfbfd6fede05 6 #include "Clipper.h"
vaifreak 1:bfbfd6fede05 7
vaifreak 1:bfbfd6fede05 8 //---------------------------------------------
vaifreak 1:bfbfd6fede05 9 //
vaifreak 1:bfbfd6fede05 10 //---------------------------------------------
vaifreak 2:25adc1277b3e 11 class Drive : public EffectUnitBase
vaifreak 1:bfbfd6fede05 12 {
vaifreak 1:bfbfd6fede05 13 private:
vaifreak 2:25adc1277b3e 14 ClipperBase *clipper_1;
vaifreak 2:25adc1277b3e 15 ClipperBase *clipper_2;
vaifreak 1:bfbfd6fede05 16
vaifreak 1:bfbfd6fede05 17 public:
vaifreak 1:bfbfd6fede05 18 float gain;
vaifreak 1:bfbfd6fede05 19 float vol;
vaifreak 1:bfbfd6fede05 20
vaifreak 1:bfbfd6fede05 21 Drive( float g = 2.0f, float v = 1.0f )
vaifreak 1:bfbfd6fede05 22 {
vaifreak 1:bfbfd6fede05 23 gain = g;
vaifreak 1:bfbfd6fede05 24 vol = v;
vaifreak 1:bfbfd6fede05 25
vaifreak 3:1666e2d5bd46 26
vaifreak 3:1666e2d5bd46 27 #if false
vaifreak 2:25adc1277b3e 28 //Asynmmetry clipper
vaifreak 2:25adc1277b3e 29 clipper_1 = new SimpleClipper();
vaifreak 2:25adc1277b3e 30 clipper_2 = new SoftClipper();
vaifreak 3:1666e2d5bd46 31 #else
vaifreak 3:1666e2d5bd46 32 //Synmmetry clipper
vaifreak 3:1666e2d5bd46 33 clipper_1 = new SimpleClipper();
vaifreak 3:1666e2d5bd46 34 clipper_2 = new SimpleClipper();
vaifreak 3:1666e2d5bd46 35 #endif
vaifreak 1:bfbfd6fede05 36 }
vaifreak 1:bfbfd6fede05 37
vaifreak 2:25adc1277b3e 38 protected:
vaifreak 2:25adc1277b3e 39 virtual float ProcessConcrete(float input)
vaifreak 1:bfbfd6fede05 40 {
vaifreak 2:25adc1277b3e 41 input *= gain;
vaifreak 2:25adc1277b3e 42
vaifreak 2:25adc1277b3e 43 if(input >= 0.0f)
vaifreak 2:25adc1277b3e 44 return clipper_1->Process( input ) * vol; //positive side
vaifreak 1:bfbfd6fede05 45 else
vaifreak 2:25adc1277b3e 46 return -clipper_2->Process( -input ) * vol; //negative side
vaifreak 1:bfbfd6fede05 47 }
vaifreak 1:bfbfd6fede05 48 };