//Number 26 //Chuck a day 2009 //by Scott Hewitt //www.ablelemon.co.uk/chuckaday //DSP adc => Gain ginput => Chorus c => dac; 0.0 => ginput.gain; 0.0 => c.modFreq; 0.0 => c.modDepth; Event exitevent; //GUI elements and layout MAUI_View cho_view; cho_view.size( 500, 220 ); MAUI_Slider slidermaster; MAUI_Slider slidermix; MAUI_Slider slidermodf; MAUI_Slider slidermodd; MAUI_Gauge gaugemaster; MAUI_Button exitbutton; exitbutton.pushType(); exitbutton.name("Exit"); cho_view.addElement (slidermaster); "Input Volume" => slidermaster.name; slidermaster.position(0,0); cho_view.addElement (slidermodf); "Modulation Freq" => slidermodf.name; slidermodf.precision(3); slidermodf.range(0., 10.0); slidermodf.position(0, 60); cho_view.addElement (slidermodd); "Modulation Depth" => slidermodd.name; slidermodd.precision(3); slidermodd.range(0., 5.0); slidermodd.position(250, 60); cho_view.addElement (slidermix); "Wet/Dry" => slidermix.name; slidermix.position(0, 120); cho_view.addElement (gaugemaster); gaugemaster.position(250,10); cho_view.addElement (exitbutton); exitbutton.position(250, 120); cho_view.display(); //GUI functions //level monitor function void lev_mon(){ while (true){ ginput.last() * 100.0 => gaugemaster.value; 20::ms => now; } } //exit button event function void exitbutton_event (){ while (true){ exitbutton => now; exitevent.broadcast(); } } //input slider function void slidinput_event (){ while (true){ slidermaster => now; slidermaster.value() => ginput.gain; } } //wet dry slider function void slidwetdry_event (){ while (true){ slidermix => now; slidermix.value() => c.mix; } } //mod depth slider function void slidmoddepth_event (){ while (true){ slidermodd => now; slidermodd.value() => c.modDepth; } } //mod freq slider function void slidmodfreq_event (){ while (true){ slidermodf => now; slidermodf.value() => c.modFreq; } } //spork all functions spork ~ lev_mon(); spork ~ exitbutton_event(); spork ~ slidinput_event(); spork ~ slidwetdry_event(); spork ~ slidmoddepth_event(); spork ~ slidmodfreq_event(); exitevent => now; <<<"Chorus Exit">>>; me.exit(); //this does not seam to work cho_view.destroy();