Leider Funktioniert dein Code nicht.
Anbei der gesamte Code.
Nochmal das Problem:
Sofern 1 einmal kurz getippt/gedrückt soll das Programm ablaufen bis man später mal die 2 drückt für das zweite Programm.
import ddf.minim.analysis.*;
import ddf.minim.*;
Minim minim;
AudioInput jingle;
FFT fft;
boolean button = false;
int s;
void setup()
{
size(400, 400, P3D);
minim = new Minim(this);
jingle = minim.getLineIn(Minim.STEREO, 2048);
fft = new FFT(jingle.bufferSize(), jingle.sampleRate());
fft.linAverages(256);
rectMode(CORNERS);
}
void draw()
{
background(0);
if(keyPressed) {
if (key == '!' || key == '1') {
s=1;
} else {
s=0;
}
if(s==1) {
sound();
}
}
}
void stop()
{
jingle.close();
minim.stop();
super.stop();
}
void sound(){
fill(0,255,0);//füllt mit verschiedenen Farben
fft.forward(jingle.mix);
int w = int(fft.specSize()/20);
for(int i = 0; i < fft.avgSize(); i++)
{
rect(i*w, height, i*w + w, height - fft.getAvg(i)*10);
}
}