// MAUI-Based GUI for tracking peaks // (both positive and negative) in native ChucK // by Perry R. Cook, updated January 2014 adc => Gain inp => blackhole; MAUI_View myWinder; myWinder.size(300.0,150.0); MAUI_Slider high; high.name("High peak"); high.size(300,60); MAUI_Slider low; low.name("Low peak"); low.size(300,60); high.range(-1.0,1.0); low.range(-1.0,1.0); high.position(0.0,0.0); low.position(0.0,40.0); MAUI_Slider vol; vol.name("Input Gain"); vol.position(50,80); vol.range(0.0,40.0); 1 => vol.value; myWinder.addElement(vol); MAUI_Button exit; exit.name("Exit"); exit.position(0,90); exit.size(80,65); exit.toggleType(); myWinder.addElement(high); myWinder.addElement(low); myWinder.addElement(exit); myWinder.display(); spork ~ getPeaks(); 0.0 => float highPeak; 0.0 => float lowPeak; 1 => int running; while (running) { 0.1 :: second => now; vol.value() => inp.gain; highPeak => high.value; lowPeak => low.value; (1-exit.state())=>running; } fun void getPeaks() { float min,max; while (running) { 1 :: samp => now; min*0.9999 => min => lowPeak; max*0.9999 => max => highPeak; if (inp.last() < min) inp.last() => min; if (inp.last() > max) inp.last() => max; } } myWinder.destroy();