前提・実現したいこと
プログラミング初心者です。
http://94.hatenadiary.jp/entry/2019/02/26/143408
こちらのサイトを参考に、Processingを使ったオーディオビジュアライザアプリケーションを作成しています。
いつからか実行をするとエラーが出るようになったのですが、Processingに初めて触れることもあってどこで間違ったか正直思い浮かばなくて手詰まりしています。
発生している問題・エラーメッセージ
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException RuntimeException: java.lang.reflect.InvocationTargetException at processing.core.PApplet.runSketch(PApplet.java:10845) at processing.core.PApplet.main(PApplet.java:10613) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at processing.core.PApplet.runSketch(PApplet.java:10839) ... 1 more Caused by: java.lang.NullPointerException at tempo.<init>(tempo.java:33) ... 6 more
該当のソースコード
Processing
1import ddf.minim.*; 2import ddf.minim.analysis.*; 3import ddf.minim.effects.*; 4import ddf.minim.signals.*; 5import ddf.minim.spi.*; 6import ddf.minim.ugens.*; 7 8Minim minim; 9AudioPlayer groove; 10boolean ret = groove.isPlaying(); 11PImage img; 12 13 14void setup() 15{ 16 size(1600, 900); 17 minim = new Minim(this); 18 groove = minim.loadFile("sample.wav", 2046); 19 groove.loop(); 20 } 21 22 23void draw() 24{ 25 background(0); 26 int max = groove.bufferSize(); 27 float a = 5; 28 for (int i = 0; i < 360*a; i+=1) 29 { 30 stroke(255); 31 noFill(); 32 ellipse(width/2 + 200*cos(radians(i/(a-1))), 33 height/2 + 100*sin(radians(i/(a-1)))+ groove.mix.get(i)*200, 34 50*groove.mix.get(i), 3); 35 ellipse(width/2 + 400*cos(radians(i/(a-2))), 36 height/2 + 200*sin(radians(i/(a-2)))+ groove.mix.get(i)*200, 37 50*groove.mix.get(i), 3); 38 ellipse(width/2 + 600*cos(radians(i/(a-3))), 39 height/2 + 300*sin(radians(i/(a-3)))+ groove.mix.get(i)*200, 40 50*groove.mix.get(i), 3); 41 } 42 43 String message = "sample.wav is playing."; 44 if (ret == true) { 45 text(message, LEFT, TOP); 46 img = loadImage("pauseBtn.jpeg"); 47 image(img, 20, 100); 48 } else { 49 message = "sample.wav is stopping"; 50 text(message, LEFT, TOP); 51 img = loadImage("playBtn.jpeg"); 52 image(img, 20,100); 53 } 54} 55 56 57void mousePressed() 58{ 59 groove.pause(); 60}
試したこと
エラーメッセージを見ると33行目がnullになっているようなので確認してみた(mix→max?)のですが、情けないながら核心が掴めない状況です。
26行目のmaxの値が使われていないと注意されているのが引っかかるのですが、書き換えても、宣言する場所をグローバルにしても解決することができませんでした。
補足情報(FW/ツールのバージョンなど)
macOS mojave 10.14
Processing 3.5.3

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/24 10:08
2019/07/24 12:13
2019/07/24 13:16