MySketch.java 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package org.example;
  2. import ddf.minim.AudioInput;
  3. import ddf.minim.Minim;
  4. import ddf.minim.analysis.FFT;
  5. import processing.core.PApplet;
  6. import processing.core.PFont;
  7. public class MySketch extends PApplet {
  8. Minim minim;
  9. //AudioPlayer myAudio;
  10. AudioInput myAudio;
  11. FFT aFFT;
  12. // Variables for FFT
  13. int delFFT = 11;
  14. int aM = 70;
  15. float amp = 30.0f;
  16. float aI = 0.2f;
  17. float aIa = aI;
  18. float aIStep = 0.35f;
  19. float[] aData = new float[delFFT];
  20. public void settings() {
  21. fullScreen();
  22. }
  23. public void setup() {
  24. //fullScreen();
  25. background(0);
  26. // textFont(mono, 14);
  27. smooth();
  28. minim = new Minim(this);
  29. // myAudio = minim.loadFile("music.mp3"); // must be in data folder
  30. // myAudio.loop();
  31. myAudio = minim.getLineIn(Minim.MONO);
  32. aFFT = new FFT(myAudio.bufferSize(), myAudio.sampleRate());
  33. aFFT.linAverages(delFFT);
  34. aFFT.window(FFT.GAUSS);
  35. }
  36. public void draw() {
  37. noStroke();
  38. fill(0, 7);
  39. rect(-10, -10, width+10, height+10);
  40. aFFT.forward(myAudio.mix);
  41. aDelData();
  42. //println(aData);
  43. }
  44. void aDelData() {
  45. String b = "[ ";
  46. String d = "] ";
  47. for (int i = 0; i < delFFT; ++i) {
  48. stroke(255,50);
  49. fill(233f,123f,98f);
  50. float partI = (aFFT.getAvg(i) * amp) * aIa;
  51. float tempIndexCon = constrain(partI, 0, aM);
  52. rect(60 + (i*35), height - 80, 39, -partI);
  53. fill(255);
  54. text(b, 40 , height - 30);
  55. text(d, width - 50, height - 30);
  56. text( i, 60 + (i*35), height - 30);
  57. aData[i] = tempIndexCon;
  58. aIa += aIStep;
  59. }
  60. aIa = aI;
  61. }
  62. public void stop() {
  63. myAudio.close();
  64. minim.stop();
  65. super.stop();
  66. }
  67. public static void main(String[] passedArgs) {
  68. String[] appletArgs = new String[] { "MySketch" };
  69. MySketch ms = new MySketch();
  70. PApplet.runSketch(appletArgs,ms);
  71. }
  72. }