Takahiro Tanaka / Mbed 2 deprecated mbed_effector

Dependencies:   C12832 mbed

Committer:
vaifreak
Date:
Tue Sep 01 10:04:14 2015 +0000
Revision:
1:bfbfd6fede05
Child:
2:25adc1277b3e
implement, delay unit.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vaifreak 1:bfbfd6fede05 1 //=============================================================================
vaifreak 1:bfbfd6fede05 2 //
vaifreak 1:bfbfd6fede05 3 //=============================================================================
vaifreak 1:bfbfd6fede05 4 #pragma once
vaifreak 1:bfbfd6fede05 5
vaifreak 1:bfbfd6fede05 6 //---------------------------------------------
vaifreak 1:bfbfd6fede05 7 // Clipper, Base class.
vaifreak 1:bfbfd6fede05 8 //---------------------------------------------
vaifreak 1:bfbfd6fede05 9 class Clipper
vaifreak 1:bfbfd6fede05 10 {
vaifreak 1:bfbfd6fede05 11 public:
vaifreak 1:bfbfd6fede05 12 virtual float process( float samp ) = 0;
vaifreak 1:bfbfd6fede05 13 };
vaifreak 1:bfbfd6fede05 14
vaifreak 1:bfbfd6fede05 15 //---------------------------------------------
vaifreak 1:bfbfd6fede05 16 // Simple clipper.
vaifreak 1:bfbfd6fede05 17 //---------------------------------------------
vaifreak 1:bfbfd6fede05 18 class SimpleClipper : public Clipper
vaifreak 1:bfbfd6fede05 19 {
vaifreak 1:bfbfd6fede05 20 private:
vaifreak 1:bfbfd6fede05 21 float clip;
vaifreak 1:bfbfd6fede05 22
vaifreak 1:bfbfd6fede05 23 public:
vaifreak 1:bfbfd6fede05 24 SimpleClipper( float c = 0.2f )
vaifreak 1:bfbfd6fede05 25 {
vaifreak 1:bfbfd6fede05 26 clip = c;
vaifreak 1:bfbfd6fede05 27 }
vaifreak 1:bfbfd6fede05 28 virtual float process( float samp )
vaifreak 1:bfbfd6fede05 29 {
vaifreak 1:bfbfd6fede05 30 if( samp > clip ) {
vaifreak 1:bfbfd6fede05 31 return clip;
vaifreak 1:bfbfd6fede05 32 } else {
vaifreak 1:bfbfd6fede05 33 return samp;
vaifreak 1:bfbfd6fede05 34 }
vaifreak 1:bfbfd6fede05 35 }
vaifreak 1:bfbfd6fede05 36 };
vaifreak 1:bfbfd6fede05 37
vaifreak 1:bfbfd6fede05 38 //---------------------------------------------
vaifreak 1:bfbfd6fede05 39 // Simple clipper.
vaifreak 1:bfbfd6fede05 40 //---------------------------------------------
vaifreak 1:bfbfd6fede05 41 class SoftClipper : public Clipper
vaifreak 1:bfbfd6fede05 42 {
vaifreak 1:bfbfd6fede05 43 private:
vaifreak 1:bfbfd6fede05 44 float clip;
vaifreak 1:bfbfd6fede05 45 float comp_k;
vaifreak 1:bfbfd6fede05 46
vaifreak 1:bfbfd6fede05 47 public:
vaifreak 1:bfbfd6fede05 48 SoftClipper( float c = 0.05f, float k = 0.01f )
vaifreak 1:bfbfd6fede05 49 {
vaifreak 1:bfbfd6fede05 50 clip = c;
vaifreak 1:bfbfd6fede05 51 comp_k = k;
vaifreak 1:bfbfd6fede05 52 }
vaifreak 1:bfbfd6fede05 53
vaifreak 1:bfbfd6fede05 54 virtual float process( float samp )
vaifreak 1:bfbfd6fede05 55 {
vaifreak 1:bfbfd6fede05 56 if( samp > clip ) {
vaifreak 1:bfbfd6fede05 57 return clip + (samp-clip)*comp_k;
vaifreak 1:bfbfd6fede05 58 } else {
vaifreak 1:bfbfd6fede05 59 return samp;
vaifreak 1:bfbfd6fede05 60 }
vaifreak 1:bfbfd6fede05 61 }
vaifreak 1:bfbfd6fede05 62 };
vaifreak 1:bfbfd6fede05 63