回答編集履歴
1
改行削除
answer
CHANGED
@@ -1,84 +1,83 @@
|
|
1
|
-
今頃回答するのもなんですが、誰か検索で来たりするかもしれませんので書いておきます。
|
2
|
-
ヌルポが出るのは、
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
import ddf.minim.
|
9
|
-
import ddf.minim.*;
|
10
|
-
import ddf.minim.
|
11
|
-
import ddf.minim.
|
12
|
-
import ddf.minim.
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
float
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
player
|
36
|
-
player.
|
37
|
-
fft = new FFT(
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
//player
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
vertex(w * gridWidth, h * gridWidth, zs[w][h]);
|
76
|
-
vertex((w + 1) * gridWidth, h * gridWidth, zs[w + 1][h]);
|
77
|
-
vertex(
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
```
|
1
|
+
今頃回答するのもなんですが、誰か検索で来たりするかもしれませんので書いておきます。
|
2
|
+
ヌルポが出るのは、`AudioInput`がない(=マイクが刺さっていない)からだと思います。
|
3
|
+
waxogawaさんがやりたかったのは、mp3の波形だと思われるので`in`を`player`に置き換えました。
|
4
|
+
|
5
|
+
コメントのところが変更した部分
|
6
|
+
```Processing
|
7
|
+
import ddf.minim.analysis.*;
|
8
|
+
import ddf.minim.*;
|
9
|
+
import ddf.minim.effects.*;
|
10
|
+
import ddf.minim.signals.*;
|
11
|
+
import ddf.minim.spi.*;
|
12
|
+
import ddf.minim.ugens.*;
|
13
|
+
|
14
|
+
final int BUFSIZE = 512;
|
15
|
+
|
16
|
+
Minim minim;
|
17
|
+
AudioPlayer player;
|
18
|
+
|
19
|
+
//AudioInput in;
|
20
|
+
FFT fft;
|
21
|
+
|
22
|
+
int grid = 50;
|
23
|
+
float gridWidth;
|
24
|
+
float [][] zs;
|
25
|
+
|
26
|
+
public void settings() {
|
27
|
+
size(800, 800, P3D);
|
28
|
+
smooth();
|
29
|
+
}
|
30
|
+
|
31
|
+
void setup() {
|
32
|
+
minim = new Minim(this);
|
33
|
+
// in = minim.getLineIn(Minim.STEREO, 1024);
|
34
|
+
player = minim.loadFile("SHINICHI OSAWA LOVE WILL GUIDE YOU feat. TOMMIE SUNSHINE.mp3");
|
35
|
+
player.play();
|
36
|
+
fft = new FFT(player.bufferSize(), player.sampleRate());
|
37
|
+
// fft = new FFT(in.bufferSize(), in.sampleRate());
|
38
|
+
|
39
|
+
zs = new float[grid + 1][grid + 1];
|
40
|
+
for (int w = 0; w< grid; w++) {
|
41
|
+
for (int h = 0; h<grid; h++) {
|
42
|
+
zs[w][h] = 0.0;
|
43
|
+
}
|
44
|
+
}
|
45
|
+
gridWidth = width/float(grid);
|
46
|
+
|
47
|
+
//player = minim.loadFile("SHINICHI OSAWA LOVE WILL GUIDE YOU feat. TOMMIE SUNSHINE.mp3");
|
48
|
+
//player.play();
|
49
|
+
}
|
50
|
+
|
51
|
+
void draw() {
|
52
|
+
lights();
|
53
|
+
|
54
|
+
// fft.forward(in.mix);
|
55
|
+
fft.forward(player.mix);
|
56
|
+
|
57
|
+
for (int w=grid-1; w>=0; w--) {
|
58
|
+
for (int h = grid - 1; h >= 0; h--) {
|
59
|
+
if (h == 0) {
|
60
|
+
zs[w][h] = fft.getBand(w) * 3;
|
61
|
+
} else {
|
62
|
+
zs[w][h] = zs[w][h - 1];
|
63
|
+
}
|
64
|
+
}
|
65
|
+
}
|
66
|
+
|
67
|
+
background(0);
|
68
|
+
translate(0, 0, -300);
|
69
|
+
rotateX(PI/4.0);
|
70
|
+
for (int w = 0; w < grid; w++) {
|
71
|
+
for (int h = 0; h < grid; h++) {
|
72
|
+
beginShape();
|
73
|
+
|
74
|
+
vertex(w * gridWidth, h * gridWidth, zs[w][h]);
|
75
|
+
vertex((w + 1) * gridWidth, h * gridWidth, zs[w + 1][h]);
|
76
|
+
vertex((w + 1) * gridWidth, (h + 1) * gridWidth, zs[w + 1][h + 1]);
|
77
|
+
vertex(w * gridWidth, (h + 1) * gridWidth, zs[w][h + 1]);
|
78
|
+
endShape(CLOSE);
|
79
|
+
}
|
80
|
+
}
|
81
|
+
}
|
82
|
+
```
|
84
83
|

|