!7 static JButton btn; static Flag flag; // stop flag static AudioFormat format; static double bufferSeconds = 0.1; static int bufferSize = iround(bufferSeconds*44100*2); p-tt { print("Buffer size: " + bufferSize); format = javaSound_monoCDQuality°; swing { showControls(jcenteredline(btn = jbutton("Start", f btn))); } start(); sleepIfMain(); } svoid btn { if (flag == null || flag.isUp()) start(); else stop(); } svoid start ctex { setText(btn, "Stop"); flag = new Flag; final OutputStream out = new MonoSamplesForwarder(f handleAudio); //MonoSamplesForwarder.debug = true; captureAudioFromLine3_bufSize = bufferSize; thread { captureAudioFromLine3(format, out, flag); print("Done"); } } svoid stop { setText(btn, "Start"); flag.raise(); } svoid handleAudio(float[] f) { double abs = audio_absoluteVolume(f); consoleStatus(toPercent(abs) + "%"); /*print("Have " + l(f) + " floats. Volume=" + audio_rmsVolume(f) + ", abs volume=" + abs);*/ //if (l(f) >= 8) print(struct(subArray(f, 0, 8))); }