Guitar Effector using "mbed application board".

Dependencies:   C12832 mbed

Guitar Effector using "mbed application board".

/media/uploads/vaifreak/dscn0187.jpg

/media/uploads/vaifreak/schematic_00.jpg

/media/uploads/vaifreak/schematic_01.jpg

/media/uploads/vaifreak/schematic_02.jpg

Revision:
1:bfbfd6fede05
Child:
2:25adc1277b3e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Delay.h	Tue Sep 01 10:04:14 2015 +0000
@@ -0,0 +1,64 @@
+//=============================================================================
+//
+//=============================================================================
+#pragma once
+
+#define DELAY_BUFF_SIZE 5000
+
+//---------------------------------------------
+// 
+//---------------------------------------------
+class Delay
+{
+private:
+    unsigned short buff[ DELAY_BUFF_SIZE ];
+    int current;
+    int offset;
+    
+    /// [-1.0 ~ 1.0]
+    float buff_get( int i ){
+        return ((float)buff[i] * (2.0f/65535.0f) ) - 1.0f;
+    }
+
+    void buff_set( int i, float val ){
+        // [-1.0 ~ 1.0] to [ 0 ~ 65535 ]
+        buff[i] = (unsigned short)(((val + 1.0f) * 0.5f) * 65535.0f);
+    }
+    
+public:
+    float delay_time; //[0.0~1.0]
+    float feedback; //[0.0~1.0]
+    float effect_level; 
+
+    Delay()
+    {
+        for(int i=0; i<DELAY_BUFF_SIZE; i++) buff[i] = 0;
+
+        delay_time = 0.8f;
+        feedback = 0.5f;
+        effect_level = 0.5f;
+        
+        current = 0;
+    }
+    
+    float process(float input)
+    {
+        float output;
+
+        float buff_val = buff_get(current);
+
+        // feedback process.
+        offset = current + (int)(delay_time * (float)DELAY_BUFF_SIZE);
+        if( offset >= DELAY_BUFF_SIZE ) offset -= DELAY_BUFF_SIZE;
+        buff_set( offset, (input + buff_val) * feedback );
+
+        // effect mix.
+        output = input + buff_val * effect_level;
+        
+        current++;
+        if(current >= DELAY_BUFF_SIZE) current = 0;
+        
+        return output;
+    }
+    
+};
\ No newline at end of file