1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package ro.victorrentea.halo;
import javax.sound.sampled.*;
/** Inelul care ascultă microfonul. */
public class VoiceHalo {
private final float[] wave = new float[2048];
private double idleMix = 1.0;
public void render(double t) {
for (int i = 0; i < wave.length; i++) {
double u = (double) i / wave.length;
double r = radius + amp * abs(wave[i]);
plot(cos(u * TAU) * r, sin(u * TAU) * r);
}
}
// în tăcere amplitudinea e zero, deci rămâne cerc
private double amplitude() {
return live * (1 - idleMix);
}
}