Guest User

Untitled

a guest
Apr 23rd, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. import ddf.minim.*;
  2. import ddf.minim.analysis.*;
  3.  
  4. AudioInput in;
  5. FFT fft;
  6. BeatDetect beat;
  7.  
  8. int rep;
  9. void setup()
  10. {
  11. size(800, 600);
  12. background(0);
  13. // always start Minim before you do anything with it
  14. Minim.start(this);
  15. rep = 0; //repetitions
  16. // get a line out from Minim, default bit depth is 16
  17. beat = new BeatDetect();
  18. in = Minim.getLineIn(Minim.MONO, 512, 11050);
  19. fft = new FFT(in.bufferSize(), in.sampleRate());
  20. }
  21.  
  22.  
  23.  
  24. void draw()
  25. {
  26. beat.detect(in.left);
  27. stroke(255);
  28. // draw the waveforms
  29. if(rep > 1000)
  30. {
  31. background(0);
  32. rep = 0;
  33. }
  34. int bwidth = 20;
  35. if(beat.isOnset())
  36. {
  37. fill(0);
  38. stroke(0);
  39. for(int j = 0; j < width / 20; j++)
  40. {
  41. rect(j * bwidth, 0, 10, height);
  42. }
  43. }
  44. //TODO: sustain after beats.
  45. if(in.left.level() > 0.07)
  46. {
  47. for(int i = 0; i < in.bufferSize() - 1; i++)
  48. {
  49.  
  50. stroke(255 - abs(0.05 + in.left.get(i))*20000, 0, abs(0.05 + in.left.get(i))*20000);
  51. //line(i*1.5, 100 + in.left.get(i)*200, (i*1.5)+1, 100 + in.left.get(i+1)*200);
  52. strokeWeight(in.left.level() * 40);
  53. point(i*1.5, (rep/60) + ((rep % 60) * 10) + in.left.get(i)*200);
  54. }
  55. }
  56. stroke(255);
  57. rep++;
  58. smooth();
  59. }
  60.  
  61.  
  62. void stop()
  63. {
  64. // always close Minim audio classes when you are done with them
  65. in.close();
  66. // always stop Minim before exiting
  67. Minim.stop();
  68. super.stop();
  69. }
Add Comment
Please, Sign In to add comment