document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #include "dsp.h"
  2.  
  3. // create an array for the delay
  4. byte array[2000];
  5.  
  6. //define variables
  7. int j;
  8. int fx;
  9. int mode;
  10. int value50;
  11. int value300;
  12. int value10000;
  13. int delayed;
  14.  
  15. void setup() {
  16.   setupIO();
  17.  
  18.   //set initial values
  19.   j = 50;
  20.   value50 = 50;
  21.   value300 = 300;
  22.   value10000 = 1000;
  23.   delayed = 0;
  24. }
  25.  
  26. void loop() {
  27.  
  28.     //check status of the effect potentiometer and rotary switch
  29.     readKnobs();
  30.  
  31.     // *************
  32.     // ***bitcrush**
  33.     // *************
  34.     if(mode == 6){
  35.       value300 = 1 + ((float) fx / (float) 3);        
  36.       if(delayed > value300) {  
  37.         byte input = analogRead(left);
  38.         input = (input >> 6 << 6);
  39.         output(left, input);
  40.         delayed = 0;
  41.        }
  42.        delayed++;
  43.  
  44.     }
  45.    
  46.    
  47.     // ***************
  48.     // ***Overdrive***
  49.     // ***************
  50.     if(mode == 7){
  51.       value50 = 1 + ((float) fx / (float) 20);    
  52.       byte input = analogRead(left);
  53.       input = (input * value50);
  54.       output(left, input);
  55.  
  56.     }
  57.  
  58.  
  59.     //  *************************
  60.     //  ***short crunchy delay***
  61.     //  *************************
  62.  
  63.     if(mode == 9){
  64.       for(int i = 0; i < 2000; i ++) { // set up a loop    
  65.         //array[i] = array[i] + array[i - 1]; //removes noise and some delay
  66.         output(left, array[i]);
  67.         array[i] = analogRead(left);
  68.       }
  69.     }
  70.  
  71.  
  72.     //  **********************
  73.     //  ***clean helicopter***
  74.     //  **********************
  75.     if(mode == 10){
  76.       value10000 = fx * 10;  
  77.       if(delayed > value10000) {
  78.         for(int i = 0; i < 2000; i ++) { // set up a loop    
  79.           array[i] = array[i] + array[i - 1]; //removes noise and delay
  80.           output(left, array[i]);
  81.           array[i] = analogRead(left);
  82.         }
  83.         delayed = 0;
  84.       }
  85.       delayed++;
  86.     }
  87.    
  88.     //  ********************
  89.     //  ***ring modulator***
  90.     //  ********************
  91.     if(mode == 11){
  92.      value50 = 1 + ((float) fx / (float) 20);    
  93.      byte input = analogRead(left);
  94.      input = (input * j);
  95.      output(left, input);
  96.      
  97.      j = j - 1;
  98.      if (j <= 0) {
  99.        j = value50;
  100.      }
  101.  
  102.     }
  103.    
  104. }
  105.  
  106. void readKnobs(){
  107.   //read the rotary switch
  108.   //and determine which effect is selected
  109.   //dividing by 75 ensures proper discrete values
  110.   //for if statements above
  111.   mode = analogRead(2);
  112.   mode = mode / 75;
  113.    
  114.   //reads the effects pot to adjust
  115.   //the intensity of the effects above  
  116.   fx = analogRead(3);
  117.  
  118. }
');