Advertisement
Guest User

Untitled

a guest
Jan 24th, 2013
311
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1. #define w1 1
  2. #define w2 1
  3. #define w3 1
  4. #define w4 1
  5.  
  6. void noteOn(byte channel, byte note, byte velocity)
  7. {
  8.  
  9. midiMsg(channel+0x90, note, velocity);
  10. }
  11. void midiMsg(byte cmd, byte data1, byte data2)
  12. {Serial.write(cmd);
  13.  
  14.  
  15. Serial.write(data1);
  16. Serial.write(data2);
  17. }
  18.  
  19. int count = 1;
  20. unsigned long old_time = millis();
  21. unsigned long new_time, dt, old_dt=100;
  22. unsigned long period = 1000;
  23. unsigned long t[4], dtAvg;
  24. long sensorValue, prev_sensorValue = analogRead(A2), diff[4], diffval;
  25.  
  26. void acdc(int dt){
  27. noteOn(9, 44, 127);
  28. if(count==1)
  29. noteOn(9, 36, 127);
  30. if(count==3)
  31. noteOn(9, 38, 127);
  32. count++;
  33.  
  34. delay(dt);
  35. if(count>4)
  36. count = 1;
  37. }
  38.  
  39. void setup() {
  40. Serial.begin(9600);
  41. }
  42.  
  43.  
  44. void loop() {
  45.  
  46. int thresh = analogRead(A0);
  47.  
  48. delay(1);
  49. prev_sensorValue = sensorValue;
  50. //Serial.println(prev_sensorValue);
  51. sensorValue = analogRead(A2);
  52. //Serial.print(sensorValue);
  53. //Serial.print(' ');
  54.  
  55. diff[0] = diff[1];
  56. diff[1] = diff[2];
  57. diff[2] = diff[3];
  58. diff[3] = diffval;
  59.  
  60. dtAvg = (w1*diff[0] + w2*diff[1] + w3*diff[2] + w4*diff[3])/(w1+w2+w3+w4);
  61. if(sensorValue < 500){
  62. //Serial.println(diff);
  63. //Serial.println(sensorValue);
  64. new_time = millis();
  65. dt = new_time-old_time;
  66. if(dt>50 && dt<1000);
  67.  
  68. old_time = new_time;
  69.  
  70.  
  71. }
  72.  
  73. delay(1);
  74. if(dt>50 && dt<500){
  75.  
  76.  
  77. acdc(dt);
  78. }
  79.  
  80. //OLD
  81. //noteOn(9, 40, 120);
  82. //Serial.println(dt);
  83. //delay(dt);
  84. //old_dt = dt;
  85.  
  86. //else{
  87. //noteOn(9, 49, 120);
  88. //delay(old_dt);
  89. //}
  90.  
  91. /*t[0] = t[1];
  92. t[1] = t[2];
  93. t[2] = t[3];
  94. t[3] = dt;
  95.  
  96. dtAvg = (w1*t[0] + w2*t[1] + w3*t[2] + w4*t[3])/(w1+w2+w3+w4);
  97. if (dtAvg >50 && dtAvg < 600){ */
  98. //acdc(dtAvg);
  99. //}
  100.  
  101.  
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement