###前提・実現したいこと
Processingの質問です。
以下のプログラムは、mp3を3曲読み込んで、その音のデータから色と図形を生成するプログラムです。曲はキーボードの1,2,3で切り替えられるようになっています。
このプログラムで、画面上に現在流れている曲の名前を表示させたいのですがうまくいきません。もちろん曲が変わったらその表示も変えたいです。
draw()の中にtextを書いてしまうと、座標がおかしくなったり、フレームレートを設定しているので、そのたびに書かれてしまったりします。どこに書くのがよいのでしょうか?また、その曲の変わり目で表示を変えるのもどうするのでしょうか?
###該当のソースコード
import ddf.minim.*; import ddf.minim.signals.*; Minim minim; AudioPlayer mySound; AudioPlayer mu[]=new AudioPlayer[3]; AudioBuffer mm; AudioBuffer mr; AudioBuffer ml; int c = 0; int angle = 60; void setup() { size(600, 600, P3D); angle = 0; frameRate(3); minim = new Minim(this); mu[0] = minim.loadFile("Sky Light.mp3", 1024); mu[1] = minim.loadFile("New World.mp3", 1024); mu[2] = minim.loadFile("Vivid.mp3", 1024); mu[0].loop(); smooth(); background(255); colorMode(RGB, 50); mm = mu[0].mix; mr = mu[0].right; ml = mu[0].left; } void draw() { lights(); camera(-100, 200, 500, width/2+50, height/2+50, 0, 0, 1, 0); translate(width/2 + random(1, 200), height/2 + random(1, 200), -50); for (int i = 0; i < 1; i++) { fill((abs(mm.get(i)*random(1,300))), (abs(ml.get(i)*random(1,300))), (abs(mr.get(i)*random(1,300))), 7); noStroke(); box( mm.get(i)*300, ml.get(i)*400, mr.get(i)*500); } } void keyPressed() { mu[c].pause(); mu[c].rewind(); background(255,255,255); switch(key) { case '1': c=0; break; case '2': c=1; break; case '3': c=2; break; } mm = mu[c].mix; mr = mu[c].right; ml = mu[c].left; mu[c].loop(); } void stop() { mu[c].close(); minim.stop(); super.stop(); }
###補足情報(言語/FW/ツール等のバージョンなど)
Mac Processing3を使用、ライブラリはminimを使用。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。